From 73a34fe6f54cb010a34bdcf0d501b756fe31cec0 Mon Sep 17 00:00:00 2001 From: Parikshith Mohite Date: Tue, 22 Oct 2024 13:39:17 -0400 Subject: [PATCH] Adds script for installation --- .gitignore | 2 +- install.ps1 | 204 + node_modules/.bin/autoprefixer | 12 + node_modules/.bin/autoprefixer.cmd | 17 + node_modules/.bin/autoprefixer.ps1 | 28 + node_modules/.bin/browserslist | 12 + node_modules/.bin/browserslist.cmd | 17 + node_modules/.bin/browserslist.ps1 | 28 + node_modules/.bin/cssesc | 12 + node_modules/.bin/cssesc.cmd | 17 + node_modules/.bin/cssesc.ps1 | 28 + node_modules/.bin/errno | 12 + node_modules/.bin/errno.cmd | 17 + node_modules/.bin/errno.ps1 | 28 + node_modules/.bin/esbuild | 12 + node_modules/.bin/esbuild.cmd | 17 + node_modules/.bin/esbuild.ps1 | 28 + node_modules/.bin/image-size | 12 + node_modules/.bin/image-size.cmd | 17 + node_modules/.bin/image-size.ps1 | 28 + node_modules/.bin/lessc | 12 + node_modules/.bin/lessc.cmd | 17 + node_modules/.bin/lessc.ps1 | 28 + node_modules/.bin/loose-envify | 12 + node_modules/.bin/loose-envify.cmd | 17 + node_modules/.bin/loose-envify.ps1 | 28 + node_modules/.bin/mime | 12 + node_modules/.bin/mime.cmd | 17 + node_modules/.bin/mime.ps1 | 28 + node_modules/.bin/nanoid | 12 + node_modules/.bin/nanoid.cmd | 17 + node_modules/.bin/nanoid.ps1 | 28 + node_modules/.bin/needle | 12 + node_modules/.bin/needle.cmd | 17 + node_modules/.bin/needle.ps1 | 28 + node_modules/.bin/resolve | 12 + node_modules/.bin/resolve.cmd | 17 + node_modules/.bin/resolve.ps1 | 28 + node_modules/.bin/sass | 12 + node_modules/.bin/sass.cmd | 17 + node_modules/.bin/sass.ps1 | 28 + node_modules/.bin/semver | 12 + node_modules/.bin/semver.cmd | 17 + node_modules/.bin/semver.ps1 | 28 + node_modules/.bin/spicetify-creator | 12 + node_modules/.bin/spicetify-creator.cmd | 17 + node_modules/.bin/spicetify-creator.ps1 | 28 + node_modules/.bin/stylus | 12 + node_modules/.bin/stylus.cmd | 17 + node_modules/.bin/stylus.ps1 | 28 + node_modules/.bin/uglifyjs | 12 + node_modules/.bin/uglifyjs.cmd | 17 + node_modules/.bin/uglifyjs.ps1 | 28 + node_modules/.bin/update-browserslist-db | 12 + node_modules/.bin/update-browserslist-db.cmd | 17 + node_modules/.bin/update-browserslist-db.ps1 | 28 + node_modules/.bin/which | 12 + node_modules/.bin/which.cmd | 17 + node_modules/.bin/which.ps1 | 28 + node_modules/.package-lock.json | 1738 + node_modules/@adobe/css-tools/LICENSE | 10 + node_modules/@adobe/css-tools/Readme.md | 320 + node_modules/@adobe/css-tools/dist/index.cjs | 790 + .../@adobe/css-tools/dist/index.cjs.map | 1 + node_modules/@adobe/css-tools/dist/index.mjs | 765 + .../@adobe/css-tools/dist/index.mjs.map | 1 + node_modules/@adobe/css-tools/dist/types.d.ts | 168 + .../@adobe/css-tools/dist/types.d.ts.map | 1 + node_modules/@adobe/css-tools/package.json | 61 + .../@spotify/web-api-ts-sdk/.env.template | 6 + .../.github/workflows/release.yml | 38 + node_modules/@spotify/web-api-ts-sdk/.nvmrc | 1 + .../@spotify/web-api-ts-sdk/.releaserc | 13 + .../@spotify/web-api-ts-sdk/CHANGELOG.md | 12 + .../web-api-ts-sdk/CODE_OF_CONDUCT.md | 69 + .../@spotify/web-api-ts-sdk/CONTRIBUTING.md | 155 + node_modules/@spotify/web-api-ts-sdk/LICENSE | 13 + .../@spotify/web-api-ts-sdk/README.md | 313 + .../@spotify/web-api-ts-sdk/SECURITY.md | 16 + .../web-api-ts-sdk/dist/cjs/Scopes.d.ts | 17 + .../web-api-ts-sdk/dist/cjs/Scopes.js | 100 + .../web-api-ts-sdk/dist/cjs/Scopes.js.map | 1 + .../web-api-ts-sdk/dist/cjs/SpotifyApi.d.ts | 80 + .../web-api-ts-sdk/dist/cjs/SpotifyApi.js | 196 + .../web-api-ts-sdk/dist/cjs/SpotifyApi.js.map | 1 + .../dist/cjs/auth/AccessTokenHelpers.d.ts | 9 + .../dist/cjs/auth/AccessTokenHelpers.js | 58 + .../dist/cjs/auth/AccessTokenHelpers.js.map | 1 + .../AuthorizationCodeWithPKCEStrategy.d.ts | 21 + .../auth/AuthorizationCodeWithPKCEStrategy.js | 105 + .../AuthorizationCodeWithPKCEStrategy.js.map | 1 + .../cjs/auth/ClientCredentialsStrategy.d.ts | 16 + .../cjs/auth/ClientCredentialsStrategy.js | 66 + .../cjs/auth/ClientCredentialsStrategy.js.map | 1 + .../web-api-ts-sdk/dist/cjs/auth/Crypto.d.ts | 5 + .../web-api-ts-sdk/dist/cjs/auth/Crypto.js | 24 + .../dist/cjs/auth/Crypto.js.map | 1 + .../dist/cjs/auth/IAuthStrategy.d.ts | 9 + .../dist/cjs/auth/IAuthStrategy.js | 9 + .../dist/cjs/auth/IAuthStrategy.js.map | 1 + .../dist/cjs/auth/ImplicitGrantStrategy.d.ts | 16 + .../dist/cjs/auth/ImplicitGrantStrategy.js | 64 + .../cjs/auth/ImplicitGrantStrategy.js.map | 1 + .../cjs/auth/ProvidedAccessTokenStrategy.d.ts | 20 + .../cjs/auth/ProvidedAccessTokenStrategy.js | 56 + .../auth/ProvidedAccessTokenStrategy.js.map | 1 + .../dist/cjs/caching/GenericCache.d.ts | 17 + .../dist/cjs/caching/GenericCache.js | 104 + .../dist/cjs/caching/GenericCache.js.map | 1 + .../dist/cjs/caching/ICacheStore.d.ts | 5 + .../dist/cjs/caching/ICacheStore.js | 3 + .../dist/cjs/caching/ICacheStore.js.map | 1 + .../cjs/caching/InMemoryCachingStrategy.d.ts | 4 + .../cjs/caching/InMemoryCachingStrategy.js | 25 + .../caching/InMemoryCachingStrategy.js.map | 1 + .../caching/LocalStorageCachingStrategy.d.ts | 4 + .../caching/LocalStorageCachingStrategy.js | 24 + .../LocalStorageCachingStrategy.js.map | 1 + .../dist/cjs/endpoints/AlbumsEndpoints.d.ts | 7 + .../dist/cjs/endpoints/AlbumsEndpoints.js | 25 + .../dist/cjs/endpoints/AlbumsEndpoints.js.map | 1 + .../dist/cjs/endpoints/ArtistsEndpoints.d.ts | 9 + .../dist/cjs/endpoints/ArtistsEndpoints.js | 37 + .../cjs/endpoints/ArtistsEndpoints.js.map | 1 + .../cjs/endpoints/AudiobooksEndpoints.d.ts | 7 + .../dist/cjs/endpoints/AudiobooksEndpoints.js | 23 + .../cjs/endpoints/AudiobooksEndpoints.js.map | 1 + .../dist/cjs/endpoints/BrowseEndpoints.d.ts | 9 + .../dist/cjs/endpoints/BrowseEndpoints.js | 30 + .../dist/cjs/endpoints/BrowseEndpoints.js.map | 1 + .../dist/cjs/endpoints/ChaptersEndpoints.d.ts | 7 + .../dist/cjs/endpoints/ChaptersEndpoints.js | 20 + .../cjs/endpoints/ChaptersEndpoints.js.map | 1 + .../cjs/endpoints/CurrentUserEndpoints.d.ts | 55 + .../cjs/endpoints/CurrentUserEndpoints.js | 146 + .../cjs/endpoints/CurrentUserEndpoints.js.map | 1 + .../dist/cjs/endpoints/EndpointsBase.d.ts | 10 + .../dist/cjs/endpoints/EndpointsBase.js | 31 + .../dist/cjs/endpoints/EndpointsBase.js.map | 1 + .../dist/cjs/endpoints/EpisodesEndpoints.d.ts | 6 + .../dist/cjs/endpoints/EpisodesEndpoints.js | 19 + .../cjs/endpoints/EpisodesEndpoints.js.map | 1 + .../dist/cjs/endpoints/MarketsEndpoints.d.ts | 5 + .../dist/cjs/endpoints/MarketsEndpoints.js | 13 + .../cjs/endpoints/MarketsEndpoints.js.map | 1 + .../dist/cjs/endpoints/PlayerEndpoints.d.ts | 24 + .../dist/cjs/endpoints/PlayerEndpoints.js | 79 + .../dist/cjs/endpoints/PlayerEndpoints.js.map | 1 + .../cjs/endpoints/PlaylistsEndpoints.d.ts | 43 + .../dist/cjs/endpoints/PlaylistsEndpoints.js | 79 + .../cjs/endpoints/PlaylistsEndpoints.js.map | 1 + .../endpoints/RecommendationsEndpoints.d.ts | 69 + .../cjs/endpoints/RecommendationsEndpoints.js | 17 + .../endpoints/RecommendationsEndpoints.js.map | 1 + .../dist/cjs/endpoints/SearchEndpoints.d.ts | 8 + .../dist/cjs/endpoints/SearchEndpoints.js | 14 + .../dist/cjs/endpoints/SearchEndpoints.js.map | 1 + .../dist/cjs/endpoints/ShowsEndpoints.d.ts | 7 + .../dist/cjs/endpoints/ShowsEndpoints.js | 24 + .../dist/cjs/endpoints/ShowsEndpoints.js.map | 1 + .../dist/cjs/endpoints/TracksEndpoints.d.ts | 9 + .../dist/cjs/endpoints/TracksEndpoints.js | 31 + .../dist/cjs/endpoints/TracksEndpoints.js.map | 1 + .../dist/cjs/endpoints/UsersEndpoints.d.ts | 5 + .../dist/cjs/endpoints/UsersEndpoints.js | 13 + .../dist/cjs/endpoints/UsersEndpoints.js.map | 1 + .../ConsoleLoggingErrorHandler.d.ts | 4 + .../ConsoleLoggingErrorHandler.js | 10 + .../ConsoleLoggingErrorHandler.js.map | 1 + .../cjs/errorhandling/NoOpErrorHandler.d.ts | 4 + .../cjs/errorhandling/NoOpErrorHandler.js | 9 + .../cjs/errorhandling/NoOpErrorHandler.js.map | 1 + .../web-api-ts-sdk/dist/cjs/index.d.ts | 18 + .../@spotify/web-api-ts-sdk/dist/cjs/index.js | 33 + .../web-api-ts-sdk/dist/cjs/index.js.map | 1 + .../web-api-ts-sdk/dist/cjs/package.json | 3 + .../DocumentLocationRedirectionStrategy.d.ts | 5 + .../DocumentLocationRedirectionStrategy.js | 11 + ...DocumentLocationRedirectionStrategy.js.map | 1 + .../DefaultResponseValidator.d.ts | 4 + .../DefaultResponseValidator.js | 22 + .../DefaultResponseValidator.js.map | 1 + .../DefaultResponseDeserializer.d.ts | 4 + .../DefaultResponseDeserializer.js | 14 + .../DefaultResponseDeserializer.js.map | 1 + .../web-api-ts-sdk/dist/cjs/types.d.ts | 626 + .../@spotify/web-api-ts-sdk/dist/cjs/types.js | 4 + .../web-api-ts-sdk/dist/cjs/types.js.map | 1 + .../web-api-ts-sdk/dist/mjs/Scopes.d.ts | 17 + .../web-api-ts-sdk/dist/mjs/Scopes.js | 96 + .../web-api-ts-sdk/dist/mjs/Scopes.js.map | 1 + .../web-api-ts-sdk/dist/mjs/SpotifyApi.d.ts | 80 + .../web-api-ts-sdk/dist/mjs/SpotifyApi.js | 189 + .../web-api-ts-sdk/dist/mjs/SpotifyApi.js.map | 1 + .../dist/mjs/auth/AccessTokenHelpers.d.ts | 9 + .../dist/mjs/auth/AccessTokenHelpers.js | 55 + .../dist/mjs/auth/AccessTokenHelpers.js.map | 1 + .../AuthorizationCodeWithPKCEStrategy.d.ts | 21 + .../auth/AuthorizationCodeWithPKCEStrategy.js | 99 + .../AuthorizationCodeWithPKCEStrategy.js.map | 1 + .../mjs/auth/ClientCredentialsStrategy.d.ts | 16 + .../mjs/auth/ClientCredentialsStrategy.js | 60 + .../mjs/auth/ClientCredentialsStrategy.js.map | 1 + .../web-api-ts-sdk/dist/mjs/auth/Crypto.d.ts | 5 + .../web-api-ts-sdk/dist/mjs/auth/Crypto.js | 20 + .../dist/mjs/auth/Crypto.js.map | 1 + .../dist/mjs/auth/IAuthStrategy.d.ts | 9 + .../dist/mjs/auth/IAuthStrategy.js | 5 + .../dist/mjs/auth/IAuthStrategy.js.map | 1 + .../dist/mjs/auth/ImplicitGrantStrategy.d.ts | 16 + .../dist/mjs/auth/ImplicitGrantStrategy.js | 58 + .../mjs/auth/ImplicitGrantStrategy.js.map | 1 + .../mjs/auth/ProvidedAccessTokenStrategy.d.ts | 20 + .../mjs/auth/ProvidedAccessTokenStrategy.js | 50 + .../auth/ProvidedAccessTokenStrategy.js.map | 1 + .../dist/mjs/caching/GenericCache.d.ts | 17 + .../dist/mjs/caching/GenericCache.js | 101 + .../dist/mjs/caching/GenericCache.js.map | 1 + .../dist/mjs/caching/ICacheStore.d.ts | 5 + .../dist/mjs/caching/ICacheStore.js | 2 + .../dist/mjs/caching/ICacheStore.js.map | 1 + .../mjs/caching/InMemoryCachingStrategy.d.ts | 4 + .../mjs/caching/InMemoryCachingStrategy.js | 19 + .../caching/InMemoryCachingStrategy.js.map | 1 + .../caching/LocalStorageCachingStrategy.d.ts | 4 + .../caching/LocalStorageCachingStrategy.js | 18 + .../LocalStorageCachingStrategy.js.map | 1 + .../dist/mjs/endpoints/AlbumsEndpoints.d.ts | 7 + .../dist/mjs/endpoints/AlbumsEndpoints.js | 19 + .../dist/mjs/endpoints/AlbumsEndpoints.js.map | 1 + .../dist/mjs/endpoints/ArtistsEndpoints.d.ts | 9 + .../dist/mjs/endpoints/ArtistsEndpoints.js | 31 + .../mjs/endpoints/ArtistsEndpoints.js.map | 1 + .../mjs/endpoints/AudiobooksEndpoints.d.ts | 7 + .../dist/mjs/endpoints/AudiobooksEndpoints.js | 17 + .../mjs/endpoints/AudiobooksEndpoints.js.map | 1 + .../dist/mjs/endpoints/BrowseEndpoints.d.ts | 9 + .../dist/mjs/endpoints/BrowseEndpoints.js | 24 + .../dist/mjs/endpoints/BrowseEndpoints.js.map | 1 + .../dist/mjs/endpoints/ChaptersEndpoints.d.ts | 7 + .../dist/mjs/endpoints/ChaptersEndpoints.js | 14 + .../mjs/endpoints/ChaptersEndpoints.js.map | 1 + .../mjs/endpoints/CurrentUserEndpoints.d.ts | 55 + .../mjs/endpoints/CurrentUserEndpoints.js | 140 + .../mjs/endpoints/CurrentUserEndpoints.js.map | 1 + .../dist/mjs/endpoints/EndpointsBase.d.ts | 10 + .../dist/mjs/endpoints/EndpointsBase.js | 28 + .../dist/mjs/endpoints/EndpointsBase.js.map | 1 + .../dist/mjs/endpoints/EpisodesEndpoints.d.ts | 6 + .../dist/mjs/endpoints/EpisodesEndpoints.js | 13 + .../mjs/endpoints/EpisodesEndpoints.js.map | 1 + .../dist/mjs/endpoints/MarketsEndpoints.d.ts | 5 + .../dist/mjs/endpoints/MarketsEndpoints.js | 7 + .../mjs/endpoints/MarketsEndpoints.js.map | 1 + .../dist/mjs/endpoints/PlayerEndpoints.d.ts | 24 + .../dist/mjs/endpoints/PlayerEndpoints.js | 73 + .../dist/mjs/endpoints/PlayerEndpoints.js.map | 1 + .../mjs/endpoints/PlaylistsEndpoints.d.ts | 43 + .../dist/mjs/endpoints/PlaylistsEndpoints.js | 73 + .../mjs/endpoints/PlaylistsEndpoints.js.map | 1 + .../endpoints/RecommendationsEndpoints.d.ts | 69 + .../mjs/endpoints/RecommendationsEndpoints.js | 11 + .../endpoints/RecommendationsEndpoints.js.map | 1 + .../dist/mjs/endpoints/SearchEndpoints.d.ts | 8 + .../dist/mjs/endpoints/SearchEndpoints.js | 8 + .../dist/mjs/endpoints/SearchEndpoints.js.map | 1 + .../dist/mjs/endpoints/ShowsEndpoints.d.ts | 7 + .../dist/mjs/endpoints/ShowsEndpoints.js | 18 + .../dist/mjs/endpoints/ShowsEndpoints.js.map | 1 + .../dist/mjs/endpoints/TracksEndpoints.d.ts | 9 + .../dist/mjs/endpoints/TracksEndpoints.js | 25 + .../dist/mjs/endpoints/TracksEndpoints.js.map | 1 + .../dist/mjs/endpoints/UsersEndpoints.d.ts | 5 + .../dist/mjs/endpoints/UsersEndpoints.js | 7 + .../dist/mjs/endpoints/UsersEndpoints.js.map | 1 + .../ConsoleLoggingErrorHandler.d.ts | 4 + .../ConsoleLoggingErrorHandler.js | 7 + .../ConsoleLoggingErrorHandler.js.map | 1 + .../mjs/errorhandling/NoOpErrorHandler.d.ts | 4 + .../mjs/errorhandling/NoOpErrorHandler.js | 6 + .../mjs/errorhandling/NoOpErrorHandler.js.map | 1 + .../web-api-ts-sdk/dist/mjs/index.d.ts | 18 + .../@spotify/web-api-ts-sdk/dist/mjs/index.js | 15 + .../web-api-ts-sdk/dist/mjs/index.js.map | 1 + .../web-api-ts-sdk/dist/mjs/package.json | 3 + .../DocumentLocationRedirectionStrategy.d.ts | 5 + .../DocumentLocationRedirectionStrategy.js | 8 + ...DocumentLocationRedirectionStrategy.js.map | 1 + .../DefaultResponseValidator.d.ts | 4 + .../DefaultResponseValidator.js | 19 + .../DefaultResponseValidator.js.map | 1 + .../DefaultResponseDeserializer.d.ts | 4 + .../DefaultResponseDeserializer.js | 11 + .../DefaultResponseDeserializer.js.map | 1 + .../web-api-ts-sdk/dist/mjs/types.d.ts | 626 + .../@spotify/web-api-ts-sdk/dist/mjs/types.js | 3 + .../web-api-ts-sdk/dist/mjs/types.js.map | 1 + .../web-api-ts-sdk/example/.env.template | 2 + .../@spotify/web-api-ts-sdk/example/env.d.ts | 8 + .../web-api-ts-sdk/example/index.html | 26 + .../@spotify/web-api-ts-sdk/example/script.ts | 26 + .../@spotify/web-api-ts-sdk/example/style.css | 33 + .../web-api-ts-sdk/example_next/.env.template | 3 + .../example_next/.eslintrc.json | 3 + .../example_next/next.config.js | 4 + .../example_next/package-lock.json | 3517 + .../web-api-ts-sdk/example_next/package.json | 23 + .../api/auth/[...nextauth]/SpotifyProfile.ts | 66 + .../app/api/auth/[...nextauth]/authOptions.ts | 66 + .../src/app/api/auth/[...nextauth]/route.ts | 6 + .../example_next/src/app/globals.css | 34 + .../example_next/src/app/layout.tsx | 23 + .../example_next/src/app/page.tsx | 65 + .../src/components/AuthSessionProvider.tsx | 17 + .../src/lib/spotify-sdk/ClientInstance.ts | 58 + .../web-api-ts-sdk/example_next/tsconfig.json | 31 + .../web-api-ts-sdk/example_node/.env.template | 2 + .../web-api-ts-sdk/example_node/index.js | 19 + .../example_node/package-lock.json | 31 + .../web-api-ts-sdk/example_node/package.json | 15 + .../example_react/.env.template | 2 + .../example_react/.eslintrc.cjs | 14 + .../web-api-ts-sdk/example_react/index.html | 12 + .../example_react/package-lock.json | 2944 + .../web-api-ts-sdk/example_react/package.json | 28 + .../web-api-ts-sdk/example_react/src/App.css | 6 + .../web-api-ts-sdk/example_react/src/App.tsx | 59 + .../example_react/src/hooks/useSpotify.ts | 35 + .../example_react/src/index.css | 28 + .../web-api-ts-sdk/example_react/src/main.tsx | 10 + .../example_react/src/vite-env.d.ts | 1 + .../example_react/tsconfig.json | 24 + .../example_react/tsconfig.node.json | 10 + .../example_react/vite.config.ts | 12 + .../@spotify/web-api-ts-sdk/package.json | 56 + .../web-api-ts-sdk/res/package.cjs.json | 3 + .../web-api-ts-sdk/res/package.mjs.json | 3 + .../@spotify/web-api-ts-sdk/src/Scopes.ts | 110 + .../web-api-ts-sdk/src/SpotifyApi.test.ts | 127 + .../@spotify/web-api-ts-sdk/src/SpotifyApi.ts | 237 + .../src/auth/AccessTokenHelpers.ts | 70 + .../auth/AuthorizationCodeWithPKCEStrategy.ts | 134 + .../src/auth/ClientCredentialsStrategy.ts | 77 + .../web-api-ts-sdk/src/auth/Crypto.ts | 20 + .../web-api-ts-sdk/src/auth/IAuthStrategy.ts | 13 + .../src/auth/ImplicitGrantStrategy.ts | 73 + .../auth/ProvidedAccessTokenStrategy.test.ts | 67 + .../src/auth/ProvidedAccessTokenStrategy.ts | 60 + .../src/caching/GenericCache.test.ts | 189 + .../src/caching/GenericCache.ts | 124 + .../web-api-ts-sdk/src/caching/ICacheStore.ts | 5 + .../src/caching/InMemoryCachingStrategy.ts | 24 + .../caching/LocalStorageCachingStrategy.ts | 22 + .../src/endpoints/AlbumsEndpoints.test.ts | 40 + .../src/endpoints/AlbumsEndpoints.ts | 25 + .../src/endpoints/ArtistsEndpoint.test.ts | 57 + .../src/endpoints/ArtistsEndpoints.ts | 58 + .../src/endpoints/AudiobooksEndpoints.test.ts | 43 + .../src/endpoints/AudiobooksEndpoints.ts | 23 + .../src/endpoints/BrowseEndpoints.test.ts | 45 + .../src/endpoints/BrowseEndpoints.ts | 32 + .../src/endpoints/ChaptersEndpoints.test.ts | 31 + .../src/endpoints/ChaptersEndpoints.ts | 21 + .../endpoints/CurrentUserEndpoints.test.ts | 313 + .../src/endpoints/CurrentUserEndpoints.ts | 175 + .../src/endpoints/EndpointsBase.test.ts | 79 + .../src/endpoints/EndpointsBase.ts | 33 + .../src/endpoints/EpisodesEndpoints.test.ts | 37 + .../src/endpoints/EpisodesEndpoints.ts | 18 + .../src/endpoints/MarketsEndpoints.test.ts | 22 + .../src/endpoints/MarketsEndpoints.ts | 8 + .../src/endpoints/PlayerEndpoints.ts | 95 + .../src/endpoints/PlaylistsEndpoints.test.ts | 63 + .../src/endpoints/PlaylistsEndpoints.ts | 116 + .../RecommendationsEndpoints.test.ts | 32 + .../src/endpoints/RecommendationsEndpoints.ts | 81 + .../src/endpoints/SearchEndpoints.test.ts | 39 + .../src/endpoints/SearchEndpoints.ts | 13 + .../src/endpoints/ShowsEndpoints.test.ts | 39 + .../src/endpoints/ShowsEndpoints.ts | 24 + .../src/endpoints/TracksEndpoints.test.ts | 57 + .../src/endpoints/TracksEndpoints.ts | 35 + .../src/endpoints/UsersEndpoints.test.ts | 23 + .../src/endpoints/UsersEndpoints.ts | 9 + .../ConsoleLoggingErrorHandler.ts | 8 + .../src/errorhandling/NoOpErrorHandler.ts | 7 + .../@spotify/web-api-ts-sdk/src/index.ts | 38 + .../DocumentLocationRedirectionStrategy.ts | 10 + .../DefaultResponseValidator.ts | 22 + .../DefaultResponseDeserializer.ts | 14 + .../src/test/AuthAsRealUserForTests.ts | 85 + .../src/test/FakeAuthStrategy.ts | 42 + .../web-api-ts-sdk/src/test/FetchApiMock.ts | 44 + .../web-api-ts-sdk/src/test/FetchApiSpy.ts | 49 + .../src/test/SpotifyApiBuilder.ts | 81 + .../src/test/data/validAlbumResult.ts | 349 + .../src/test/data/validAlbumTracksResult.ts | 297 + .../src/test/data/validArtist.ts | 44 + .../src/test/data/validAudioBook.ts | 1238 + .../src/test/data/validAudiobookChapters.ts | 731 + .../src/test/data/validCategories.ts | 254 + .../src/test/data/validCategory.ts | 9 + .../src/test/data/validChapterApiResponse.ts | 109 + .../src/test/data/validEpisode.ts | 242 + .../src/test/data/validGenres.ts | 132 + .../src/test/data/validMarkets.ts | 190 + .../src/test/data/validPlaylist.ts | 6856 + .../web-api-ts-sdk/src/test/data/validShow.ts | 2221 + .../src/test/data/validTrack.ts | 68 + .../web-api-ts-sdk/src/test/data/validUser.ts | 23 + .../web-api-ts-sdk/src/test/valid-image.jpg | Bin 0 -> 7122 bytes .../@spotify/web-api-ts-sdk/src/types.ts | 741 + .../@spotify/web-api-ts-sdk/tsconfig.cjs.json | 7 + .../@spotify/web-api-ts-sdk/tsconfig.json | 32 + .../@spotify/web-api-ts-sdk/tsconfig.mjs.json | 7 + .../@spotify/web-api-ts-sdk/vite.config.ts | 15 + .../@spotify/web-api-ts-sdk/vitest.config.ts | 10 + node_modules/@types/jquery/JQuery.d.ts | 13440 ++ node_modules/@types/jquery/JQueryStatic.d.ts | 13944 ++ node_modules/@types/jquery/LICENSE | 21 + node_modules/@types/jquery/README.md | 15 + .../@types/jquery/dist/jquery.slim.d.ts | 3 + node_modules/@types/jquery/index.d.ts | 7 + node_modules/@types/jquery/legacy.d.ts | 204 + node_modules/@types/jquery/misc.d.ts | 7364 + node_modules/@types/jquery/package.json | 132 + node_modules/@types/prop-types/LICENSE | 21 + node_modules/@types/prop-types/README.md | 15 + node_modules/@types/prop-types/index.d.ts | 109 + node_modules/@types/prop-types/package.json | 35 + node_modules/@types/react-dom/LICENSE | 21 + node_modules/@types/react-dom/README.md | 15 + node_modules/@types/react-dom/canary.d.ts | 184 + node_modules/@types/react-dom/client.d.ts | 72 + .../@types/react-dom/experimental.d.ts | 36 + node_modules/@types/react-dom/index.d.ts | 149 + node_modules/@types/react-dom/package.json | 87 + node_modules/@types/react-dom/server.d.ts | 126 + .../@types/react-dom/test-utils/index.d.ts | 402 + node_modules/@types/react-modal/LICENSE | 21 + node_modules/@types/react-modal/README.md | 15 + node_modules/@types/react-modal/index.d.ts | 148 + node_modules/@types/react-modal/package.json | 72 + node_modules/@types/react/LICENSE | 21 + node_modules/@types/react/README.md | 15 + node_modules/@types/react/canary.d.ts | 157 + node_modules/@types/react/experimental.d.ts | 127 + node_modules/@types/react/global.d.ts | 160 + node_modules/@types/react/index.d.ts | 4537 + .../@types/react/jsx-dev-runtime.d.ts | 45 + node_modules/@types/react/jsx-runtime.d.ts | 36 + node_modules/@types/react/package.json | 210 + node_modules/@types/react/ts5.0/canary.d.ts | 157 + .../@types/react/ts5.0/experimental.d.ts | 127 + node_modules/@types/react/ts5.0/global.d.ts | 160 + node_modules/@types/react/ts5.0/index.d.ts | 4524 + .../@types/react/ts5.0/jsx-dev-runtime.d.ts | 44 + .../@types/react/ts5.0/jsx-runtime.d.ts | 35 + node_modules/@types/sizzle/LICENSE | 21 + node_modules/@types/sizzle/README.md | 15 + node_modules/@types/sizzle/index.d.ts | 91 + node_modules/@types/sizzle/package.json | 25 + 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/at-least-node/LICENSE | 6 + node_modules/at-least-node/README.md | 25 + node_modules/at-least-node/index.js | 5 + node_modules/at-least-node/package.json | 32 + node_modules/autoprefixer/LICENSE | 20 + node_modules/autoprefixer/README.md | 66 + node_modules/autoprefixer/bin/autoprefixer | 22 + node_modules/autoprefixer/data/prefixes.js | 1136 + 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 | 33 + .../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 | 709 + 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 | 49 + .../balanced-match/.github/FUNDING.yml | 2 + node_modules/balanced-match/LICENSE.md | 21 + node_modules/balanced-match/README.md | 97 + node_modules/balanced-match/index.js | 62 + node_modules/balanced-match/package.json | 48 + .../binary-extensions/binary-extensions.json | 263 + .../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 | 10 + node_modules/binary-extensions/package.json | 40 + node_modules/binary-extensions/readme.md | 25 + node_modules/brace-expansion/LICENSE | 21 + node_modules/brace-expansion/README.md | 129 + node_modules/brace-expansion/index.js | 201 + node_modules/brace-expansion/package.json | 47 + node_modules/braces/LICENSE | 21 + node_modules/braces/README.md | 586 + node_modules/braces/index.js | 170 + node_modules/braces/lib/compile.js | 60 + node_modules/braces/lib/constants.js | 57 + node_modules/braces/lib/expand.js | 113 + node_modules/braces/lib/parse.js | 331 + node_modules/braces/lib/stringify.js | 32 + node_modules/braces/lib/utils.js | 122 + node_modules/braces/package.json | 77 + node_modules/browserslist/LICENSE | 20 + node_modules/browserslist/README.md | 67 + node_modules/browserslist/browser.js | 52 + node_modules/browserslist/cli.js | 156 + node_modules/browserslist/error.d.ts | 7 + node_modules/browserslist/error.js | 12 + node_modules/browserslist/index.d.ts | 201 + node_modules/browserslist/index.js | 1215 + node_modules/browserslist/node.js | 419 + 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-anchor-positioning.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-cascade-scope.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-module-scripts.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-text-wrap-balance.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-backdrop-pseudo-element.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 + .../caniuse-lite/data/features/passkeys.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 + .../caniuse-lite/data/features/selectlist.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/view-transitions.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-bigint.js | 1 + .../data/features/wasm-bulk-memory.js | 1 + .../data/features/wasm-extended-const.js | 1 + .../caniuse-lite/data/features/wasm-gc.js | 1 + .../data/features/wasm-multi-memory.js | 1 + .../data/features/wasm-multi-value.js | 1 + .../data/features/wasm-mutable-globals.js | 1 + .../data/features/wasm-nontrapping-fptoint.js | 1 + .../data/features/wasm-reference-types.js | 1 + .../data/features/wasm-relaxed-simd.js | 1 + .../data/features/wasm-signext.js | 1 + .../caniuse-lite/data/features/wasm-simd.js | 1 + .../data/features/wasm-tail-calls.js | 1 + .../data/features/wasm-threads.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 + .../caniuse-lite/data/features/zstd.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 | 52 + .../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/chalk/index.d.ts | 415 + node_modules/chalk/license | 9 + node_modules/chalk/package.json | 68 + node_modules/chalk/readme.md | 341 + node_modules/chalk/source/index.js | 229 + node_modules/chalk/source/templates.js | 134 + node_modules/chalk/source/util.js | 39 + node_modules/chokidar/LICENSE | 21 + node_modules/chokidar/README.md | 308 + node_modules/chokidar/index.js | 973 + node_modules/chokidar/lib/constants.js | 66 + node_modules/chokidar/lib/fsevents-handler.js | 526 + node_modules/chokidar/lib/nodefs-handler.js | 654 + node_modules/chokidar/package.json | 70 + node_modules/chokidar/types/index.d.ts | 192 + node_modules/clean-css/History.md | 1504 + node_modules/clean-css/LICENSE | 19 + node_modules/clean-css/README.md | 987 + node_modules/clean-css/index.js | 1 + node_modules/clean-css/lib/clean.js | 241 + node_modules/clean-css/lib/optimizer/clone.js | 33 + .../clean-css/lib/optimizer/configuration.js | 1640 + .../lib/optimizer/configuration/break-up.js | 656 + .../optimizer/configuration/can-override.js | 314 + .../properties/understandable.js | 15 + .../lib/optimizer/configuration/restore.js | 294 + node_modules/clean-css/lib/optimizer/hack.js | 8 + .../lib/optimizer/invalid-property-error.js | 10 + .../lib/optimizer/level-0/optimize.js | 6 + .../lib/optimizer/level-1/optimize.js | 325 + .../optimizer/level-1/property-optimizers.js | 10 + .../level-1/property-optimizers/background.js | 23 + .../property-optimizers/border-radius.js | 29 + .../level-1/property-optimizers/box-shadow.js | 15 + .../level-1/property-optimizers/filter.js | 34 + .../property-optimizers/font-weight.js | 23 + .../level-1/property-optimizers/margin.js | 21 + .../level-1/property-optimizers/outline.js | 19 + .../level-1/property-optimizers/padding.js | 32 + .../lib/optimizer/level-1/sort-selectors.js | 23 + .../lib/optimizer/level-1/tidy-at-rule.js | 9 + .../lib/optimizer/level-1/tidy-block.js | 34 + .../lib/optimizer/level-1/tidy-rules.js | 265 + .../lib/optimizer/level-1/value-optimizers.js | 14 + .../level-1/value-optimizers/color.js | 89 + .../value-optimizers/color/shorten-hex.js | 189 + .../value-optimizers/color/shorten-hsl.js | 54 + .../value-optimizers/color/shorten-rgb.js | 10 + .../level-1/value-optimizers/degrees.js | 19 + .../level-1/value-optimizers/fraction.js | 72 + .../level-1/value-optimizers/precision.js | 22 + .../level-1/value-optimizers/starts-as-url.js | 7 + .../level-1/value-optimizers/text-quotes.js | 31 + .../level-1/value-optimizers/time.js | 31 + .../level-1/value-optimizers/unit.js | 46 + .../level-1/value-optimizers/url-prefix.js | 23 + .../level-1/value-optimizers/url-quotes.js | 22 + .../value-optimizers/url-whitespace.js | 22 + .../level-1/value-optimizers/whitespace.js | 48 + .../level-1/value-optimizers/zero.js | 49 + .../optimizer/level-2/extract-properties.js | 61 + .../lib/optimizer/level-2/is-mergeable.js | 273 + .../lib/optimizer/level-2/merge-adjacent.js | 55 + .../optimizer/level-2/merge-media-queries.js | 105 + .../level-2/merge-non-adjacent-by-body.js | 88 + .../level-2/merge-non-adjacent-by-selector.js | 73 + .../lib/optimizer/level-2/optimize.js | 139 + .../level-2/properties/every-values-pair.js | 28 + .../level-2/properties/find-component-in.js | 38 + .../level-2/properties/has-inherit.js | 9 + .../level-2/properties/has-same-values.js | 14 + .../optimizer/level-2/properties/has-unset.js | 9 + .../level-2/properties/is-component-of.js | 22 + .../properties/is-mergeable-shorthand.js | 11 + .../properties/merge-into-shorthands.js | 496 + .../optimizer/level-2/properties/optimize.js | 40 + .../level-2/properties/override-properties.js | 461 + .../overrides-non-component-shorthand.js | 9 + .../level-2/properties/populate-components.js | 61 + .../optimizer/level-2/reduce-non-adjacent.js | 174 + .../level-2/remove-duplicate-font-at-rules.js | 30 + .../level-2/remove-duplicate-media-queries.js | 30 + .../optimizer/level-2/remove-duplicates.js | 36 + .../level-2/remove-unused-at-rules.js | 249 + .../lib/optimizer/level-2/reorderable.js | 93 + .../level-2/restore-with-components.js | 12 + .../lib/optimizer/level-2/restructure.js | 392 + .../lib/optimizer/level-2/rules-overlap.js | 32 + .../level-2/specificities-overlap.js | 36 + .../lib/optimizer/level-2/specificity.js | 77 + .../optimizer/level-2/tidy-rule-duplicates.js | 21 + .../clean-css/lib/optimizer/remove-unused.js | 11 + .../lib/optimizer/restore-from-optimizing.js | 78 + .../clean-css/lib/optimizer/validator.js | 561 + .../lib/optimizer/vendor-prefixes.js | 24 + .../lib/optimizer/wrap-for-optimizing.js | 192 + .../clean-css/lib/options/compatibility.js | 181 + node_modules/clean-css/lib/options/fetch.js | 7 + node_modules/clean-css/lib/options/format.js | 241 + .../clean-css/lib/options/inline-request.js | 22 + .../clean-css/lib/options/inline-timeout.js | 7 + node_modules/clean-css/lib/options/inline.js | 15 + .../lib/options/optimization-level.js | 218 + node_modules/clean-css/lib/options/plugins.js | 25 + .../clean-css/lib/options/rebase-to.js | 7 + node_modules/clean-css/lib/options/rebase.js | 10 + .../lib/options/rounding-precision.js | 88 + .../clean-css/lib/reader/apply-source-maps.js | 246 + .../reader/extract-import-url-and-media.js | 35 + .../lib/reader/input-source-map-tracker.js | 58 + .../lib/reader/is-allowed-resource.js | 77 + .../lib/reader/load-original-sources.js | 129 + .../lib/reader/load-remote-resource.js | 74 + .../clean-css/lib/reader/match-data-uri.js | 7 + .../clean-css/lib/reader/normalize-path.js | 8 + .../clean-css/lib/reader/read-sources.js | 344 + .../clean-css/lib/reader/rebase-local-map.js | 15 + .../clean-css/lib/reader/rebase-remote-map.js | 14 + node_modules/clean-css/lib/reader/rebase.js | 101 + .../clean-css/lib/reader/restore-import.js | 5 + .../clean-css/lib/reader/rewrite-url.js | 112 + .../clean-css/lib/tokenizer/marker.js | 26 + node_modules/clean-css/lib/tokenizer/token.js | 17 + .../clean-css/lib/tokenizer/tokenize.js | 867 + .../clean-css/lib/utils/clone-array.js | 11 + .../clean-css/lib/utils/format-position.js | 11 + .../clean-css/lib/utils/has-protocol.js | 7 + .../lib/utils/is-data-uri-resource.js | 7 + .../clean-css/lib/utils/is-http-resource.js | 7 + .../clean-css/lib/utils/is-https-resource.js | 7 + node_modules/clean-css/lib/utils/is-import.js | 7 + .../clean-css/lib/utils/is-remote-resource.js | 8 + .../clean-css/lib/utils/natural-compare.js | 31 + node_modules/clean-css/lib/utils/override.js | 34 + node_modules/clean-css/lib/utils/split.js | 62 + node_modules/clean-css/lib/writer/helpers.js | 256 + node_modules/clean-css/lib/writer/one-time.js | 52 + node_modules/clean-css/lib/writer/simple.js | 48 + .../clean-css/lib/writer/source-maps.js | 104 + node_modules/clean-css/package.json | 48 + 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/concat-map/.travis.yml | 4 + node_modules/concat-map/LICENSE | 18 + node_modules/concat-map/README.markdown | 62 + node_modules/concat-map/example/map.js | 6 + node_modules/concat-map/index.js | 13 + node_modules/concat-map/package.json | 43 + node_modules/concat-map/test/map.js | 39 + node_modules/copy-anything/LICENSE | 21 + node_modules/copy-anything/README.md | 130 + node_modules/copy-anything/dist/index.cjs | 52 + node_modules/copy-anything/dist/index.es.js | 48 + .../copy-anything/dist/types/index.d.ts | 15 + node_modules/copy-anything/package.json | 98 + node_modules/cssesc/LICENSE-MIT.txt | 20 + node_modules/cssesc/README.md | 201 + node_modules/cssesc/bin/cssesc | 116 + node_modules/cssesc/cssesc.js | 110 + node_modules/cssesc/man/cssesc.1 | 70 + node_modules/cssesc/package.json | 51 + node_modules/csstype/LICENSE | 19 + node_modules/csstype/README.md | 277 + node_modules/csstype/index.d.ts | 21297 +++ node_modules/csstype/index.js.flow | 6612 + node_modules/csstype/package.json | 66 + node_modules/cwd/LICENSE | 21 + node_modules/cwd/index.js | 51 + node_modules/cwd/package.json | 72 + node_modules/debug/LICENSE | 20 + node_modules/debug/README.md | 481 + node_modules/debug/package.json | 60 + node_modules/debug/src/browser.js | 271 + node_modules/debug/src/common.js | 274 + node_modules/debug/src/index.js | 10 + node_modules/debug/src/node.js | 263 + node_modules/electron-to-chromium/LICENSE | 5 + node_modules/electron-to-chromium/README.md | 186 + .../electron-to-chromium/chromium-versions.js | 69 + .../chromium-versions.json | 1 + .../full-chromium-versions.js | 2113 + .../full-chromium-versions.json | 1 + .../electron-to-chromium/full-versions.js | 1381 + .../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 | 166 + .../electron-to-chromium/versions.json | 1 + node_modules/errno/.jshintrc | 59 + node_modules/errno/.travis.yml | 19 + node_modules/errno/README.md | 145 + node_modules/errno/build.js | 43 + node_modules/errno/cli.js | 22 + node_modules/errno/custom.js | 57 + node_modules/errno/errno.js | 313 + node_modules/errno/package.json | 33 + node_modules/errno/test.js | 88 + .../esbuild-plugin-external-global/LICENSE | 21 + .../esbuild-plugin-external-global/README.md | 36 + .../dist/index.d.ts | 4 + .../dist/index.esm.js | 26 + .../dist/index.js | 33 + .../package.json | 35 + node_modules/esbuild-plugin-postcss2/LICENSE | 21 + .../esbuild-plugin-postcss2/README.md | 78 + .../esbuild-plugin-postcss2/dist/index.esm.js | 174 + .../esbuild-plugin-postcss2/dist/index.js | 191 + .../esbuild-plugin-postcss2/package.json | 65 + .../esbuild-plugin-postcss2/src/modules.d.ts | 25 + node_modules/esbuild-windows-64/README.md | 3 + node_modules/esbuild-windows-64/bin/esbuild | 14 + node_modules/esbuild-windows-64/esbuild.exe | Bin 0 -> 8511488 bytes node_modules/esbuild-windows-64/package.json | 17 + node_modules/esbuild/LICENSE.md | 21 + node_modules/esbuild/README.md | 3 + node_modules/esbuild/bin/esbuild | 178 + node_modules/esbuild/install.js | 244 + node_modules/esbuild/lib/main.d.ts | 602 + node_modules/esbuild/lib/main.js | 2332 + node_modules/esbuild/package.json | 41 + 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 | 63 + 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/exenv/LICENSE | 31 + node_modules/exenv/README.md | 35 + node_modules/exenv/index.js | 40 + node_modules/exenv/package.json | 28 + node_modules/expand-tilde/LICENSE | 21 + node_modules/expand-tilde/README.md | 80 + node_modules/expand-tilde/index.js | 22 + node_modules/expand-tilde/package.json | 67 + node_modules/extend-shallow/LICENSE | 21 + node_modules/extend-shallow/README.md | 61 + node_modules/extend-shallow/index.js | 33 + node_modules/extend-shallow/package.json | 56 + node_modules/fill-range/LICENSE | 21 + node_modules/fill-range/README.md | 237 + node_modules/fill-range/index.js | 248 + node_modules/fill-range/package.json | 74 + node_modules/find-file-up/LICENSE | 21 + node_modules/find-file-up/README.md | 86 + node_modules/find-file-up/index.js | 102 + node_modules/find-file-up/package.json | 64 + node_modules/find-pkg/LICENSE | 21 + node_modules/find-pkg/index.js | 31 + node_modules/find-pkg/package.json | 71 + node_modules/fraction.js/LICENSE | 21 + node_modules/fraction.js/README.md | 466 + node_modules/fraction.js/bigfraction.js | 899 + node_modules/fraction.js/fraction.cjs | 904 + node_modules/fraction.js/fraction.d.ts | 60 + node_modules/fraction.js/fraction.js | 891 + node_modules/fraction.js/fraction.min.js | 18 + node_modules/fraction.js/package.json | 55 + node_modules/fs-exists-sync/LICENSE | 21 + node_modules/fs-exists-sync/README.md | 92 + node_modules/fs-exists-sync/index.js | 18 + node_modules/fs-exists-sync/package.json | 70 + node_modules/fs-extra/CHANGELOG.md | 902 + node_modules/fs-extra/LICENSE | 15 + node_modules/fs-extra/README.md | 264 + .../fs-extra/lib/copy-sync/copy-sync.js | 166 + node_modules/fs-extra/lib/copy-sync/index.js | 5 + node_modules/fs-extra/lib/copy/copy.js | 232 + node_modules/fs-extra/lib/copy/index.js | 6 + node_modules/fs-extra/lib/empty/index.js | 48 + 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 | 61 + .../fs-extra/lib/ensure/symlink-paths.js | 99 + .../fs-extra/lib/ensure/symlink-type.js | 31 + node_modules/fs-extra/lib/ensure/symlink.js | 63 + node_modules/fs-extra/lib/fs/index.js | 130 + node_modules/fs-extra/lib/index.js | 27 + 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 | 141 + node_modules/fs-extra/lib/move-sync/index.js | 5 + .../fs-extra/lib/move-sync/move-sync.js | 47 + node_modules/fs-extra/lib/move/index.js | 6 + node_modules/fs-extra/lib/move/move.js | 65 + node_modules/fs-extra/lib/output/index.js | 40 + .../fs-extra/lib/path-exists/index.js | 12 + node_modules/fs-extra/lib/remove/index.js | 9 + node_modules/fs-extra/lib/remove/rimraf.js | 302 + node_modules/fs-extra/lib/util/stat.js | 139 + node_modules/fs-extra/lib/util/utimes.js | 26 + node_modules/fs-extra/package.json | 70 + node_modules/fs.realpath/LICENSE | 43 + node_modules/fs.realpath/README.md | 33 + node_modules/fs.realpath/index.js | 66 + node_modules/fs.realpath/old.js | 303 + node_modules/fs.realpath/package.json | 26 + node_modules/function-bind/.eslintrc | 21 + .../function-bind/.github/FUNDING.yml | 12 + .../function-bind/.github/SECURITY.md | 3 + node_modules/function-bind/.nycrc | 13 + node_modules/function-bind/CHANGELOG.md | 136 + node_modules/function-bind/LICENSE | 20 + node_modules/function-bind/README.md | 46 + node_modules/function-bind/implementation.js | 84 + node_modules/function-bind/index.js | 5 + node_modules/function-bind/package.json | 87 + node_modules/function-bind/test/.eslintrc | 9 + node_modules/function-bind/test/index.js | 252 + .../.idea/codeStyles/codeStyleConfig.xml | 5 + .../.idea/dictionaries/sheo13666q.xml | 3 + .../generic-names/.idea/encodings.xml | 6 + .../inspectionProfiles/Project_Default.xml | 71 + node_modules/generic-names/.idea/misc.xml | 9 + node_modules/generic-names/.idea/modules.xml | 8 + node_modules/generic-names/.idea/php.xml | 9 + .../generic-names/.idea/runConfigurations.xml | 10 + node_modules/generic-names/.idea/vcs.xml | 11 + node_modules/generic-names/LICENSE | 22 + node_modules/generic-names/generic-names.iml | 9 + node_modules/generic-names/index.d.ts | 13 + node_modules/generic-names/index.js | 47 + node_modules/generic-names/package.json | 31 + node_modules/generic-names/readme.md | 17 + 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/glob/LICENSE | 21 + node_modules/glob/README.md | 378 + node_modules/glob/common.js | 238 + node_modules/glob/glob.js | 790 + node_modules/glob/package.json | 55 + node_modules/glob/sync.js | 486 + node_modules/global-modules/LICENSE | 21 + node_modules/global-modules/README.md | 65 + node_modules/global-modules/index.js | 18 + node_modules/global-modules/package.json | 66 + node_modules/global-prefix/LICENSE | 21 + node_modules/global-prefix/README.md | 76 + node_modules/global-prefix/index.js | 84 + node_modules/global-prefix/package.json | 73 + 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/has-flag/index.d.ts | 39 + node_modules/has-flag/index.js | 8 + node_modules/has-flag/license | 9 + node_modules/has-flag/package.json | 46 + node_modules/has-flag/readme.md | 89 + node_modules/hasown/.eslintrc | 5 + node_modules/hasown/.github/FUNDING.yml | 12 + node_modules/hasown/.nycrc | 13 + node_modules/hasown/CHANGELOG.md | 40 + node_modules/hasown/LICENSE | 21 + node_modules/hasown/README.md | 40 + node_modules/hasown/index.d.ts | 3 + node_modules/hasown/index.js | 8 + node_modules/hasown/package.json | 92 + node_modules/hasown/tsconfig.json | 6 + node_modules/homedir-polyfill/LICENSE | 21 + node_modules/homedir-polyfill/README.md | 96 + node_modules/homedir-polyfill/index.js | 9 + node_modules/homedir-polyfill/package.json | 62 + node_modules/homedir-polyfill/polyfill.js | 81 + .../iconv-lite/.github/dependabot.yml | 11 + .../iconv-lite/.idea/codeStyles/Project.xml | 47 + .../.idea/codeStyles/codeStyleConfig.xml | 5 + node_modules/iconv-lite/.idea/iconv-lite.iml | 12 + .../inspectionProfiles/Project_Default.xml | 6 + node_modules/iconv-lite/.idea/modules.xml | 8 + node_modules/iconv-lite/.idea/vcs.xml | 6 + node_modules/iconv-lite/Changelog.md | 212 + node_modules/iconv-lite/LICENSE | 21 + node_modules/iconv-lite/README.md | 130 + .../iconv-lite/encodings/dbcs-codec.js | 597 + .../iconv-lite/encodings/dbcs-data.js | 188 + node_modules/iconv-lite/encodings/index.js | 23 + node_modules/iconv-lite/encodings/internal.js | 198 + .../iconv-lite/encodings/sbcs-codec.js | 72 + .../encodings/sbcs-data-generated.js | 451 + .../iconv-lite/encodings/sbcs-data.js | 179 + .../encodings/tables/big5-added.json | 122 + .../iconv-lite/encodings/tables/cp936.json | 264 + .../iconv-lite/encodings/tables/cp949.json | 273 + .../iconv-lite/encodings/tables/cp950.json | 177 + .../iconv-lite/encodings/tables/eucjp.json | 182 + .../encodings/tables/gb18030-ranges.json | 1 + .../encodings/tables/gbk-added.json | 56 + .../iconv-lite/encodings/tables/shiftjis.json | 125 + node_modules/iconv-lite/encodings/utf16.js | 197 + node_modules/iconv-lite/encodings/utf32.js | 319 + node_modules/iconv-lite/encodings/utf7.js | 290 + node_modules/iconv-lite/lib/bom-handling.js | 52 + node_modules/iconv-lite/lib/index.d.ts | 41 + node_modules/iconv-lite/lib/index.js | 180 + node_modules/iconv-lite/lib/streams.js | 109 + node_modules/iconv-lite/package.json | 44 + node_modules/icss-replace-symbols/.npmignore | 4 + node_modules/icss-replace-symbols/README.md | 33 + .../icss-replace-symbols/lib/index.js | 28 + .../icss-replace-symbols/package.json | 40 + node_modules/icss-utils/CHANGELOG.md | 30 + node_modules/icss-utils/LICENSE.md | 6 + node_modules/icss-utils/README.md | 94 + node_modules/icss-utils/package.json | 52 + .../icss-utils/src/createICSSRules.js | 67 + node_modules/icss-utils/src/extractICSS.js | 76 + node_modules/icss-utils/src/index.js | 11 + node_modules/icss-utils/src/replaceSymbols.js | 18 + .../icss-utils/src/replaceValueSymbols.js | 22 + node_modules/image-size/LICENSE | 9 + node_modules/image-size/Readme.md | 88 + node_modules/image-size/bin/image-size.js | 36 + node_modules/image-size/lib/detector.js | 19 + node_modules/image-size/lib/index.js | 105 + node_modules/image-size/lib/readUInt.js | 11 + node_modules/image-size/lib/types.js | 13 + node_modules/image-size/lib/types/bmp.js | 17 + node_modules/image-size/lib/types/dds.js | 18 + node_modules/image-size/lib/types/gif.js | 19 + node_modules/image-size/lib/types/jpg.js | 62 + node_modules/image-size/lib/types/png.js | 36 + node_modules/image-size/lib/types/psd.js | 17 + node_modules/image-size/lib/types/svg.js | 78 + node_modules/image-size/lib/types/tiff.js | 118 + node_modules/image-size/lib/types/webp.js | 69 + node_modules/image-size/package.json | 49 + node_modules/immutable/LICENSE | 21 + node_modules/immutable/README.md | 761 + node_modules/immutable/dist/immutable.d.ts | 5912 + node_modules/immutable/dist/immutable.es.js | 5988 + node_modules/immutable/dist/immutable.js | 6044 + node_modules/immutable/dist/immutable.js.flow | 2412 + node_modules/immutable/dist/immutable.min.js | 55 + node_modules/immutable/package.json | 39 + node_modules/inflight/LICENSE | 15 + node_modules/inflight/README.md | 37 + node_modules/inflight/inflight.js | 54 + node_modules/inflight/package.json | 29 + node_modules/inherits/LICENSE | 16 + node_modules/inherits/README.md | 42 + node_modules/inherits/inherits.js | 9 + node_modules/inherits/inherits_browser.js | 27 + node_modules/inherits/package.json | 29 + node_modules/ini/LICENSE | 15 + node_modules/ini/README.md | 102 + node_modules/ini/ini.js | 206 + node_modules/ini/package.json | 33 + 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-buffer/LICENSE | 21 + node_modules/is-buffer/README.md | 53 + node_modules/is-buffer/index.js | 21 + node_modules/is-buffer/package.json | 51 + node_modules/is-buffer/test/basic.js | 24 + node_modules/is-core-module/.eslintrc | 18 + node_modules/is-core-module/.nycrc | 9 + node_modules/is-core-module/CHANGELOG.md | 205 + node_modules/is-core-module/LICENSE | 20 + node_modules/is-core-module/README.md | 40 + node_modules/is-core-module/core.json | 161 + node_modules/is-core-module/index.js | 69 + node_modules/is-core-module/package.json | 76 + node_modules/is-core-module/test/index.js | 154 + node_modules/is-extendable/LICENSE | 21 + node_modules/is-extendable/README.md | 72 + node_modules/is-extendable/index.js | 13 + node_modules/is-extendable/package.json | 51 + 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 + 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/is-what/.babelrc | 3 + node_modules/is-what/.eslintignore | 9 + node_modules/is-what/.eslintrc.js | 18 + node_modules/is-what/.github/FUNDING.yml | 12 + node_modules/is-what/.prettierrc | 9 + node_modules/is-what/.vscode/settings.json | 9 + node_modules/is-what/LICENSE | 21 + node_modules/is-what/README.md | 191 + node_modules/is-what/build.js | 60 + node_modules/is-what/dist/index.cjs.js | 364 + node_modules/is-what/dist/index.esm.js | 327 + node_modules/is-what/package.json | 86 + node_modules/is-what/src/index.ts | 395 + node_modules/is-what/test/ava.ts | 376 + node_modules/is-what/test/index.test.js | 15 + node_modules/is-what/tsconfig.json | 11 + node_modules/is-what/types/index.d.ts | 253 + node_modules/is-windows/LICENSE | 21 + node_modules/is-windows/index.js | 22 + node_modules/is-windows/package.json | 63 + node_modules/isexe/.npmignore | 2 + node_modules/isexe/LICENSE | 15 + node_modules/isexe/README.md | 51 + node_modules/isexe/index.js | 57 + node_modules/isexe/mode.js | 41 + node_modules/isexe/package.json | 31 + node_modules/isexe/test/basic.js | 221 + node_modules/isexe/windows.js | 42 + node_modules/jquery/AUTHORS.txt | 371 + node_modules/jquery/LICENSE.txt | 20 + node_modules/jquery/README.md | 60 + node_modules/jquery/bower.json | 14 + node_modules/jquery/dist/jquery.js | 10716 ++ node_modules/jquery/dist/jquery.min.js | 2 + node_modules/jquery/dist/jquery.min.map | 1 + node_modules/jquery/dist/jquery.slim.js | 8617 ++ node_modules/jquery/dist/jquery.slim.min.js | 2 + node_modules/jquery/dist/jquery.slim.min.map | 1 + node_modules/jquery/package.json | 122 + node_modules/jquery/src/ajax.js | 876 + node_modules/jquery/src/ajax/jsonp.js | 103 + node_modules/jquery/src/ajax/load.js | 77 + node_modules/jquery/src/ajax/script.js | 74 + node_modules/jquery/src/ajax/var/location.js | 5 + node_modules/jquery/src/ajax/var/nonce.js | 5 + node_modules/jquery/src/ajax/var/rquery.js | 5 + node_modules/jquery/src/ajax/xhr.js | 170 + node_modules/jquery/src/attributes.js | 13 + node_modules/jquery/src/attributes/attr.js | 141 + node_modules/jquery/src/attributes/classes.js | 184 + node_modules/jquery/src/attributes/prop.js | 142 + node_modules/jquery/src/attributes/support.js | 33 + node_modules/jquery/src/attributes/val.js | 191 + node_modules/jquery/src/callbacks.js | 236 + node_modules/jquery/src/core.js | 442 + node_modules/jquery/src/core/DOMEval.js | 43 + node_modules/jquery/src/core/access.js | 72 + node_modules/jquery/src/core/camelCase.js | 23 + node_modules/jquery/src/core/init.js | 129 + node_modules/jquery/src/core/isAttached.js | 26 + node_modules/jquery/src/core/nodeName.js | 13 + node_modules/jquery/src/core/parseHTML.js | 65 + node_modules/jquery/src/core/parseXML.js | 35 + .../jquery/src/core/ready-no-deferred.js | 97 + node_modules/jquery/src/core/ready.js | 86 + .../jquery/src/core/readyException.js | 13 + .../jquery/src/core/stripAndCollapse.js | 14 + node_modules/jquery/src/core/support.js | 20 + node_modules/jquery/src/core/toType.js | 20 + node_modules/jquery/src/core/var/rhtml.js | 7 + .../jquery/src/core/var/rsingleTag.js | 7 + node_modules/jquery/src/css.js | 507 + node_modules/jquery/src/css/addGetHookIf.js | 26 + node_modules/jquery/src/css/adjustCSS.js | 74 + node_modules/jquery/src/css/curCSS.js | 100 + node_modules/jquery/src/css/finalPropName.js | 42 + .../jquery/src/css/hiddenVisibleSelectors.js | 15 + node_modules/jquery/src/css/showHide.js | 105 + node_modules/jquery/src/css/support.js | 152 + node_modules/jquery/src/css/var/cssExpand.js | 5 + node_modules/jquery/src/css/var/getStyles.js | 17 + .../jquery/src/css/var/isHiddenWithinTree.js | 34 + node_modules/jquery/src/css/var/rboxStyle.js | 7 + .../jquery/src/css/var/rcustomProp.js | 7 + node_modules/jquery/src/css/var/rnumnonpx.js | 7 + node_modules/jquery/src/css/var/swap.js | 26 + node_modules/jquery/src/data.js | 180 + node_modules/jquery/src/data/Data.js | 162 + .../jquery/src/data/var/acceptData.js | 19 + node_modules/jquery/src/data/var/dataPriv.js | 7 + node_modules/jquery/src/data/var/dataUser.js | 7 + node_modules/jquery/src/deferred.js | 406 + .../jquery/src/deferred/exceptionHook.js | 25 + node_modules/jquery/src/deprecated.js | 89 + .../jquery/src/deprecated/ajax-event-alias.js | 22 + node_modules/jquery/src/deprecated/event.js | 52 + node_modules/jquery/src/dimensions.js | 60 + node_modules/jquery/src/effects.js | 702 + node_modules/jquery/src/effects/Tween.js | 125 + .../jquery/src/effects/animatedSelector.js | 15 + node_modules/jquery/src/event.js | 970 + node_modules/jquery/src/event/trigger.js | 199 + node_modules/jquery/src/exports/amd.js | 26 + node_modules/jquery/src/exports/global.js | 34 + node_modules/jquery/src/jquery.js | 40 + node_modules/jquery/src/manipulation.js | 488 + .../jquery/src/manipulation/_evalUrl.js | 32 + .../jquery/src/manipulation/buildFragment.js | 106 + .../jquery/src/manipulation/getAll.js | 32 + .../jquery/src/manipulation/setGlobalEval.js | 22 + .../jquery/src/manipulation/support.js | 41 + .../src/manipulation/var/rscriptType.js | 5 + .../jquery/src/manipulation/var/rtagName.js | 8 + .../jquery/src/manipulation/wrapMap.js | 30 + node_modules/jquery/src/offset.js | 232 + node_modules/jquery/src/queue.js | 145 + node_modules/jquery/src/queue/delay.js | 23 + node_modules/jquery/src/selector-native.js | 190 + node_modules/jquery/src/selector.js | 2117 + node_modules/jquery/src/selector/contains.js | 21 + .../jquery/src/selector/escapeSelector.js | 31 + node_modules/jquery/src/serialize.js | 134 + node_modules/jquery/src/traversing.js | 198 + .../jquery/src/traversing/findFilter.js | 97 + node_modules/jquery/src/traversing/var/dir.js | 22 + .../src/traversing/var/rneedsContext.js | 8 + .../jquery/src/traversing/var/siblings.js | 17 + .../jquery/src/var/ObjectFunctionString.js | 7 + node_modules/jquery/src/var/arr.js | 5 + node_modules/jquery/src/var/class2type.js | 6 + node_modules/jquery/src/var/document.js | 5 + .../jquery/src/var/documentElement.js | 7 + node_modules/jquery/src/var/flat.js | 16 + node_modules/jquery/src/var/fnToString.js | 7 + node_modules/jquery/src/var/getProto.js | 5 + node_modules/jquery/src/var/hasOwn.js | 7 + node_modules/jquery/src/var/indexOf.js | 7 + node_modules/jquery/src/var/isFunction.js | 17 + node_modules/jquery/src/var/isWindow.js | 8 + node_modules/jquery/src/var/pnum.js | 5 + node_modules/jquery/src/var/pop.js | 9 + node_modules/jquery/src/var/push.js | 7 + node_modules/jquery/src/var/rcheckableType.js | 5 + node_modules/jquery/src/var/rcssNum.js | 9 + node_modules/jquery/src/var/rnothtmlwhite.js | 8 + node_modules/jquery/src/var/rtrimCSS.js | 12 + node_modules/jquery/src/var/slice.js | 7 + node_modules/jquery/src/var/sort.js | 9 + node_modules/jquery/src/var/splice.js | 9 + node_modules/jquery/src/var/support.js | 6 + node_modules/jquery/src/var/toString.js | 7 + node_modules/jquery/src/var/whitespace.js | 8 + node_modules/jquery/src/wrap.js | 78 + node_modules/js-tokens/CHANGELOG.md | 151 + node_modules/js-tokens/LICENSE | 21 + node_modules/js-tokens/README.md | 240 + node_modules/js-tokens/index.js | 23 + node_modules/js-tokens/package.json | 30 + 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/kind-of/LICENSE | 21 + node_modules/kind-of/README.md | 261 + node_modules/kind-of/index.js | 116 + node_modules/kind-of/package.json | 90 + node_modules/lazy-cache/LICENSE | 21 + node_modules/lazy-cache/README.md | 195 + node_modules/lazy-cache/index.js | 73 + node_modules/lazy-cache/package.json | 69 + node_modules/less/.eslintignore | 6 + node_modules/less/.eslintrc.js | 63 + node_modules/less/Gruntfile.js | 416 + node_modules/less/LICENSE | 177 + node_modules/less/README.md | 13 + node_modules/less/bin/lessc | 662 + node_modules/less/bower.json | 22 + node_modules/less/dist/less.js | 11517 ++ node_modules/less/dist/less.min.js | 11 + node_modules/less/dist/less.min.js.map | 1 + node_modules/less/index.js | 1 + .../lib/less-browser/add-default-options.js | 43 + .../less-browser/add-default-options.js.map | 1 + .../less/lib/less-browser/bootstrap.js | 61 + .../less/lib/less-browser/bootstrap.js.map | 1 + node_modules/less/lib/less-browser/browser.js | 62 + .../less/lib/less-browser/browser.js.map | 1 + node_modules/less/lib/less-browser/cache.js | 45 + .../less/lib/less-browser/cache.js.map | 1 + .../less/lib/less-browser/error-reporting.js | 162 + .../lib/less-browser/error-reporting.js.map | 1 + .../less/lib/less-browser/file-manager.js | 102 + .../less/lib/less-browser/file-manager.js.map | 1 + .../less/lib/less-browser/image-size.js | 28 + .../less/lib/less-browser/image-size.js.map | 1 + node_modules/less/lib/less-browser/index.js | 258 + .../less/lib/less-browser/index.js.map | 1 + .../less/lib/less-browser/log-listener.js | 43 + .../less/lib/less-browser/log-listener.js.map | 1 + .../less/lib/less-browser/plugin-loader.js | 24 + .../lib/less-browser/plugin-loader.js.map | 1 + node_modules/less/lib/less-browser/utils.js | 32 + .../less/lib/less-browser/utils.js.map | 1 + .../less/lib/less-node/environment.js | 19 + .../less/lib/less-node/environment.js.map | 1 + .../less/lib/less-node/file-manager.js | 139 + .../less/lib/less-node/file-manager.js.map | 1 + node_modules/less/lib/less-node/fs.js | 11 + node_modules/less/lib/less-node/fs.js.map | 1 + node_modules/less/lib/less-node/image-size.js | 50 + .../less/lib/less-node/image-size.js.map | 1 + node_modules/less/lib/less-node/index.js | 22 + node_modules/less/lib/less-node/index.js.map | 1 + .../less/lib/less-node/lessc-helper.js | 94 + .../less/lib/less-node/lessc-helper.js.map | 1 + .../less/lib/less-node/plugin-loader.js | 54 + .../less/lib/less-node/plugin-loader.js.map | 1 + .../less/lib/less-node/url-file-manager.js | 58 + .../lib/less-node/url-file-manager.js.map | 1 + node_modules/less/lib/less/constants.js | 15 + node_modules/less/lib/less/constants.js.map | 1 + node_modules/less/lib/less/contexts.js | 149 + node_modules/less/lib/less/contexts.js.map | 1 + node_modules/less/lib/less/data/colors.js | 153 + node_modules/less/lib/less/data/colors.js.map | 1 + node_modules/less/lib/less/data/index.js | 7 + node_modules/less/lib/less/data/index.js.map | 1 + .../less/lib/less/data/unit-conversions.js | 24 + .../lib/less/data/unit-conversions.js.map | 1 + node_modules/less/lib/less/default-options.js | 60 + .../less/lib/less/default-options.js.map | 1 + .../less/environment/abstract-file-manager.js | 128 + .../environment/abstract-file-manager.js.map | 1 + .../environment/abstract-plugin-loader.js | 162 + .../environment/abstract-plugin-loader.js.map | 1 + .../lib/less/environment/environment-api.js | 3 + .../less/environment/environment-api.js.map | 1 + .../less/lib/less/environment/environment.js | 55 + .../lib/less/environment/environment.js.map | 1 + .../lib/less/environment/file-manager-api.js | 3 + .../less/environment/file-manager-api.js.map | 1 + .../less/lib/less/functions/boolean.js | 29 + .../less/lib/less/functions/boolean.js.map | 1 + .../less/lib/less/functions/color-blending.js | 77 + .../lib/less/functions/color-blending.js.map | 1 + node_modules/less/lib/less/functions/color.js | 436 + .../less/lib/less/functions/color.js.map | 1 + .../less/lib/less/functions/data-uri.js | 65 + .../less/lib/less/functions/data-uri.js.map | 1 + .../less/lib/less/functions/default.js | 28 + .../less/lib/less/functions/default.js.map | 1 + .../lib/less/functions/function-caller.js | 54 + .../lib/less/functions/function-caller.js.map | 1 + .../lib/less/functions/function-registry.js | 37 + .../less/functions/function-registry.js.map | 1 + node_modules/less/lib/less/functions/index.js | 33 + .../less/lib/less/functions/index.js.map | 1 + node_modules/less/lib/less/functions/list.js | 145 + .../less/lib/less/functions/list.js.map | 1 + .../less/lib/less/functions/math-helper.js | 18 + .../lib/less/functions/math-helper.js.map | 1 + node_modules/less/lib/less/functions/math.js | 29 + .../less/lib/less/functions/math.js.map | 1 + .../less/lib/less/functions/number.js | 103 + .../less/lib/less/functions/number.js.map | 1 + .../less/lib/less/functions/string.js | 40 + .../less/lib/less/functions/string.js.map | 1 + node_modules/less/lib/less/functions/svg.js | 86 + .../less/lib/less/functions/svg.js.map | 1 + node_modules/less/lib/less/functions/types.js | 74 + .../less/lib/less/functions/types.js.map | 1 + node_modules/less/lib/less/import-manager.js | 174 + .../less/lib/less/import-manager.js.map | 1 + node_modules/less/lib/less/index.js | 95 + node_modules/less/lib/less/index.js.map | 1 + node_modules/less/lib/less/less-error.js | 143 + node_modules/less/lib/less/less-error.js.map | 1 + node_modules/less/lib/less/logger.js | 37 + node_modules/less/lib/less/logger.js.map | 1 + node_modules/less/lib/less/parse-tree.js | 68 + node_modules/less/lib/less/parse-tree.js.map | 1 + node_modules/less/lib/less/parse.js | 87 + node_modules/less/lib/less/parse.js.map | 1 + node_modules/less/lib/less/parser/chunker.js | 148 + .../less/lib/less/parser/chunker.js.map | 1 + .../less/lib/less/parser/parser-input.js | 359 + .../less/lib/less/parser/parser-input.js.map | 1 + node_modules/less/lib/less/parser/parser.js | 2275 + .../less/lib/less/parser/parser.js.map | 1 + node_modules/less/lib/less/plugin-manager.js | 157 + .../less/lib/less/plugin-manager.js.map | 1 + node_modules/less/lib/less/render.js | 47 + node_modules/less/lib/less/render.js.map | 1 + .../less/lib/less/source-map-builder.js | 73 + .../less/lib/less/source-map-builder.js.map | 1 + .../less/lib/less/source-map-output.js | 138 + .../less/lib/less/source-map-output.js.map | 1 + node_modules/less/lib/less/transform-tree.js | 92 + .../less/lib/less/transform-tree.js.map | 1 + node_modules/less/lib/less/tree/anonymous.js | 33 + .../less/lib/less/tree/anonymous.js.map | 1 + node_modules/less/lib/less/tree/assignment.js | 31 + .../less/lib/less/tree/assignment.js.map | 1 + .../less/lib/less/tree/atrule-syntax.js | 10 + .../less/lib/less/tree/atrule-syntax.js.map | 1 + node_modules/less/lib/less/tree/atrule.js | 135 + node_modules/less/lib/less/tree/atrule.js.map | 1 + node_modules/less/lib/less/tree/attribute.js | 32 + .../less/lib/less/tree/attribute.js.map | 1 + node_modules/less/lib/less/tree/call.js | 104 + node_modules/less/lib/less/tree/call.js.map | 1 + node_modules/less/lib/less/tree/color.js | 236 + node_modules/less/lib/less/tree/color.js.map | 1 + node_modules/less/lib/less/tree/combinator.js | 28 + .../less/lib/less/tree/combinator.js.map | 1 + node_modules/less/lib/less/tree/comment.js | 27 + .../less/lib/less/tree/comment.js.map | 1 + node_modules/less/lib/less/tree/condition.js | 40 + .../less/lib/less/tree/condition.js.map | 1 + node_modules/less/lib/less/tree/container.js | 48 + .../less/lib/less/tree/container.js.map | 1 + node_modules/less/lib/less/tree/debug-info.js | 36 + .../less/lib/less/tree/debug-info.js.map | 1 + .../less/lib/less/tree/declaration.js | 94 + .../less/lib/less/tree/declaration.js.map | 1 + .../less/lib/less/tree/detached-ruleset.js | 27 + .../lib/less/tree/detached-ruleset.js.map | 1 + node_modules/less/lib/less/tree/dimension.js | 159 + .../less/lib/less/tree/dimension.js.map | 1 + node_modules/less/lib/less/tree/element.js | 63 + .../less/lib/less/tree/element.js.map | 1 + node_modules/less/lib/less/tree/expression.js | 69 + .../less/lib/less/tree/expression.js.map | 1 + node_modules/less/lib/less/tree/extend.js | 58 + node_modules/less/lib/less/tree/extend.js.map | 1 + node_modules/less/lib/less/tree/import.js | 171 + node_modules/less/lib/less/tree/import.js.map | 1 + node_modules/less/lib/less/tree/index.js | 85 + node_modules/less/lib/less/tree/index.js.map | 1 + node_modules/less/lib/less/tree/javascript.js | 34 + .../less/lib/less/tree/javascript.js.map | 1 + .../less/lib/less/tree/js-eval-node.js | 60 + .../less/lib/less/tree/js-eval-node.js.map | 1 + node_modules/less/lib/less/tree/keyword.js | 20 + .../less/lib/less/tree/keyword.js.map | 1 + node_modules/less/lib/less/tree/media.js | 48 + node_modules/less/lib/less/tree/media.js.map | 1 + node_modules/less/lib/less/tree/mixin-call.js | 196 + .../less/lib/less/tree/mixin-call.js.map | 1 + .../less/lib/less/tree/mixin-definition.js | 213 + .../lib/less/tree/mixin-definition.js.map | 1 + .../less/lib/less/tree/namespace-value.js | 76 + .../less/lib/less/tree/namespace-value.js.map | 1 + node_modules/less/lib/less/tree/negative.js | 24 + .../less/lib/less/tree/negative.js.map | 1 + .../less/lib/less/tree/nested-at-rule.js | 91 + .../less/lib/less/tree/nested-at-rule.js.map | 1 + node_modules/less/lib/less/tree/node.js | 175 + node_modules/less/lib/less/tree/node.js.map | 1 + node_modules/less/lib/less/tree/operation.js | 56 + .../less/lib/less/tree/operation.js.map | 1 + node_modules/less/lib/less/tree/paren.js | 20 + node_modules/less/lib/less/tree/paren.js.map | 1 + node_modules/less/lib/less/tree/property.js | 65 + .../less/lib/less/tree/property.js.map | 1 + .../less/lib/less/tree/query-in-parens.js | 41 + .../less/lib/less/tree/query-in-parens.js.map | 1 + node_modules/less/lib/less/tree/quoted.js | 65 + node_modules/less/lib/less/tree/quoted.js.map | 1 + node_modules/less/lib/less/tree/ruleset.js | 752 + .../less/lib/less/tree/ruleset.js.map | 1 + node_modules/less/lib/less/tree/selector.js | 127 + .../less/lib/less/tree/selector.js.map | 1 + .../less/lib/less/tree/unicode-descriptor.js | 12 + .../lib/less/tree/unicode-descriptor.js.map | 1 + node_modules/less/lib/less/tree/unit.js | 122 + node_modules/less/lib/less/tree/unit.js.map | 1 + node_modules/less/lib/less/tree/url.js | 59 + node_modules/less/lib/less/tree/url.js.map | 1 + node_modules/less/lib/less/tree/value.js | 44 + node_modules/less/lib/less/tree/value.js.map | 1 + .../less/lib/less/tree/variable-call.js | 43 + .../less/lib/less/tree/variable-call.js.map | 1 + node_modules/less/lib/less/tree/variable.js | 63 + .../less/lib/less/tree/variable.js.map | 1 + node_modules/less/lib/less/utils.js | 129 + node_modules/less/lib/less/utils.js.map | 1 + .../less/lib/less/visitors/extend-visitor.js | 439 + .../lib/less/visitors/extend-visitor.js.map | 1 + .../lib/less/visitors/import-sequencer.js | 56 + .../lib/less/visitors/import-sequencer.js.map | 1 + .../less/lib/less/visitors/import-visitor.js | 180 + .../lib/less/visitors/import-visitor.js.map | 1 + node_modules/less/lib/less/visitors/index.js | 18 + .../less/lib/less/visitors/index.js.map | 1 + .../less/visitors/join-selector-visitor.js | 59 + .../visitors/join-selector-visitor.js.map | 1 + .../visitors/set-tree-visibility-visitor.js | 43 + .../set-tree-visibility-visitor.js.map | 1 + .../less/lib/less/visitors/to-css-visitor.js | 325 + .../lib/less/visitors/to-css-visitor.js.map | 1 + .../less/lib/less/visitors/visitor.js | 150 + .../less/lib/less/visitors/visitor.js.map | 1 + node_modules/less/package.json | 140 + node_modules/less/test/.eslintrc.json | 9 + node_modules/less/test/README.md | 3 + node_modules/less/test/browser/common.js | 230 + .../test/browser/css/global-vars/simple.css | 3 + .../test/browser/css/modify-vars/simple.css | 8 + .../less/test/browser/css/plugin/plugin.css | 3 + .../css/postProcessor/postProcessor.css | 4 + .../test/browser/css/relative-urls/urls.css | 36 + .../test/browser/css/rewrite-urls/urls.css | 36 + .../browser/css/rootpath-relative/urls.css | 35 + .../css/rootpath-rewrite-urls/urls.css | 35 + .../less/test/browser/css/rootpath/urls.css | 35 + node_modules/less/test/browser/css/urls.css | 54 + .../browser/generator/benchmark.config.js | 50 + .../less/test/browser/generator/generate.js | 78 + .../test/browser/generator/runner.config.js | 186 + .../less/test/browser/generator/runner.js | 2 + .../less/test/browser/generator/template.js | 83 + .../less/console-errors/test-error.less | 3 + .../less/console-errors/test-error.txt | 2 + .../less/errors/image-height-error.less | 3 + .../less/errors/image-height-error.txt | 4 + .../browser/less/errors/image-size-error.less | 3 + .../browser/less/errors/image-size-error.txt | 4 + .../less/errors/image-width-error.less | 3 + .../browser/less/errors/image-width-error.txt | 4 + .../test/browser/less/global-vars/simple.less | 3 + .../less/test/browser/less/imports/urls.less | 4 + .../less/test/browser/less/imports/urls2.less | 4 + .../less/modify-vars/imports/simple2.less | 4 + .../test/browser/less/modify-vars/simple.less | 8 + .../mixin-consumer.less | 5 + .../svg-gradient-mixin.less | 15 + .../less/test/browser/less/plugin/plugin.js | 4 + .../less/test/browser/less/plugin/plugin.less | 4 + .../less/postProcessor/postProcessor.less | 4 + .../test/browser/less/relative-urls/urls.less | 34 + .../test/browser/less/rewrite-urls/urls.less | 34 + .../browser/less/rootpath-relative/urls.less | 33 + .../less/rootpath-rewrite-urls/urls.less | 33 + .../less/test/browser/less/rootpath/urls.less | 33 + node_modules/less/test/browser/less/urls.less | 62 + .../browser/runner-VisitorPlugin-options.js | 3 + .../less/test/browser/runner-VisitorPlugin.js | 3 + .../test/browser/runner-browser-options.js | 51 + .../less/test/browser/runner-browser-spec.js | 12 + .../test/browser/runner-console-errors.js | 5 + .../test/browser/runner-errors-options.js | 6 + .../less/test/browser/runner-errors-spec.js | 3 + .../runner-filemanagerPlugin-options.js | 5 + .../test/browser/runner-filemanagerPlugin.js | 3 + .../browser/runner-global-vars-options.js | 7 + .../test/browser/runner-global-vars-spec.js | 3 + .../test/browser/runner-legacy-options.js | 6 + .../less/test/browser/runner-legacy-spec.js | 3 + .../less/test/browser/runner-main-options.js | 17 + .../less/test/browser/runner-main-spec.js | 7 + .../browser/runner-modify-vars-options.js | 5 + .../test/browser/runner-modify-vars-spec.js | 33 + .../browser/runner-no-js-errors-options.js | 4 + .../test/browser/runner-no-js-errors-spec.js | 3 + .../runner-postProcessorPlugin-options.js | 3 + .../browser/runner-postProcessorPlugin.js | 3 + .../runner-preProcessorPlugin-options.js | 3 + .../test/browser/runner-preProcessorPlugin.js | 3 + .../test/browser/runner-production-options.js | 3 + .../test/browser/runner-production-spec.js | 5 + .../browser/runner-relative-urls-options.js | 3 + .../test/browser/runner-relative-urls-spec.js | 3 + .../browser/runner-rewrite-urls-options.js | 3 + .../test/browser/runner-rewrite-urls-spec.js | 3 + .../test/browser/runner-rootpath-options.js | 3 + .../runner-rootpath-relative-options.js | 4 + .../browser/runner-rootpath-relative-spec.js | 3 + .../runner-rootpath-rewrite-urls-options.js | 4 + .../runner-rootpath-rewrite-urls-spec.js | 3 + .../less/test/browser/runner-rootpath-spec.js | 3 + .../browser/runner-strict-units-options.js | 5 + .../test/browser/runner-strict-units-spec.js | 3 + node_modules/less/test/index.js | 112 + node_modules/less/test/less-test.js | 623 + node_modules/less/test/modify-vars.js | 28 + .../less/test/plugins/filemanager/index.js | 19 + .../less/test/plugins/postprocess/index.js | 14 + .../less/test/plugins/preprocess/index.js | 19 + .../less/test/plugins/visitor/index.js | 24 + .../sourcemaps-disable-annotation/basic.json | 1 + .../sourcemaps-variable-selector/basic.json | 1 + node_modules/less/test/sourcemaps/basic.json | 1 + .../less/test/sourcemaps/custom-props.json | 1 + node_modules/less/test/sourcemaps/index.html | 17 + node_modules/less/test/test-es6.ts | 17 + node_modules/less/tsconfig.build.json | 7 + node_modules/less/tsconfig.json | 20 + node_modules/loader-utils/LICENSE | 20 + node_modules/loader-utils/README.md | 167 + .../loader-utils/lib/getHashDigest.js | 136 + .../loader-utils/lib/hash/BatchedHash.js | 64 + .../lib/hash/BulkUpdateDecorator.js | 107 + node_modules/loader-utils/lib/hash/md4.js | 20 + .../loader-utils/lib/hash/wasm-hash.js | 208 + .../loader-utils/lib/hash/xxhash64.js | 20 + node_modules/loader-utils/lib/index.js | 11 + .../loader-utils/lib/interpolateName.js | 117 + node_modules/loader-utils/lib/isUrlRequest.js | 31 + node_modules/loader-utils/lib/urlToRequest.js | 60 + node_modules/loader-utils/package.json | 35 + node_modules/lodash.camelcase/LICENSE | 47 + node_modules/lodash.camelcase/README.md | 18 + node_modules/lodash.camelcase/index.js | 599 + node_modules/lodash.camelcase/package.json | 17 + node_modules/loose-envify/LICENSE | 21 + node_modules/loose-envify/README.md | 45 + node_modules/loose-envify/cli.js | 16 + node_modules/loose-envify/custom.js | 4 + node_modules/loose-envify/index.js | 3 + node_modules/loose-envify/loose-envify.js | 36 + node_modules/loose-envify/package.json | 36 + node_modules/loose-envify/replace.js | 65 + node_modules/make-dir/index.d.ts | 39 + node_modules/make-dir/index.js | 139 + node_modules/make-dir/license | 9 + node_modules/make-dir/package.json | 59 + node_modules/make-dir/readme.md | 123 + node_modules/mime/.npmignore | 0 node_modules/mime/CHANGELOG.md | 164 + node_modules/mime/LICENSE | 21 + node_modules/mime/README.md | 90 + node_modules/mime/cli.js | 8 + node_modules/mime/mime.js | 108 + node_modules/mime/package.json | 44 + node_modules/mime/src/build.js | 53 + node_modules/mime/src/test.js | 60 + node_modules/mime/types.json | 1 + node_modules/minimatch/LICENSE | 15 + node_modules/minimatch/README.md | 230 + node_modules/minimatch/minimatch.js | 947 + node_modules/minimatch/package.json | 33 + node_modules/minimist/.eslintrc | 29 + node_modules/minimist/.github/FUNDING.yml | 12 + node_modules/minimist/.nycrc | 14 + node_modules/minimist/CHANGELOG.md | 298 + node_modules/minimist/LICENSE | 18 + node_modules/minimist/README.md | 121 + node_modules/minimist/example/parse.js | 4 + node_modules/minimist/index.js | 263 + node_modules/minimist/package.json | 75 + node_modules/minimist/test/all_bool.js | 34 + node_modules/minimist/test/bool.js | 177 + node_modules/minimist/test/dash.js | 43 + node_modules/minimist/test/default_bool.js | 37 + node_modules/minimist/test/dotted.js | 24 + node_modules/minimist/test/kv_short.js | 32 + node_modules/minimist/test/long.js | 33 + node_modules/minimist/test/num.js | 38 + node_modules/minimist/test/parse.js | 209 + node_modules/minimist/test/parse_modified.js | 11 + node_modules/minimist/test/proto.js | 64 + node_modules/minimist/test/short.js | 69 + node_modules/minimist/test/stop_early.js | 17 + node_modules/minimist/test/unknown.js | 104 + node_modules/minimist/test/whitespace.js | 10 + node_modules/ms/index.js | 162 + node_modules/ms/license.md | 21 + node_modules/ms/package.json | 37 + node_modules/ms/readme.md | 60 + 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.cts | 91 + 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 | 88 + node_modules/nanoid/url-alphabet/index.cjs | 3 + node_modules/nanoid/url-alphabet/index.js | 3 + node_modules/nanoid/url-alphabet/package.json | 6 + .../needle/.github/workflows/nodejs.yml | 28 + node_modules/needle/README.md | 637 + node_modules/needle/bin/needle | 40 + .../needle/examples/deflated-stream.js | 22 + node_modules/needle/examples/digest-auth.js | 16 + .../needle/examples/download-to-file.js | 18 + .../needle/examples/multipart-stream.js | 25 + node_modules/needle/examples/parsed-stream.js | 23 + .../needle/examples/parsed-stream2.js | 21 + node_modules/needle/examples/stream-events.js | 23 + .../needle/examples/stream-multiple/app.js | 21 + .../needle/examples/stream-multiple/env.js | 9 + .../examples/stream-multiple/package.json | 19 + .../stream-multiple/stream-multiple.js | 50 + .../needle/examples/stream-to-file.js | 14 + node_modules/needle/examples/upload-image.js | 51 + node_modules/needle/lib/auth.js | 111 + node_modules/needle/lib/cookies.js | 79 + node_modules/needle/lib/decoder.js | 62 + node_modules/needle/lib/multipart.js | 98 + node_modules/needle/lib/needle.js | 858 + node_modules/needle/lib/parsers.js | 122 + node_modules/needle/lib/querystring.js | 49 + node_modules/needle/lib/utils.js | 111 + node_modules/needle/license.txt | 19 + node_modules/needle/package.json | 70 + node_modules/needle/test/auth_digest_spec.js | 231 + node_modules/needle/test/basic_auth_spec.js | 196 + node_modules/needle/test/compression_spec.js | 112 + node_modules/needle/test/cookies_spec.js | 396 + node_modules/needle/test/decoder_spec.js | 270 + node_modules/needle/test/errors_spec.js | 406 + .../needle/test/files/Appalachia.html | 797 + .../needle/test/files/tomcat_charset.html | 342 + node_modules/needle/test/headers_spec.js | 320 + node_modules/needle/test/helpers.js | 74 + node_modules/needle/test/long_string_spec.js | 43 + node_modules/needle/test/mimetype.js | 81 + node_modules/needle/test/output_spec.js | 263 + node_modules/needle/test/parsing_spec.js | 588 + node_modules/needle/test/post_data_spec.js | 1021 + node_modules/needle/test/proxy_spec.js | 268 + node_modules/needle/test/querystring_spec.js | 128 + node_modules/needle/test/redirect_spec.js | 465 + .../needle/test/redirect_with_timeout.js | 45 + .../needle/test/request_stream_spec.js | 164 + .../needle/test/response_stream_spec.js | 138 + .../needle/test/socket_cleanup_spec.js | 79 + node_modules/needle/test/socket_pool_spec.js | 67 + .../needle/test/stream_events_spec.js | 144 + node_modules/needle/test/tls_options_spec.js | 57 + node_modules/needle/test/uri_modifier_spec.js | 46 + node_modules/needle/test/url_spec.js | 155 + node_modules/needle/test/utils/formidable.js | 17 + node_modules/needle/test/utils/proxy.js | 62 + node_modules/needle/test/utils/test.js | 104 + node_modules/needle/test/utils_spec.js | 105 + 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 | 22 + 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/object-assign/index.js | 90 + node_modules/object-assign/license | 21 + node_modules/object-assign/package.json | 42 + node_modules/object-assign/readme.md | 61 + node_modules/once/LICENSE | 15 + node_modules/once/README.md | 79 + node_modules/once/once.js | 42 + node_modules/once/package.json | 33 + node_modules/os-homedir/index.js | 24 + node_modules/os-homedir/license | 21 + node_modules/os-homedir/package.json | 41 + node_modules/os-homedir/readme.md | 31 + node_modules/parse-node-version/LICENSE | 22 + node_modules/parse-node-version/README.md | 51 + node_modules/parse-node-version/index.js | 20 + node_modules/parse-node-version/package.json | 40 + node_modules/parse-passwd/LICENSE | 21 + node_modules/parse-passwd/README.md | 86 + node_modules/parse-passwd/index.js | 56 + node_modules/parse-passwd/package.json | 55 + node_modules/path-is-absolute/index.js | 20 + node_modules/path-is-absolute/license | 21 + node_modules/path-is-absolute/package.json | 43 + node_modules/path-is-absolute/readme.md | 59 + node_modules/path-parse/LICENSE | 21 + node_modules/path-parse/README.md | 42 + node_modules/path-parse/index.js | 75 + node_modules/path-parse/package.json | 33 + 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 | 65 + 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 | 9 + node_modules/pify/package.json | 51 + node_modules/pify/readme.md | 145 + .../postcss-modules-extract-imports/LICENSE | 5 + .../postcss-modules-extract-imports/README.md | 76 + .../package.json | 51 + .../src/index.js | 209 + .../src/topologicalSort.js | 66 + .../postcss-modules-local-by-default/LICENSE | 20 + .../README.md | 68 + .../package.json | 52 + .../src/index.js | 631 + node_modules/postcss-modules-scope/LICENSE | 7 + node_modules/postcss-modules-scope/README.md | 100 + .../postcss-modules-scope/package.json | 54 + .../postcss-modules-scope/src/index.js | 376 + .../postcss-modules-values/CHANGELOG.md | 55 + node_modules/postcss-modules-values/LICENSE | 7 + node_modules/postcss-modules-values/README.md | 80 + .../postcss-modules-values/package.json | 54 + .../postcss-modules-values/src/index.js | 142 + node_modules/postcss-modules/CHANGELOG.md | 199 + node_modules/postcss-modules/LICENSE | 20 + node_modules/postcss-modules/README.md | 332 + .../postcss-modules/build/behaviours.js | 50 + .../build/css-loader-core/loader.js | 121 + .../build/css-loader-core/parser.js | 80 + .../build/generateScopedName.js | 20 + node_modules/postcss-modules/build/index.js | 182 + .../postcss-modules/build/saveJSON.js | 14 + .../postcss-modules/build/unquote/index.js | 22 + node_modules/postcss-modules/index.d.ts | 62 + node_modules/postcss-modules/package.json | 65 + node_modules/postcss-selector-parser/API.md | 872 + .../postcss-selector-parser/CHANGELOG.md | 549 + .../postcss-selector-parser/LICENSE-MIT | 22 + .../postcss-selector-parser/README.md | 49 + .../postcss-selector-parser/dist/index.js | 17 + .../postcss-selector-parser/dist/parser.js | 1015 + .../postcss-selector-parser/dist/processor.js | 170 + .../dist/selectors/attribute.js | 448 + .../dist/selectors/className.js | 50 + .../dist/selectors/combinator.js | 21 + .../dist/selectors/comment.js | 21 + .../dist/selectors/constructors.js | 65 + .../dist/selectors/container.js | 308 + .../dist/selectors/guards.js | 58 + .../dist/selectors/id.js | 25 + .../dist/selectors/index.js | 21 + .../dist/selectors/namespace.js | 80 + .../dist/selectors/nesting.js | 22 + .../dist/selectors/node.js | 192 + .../dist/selectors/pseudo.js | 26 + .../dist/selectors/root.js | 44 + .../dist/selectors/selector.js | 21 + .../dist/selectors/string.js | 21 + .../dist/selectors/tag.js | 21 + .../dist/selectors/types.js | 28 + .../dist/selectors/universal.js | 22 + .../dist/sortAscending.js | 11 + .../dist/tokenTypes.js | 70 + .../postcss-selector-parser/dist/tokenize.js | 239 + .../dist/util/ensureObject.js | 17 + .../dist/util/getProp.js | 18 + .../dist/util/index.js | 13 + .../dist/util/stripComments.js | 21 + .../dist/util/unesc.js | 76 + .../postcss-selector-parser/package.json | 80 + .../postcss-selector-parser.d.ts | 555 + 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 | 28 + node_modules/postcss/lib/at-rule.d.ts | 140 + node_modules/postcss/lib/at-rule.js | 25 + node_modules/postcss/lib/comment.d.ts | 68 + node_modules/postcss/lib/comment.js | 13 + node_modules/postcss/lib/container.d.ts | 490 + node_modules/postcss/lib/container.js | 445 + .../postcss/lib/css-syntax-error.d.ts | 248 + node_modules/postcss/lib/css-syntax-error.js | 100 + node_modules/postcss/lib/declaration.d.ts | 151 + node_modules/postcss/lib/declaration.js | 24 + node_modules/postcss/lib/document.d.ts | 69 + 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 | 197 + node_modules/postcss/lib/input.js | 248 + node_modules/postcss/lib/lazy-result.d.ts | 190 + node_modules/postcss/lib/lazy-result.js | 550 + node_modules/postcss/lib/list.d.ts | 56 + node_modules/postcss/lib/list.js | 58 + node_modules/postcss/lib/map-generator.js | 368 + node_modules/postcss/lib/no-work-result.d.ts | 46 + node_modules/postcss/lib/no-work-result.js | 138 + node_modules/postcss/lib/node.d.ts | 536 + node_modules/postcss/lib/node.js | 381 + node_modules/postcss/lib/parse.d.ts | 9 + node_modules/postcss/lib/parse.js | 42 + node_modules/postcss/lib/parser.js | 609 + node_modules/postcss/lib/postcss.d.mts | 69 + node_modules/postcss/lib/postcss.d.ts | 450 + 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 | 144 + node_modules/postcss/lib/processor.d.ts | 115 + node_modules/postcss/lib/processor.js | 67 + node_modules/postcss/lib/result.d.ts | 205 + node_modules/postcss/lib/result.js | 42 + node_modules/postcss/lib/root.d.ts | 87 + node_modules/postcss/lib/root.js | 61 + node_modules/postcss/lib/rule.d.ts | 126 + 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/prop-types/LICENSE | 21 + node_modules/prop-types/README.md | 302 + node_modules/prop-types/checkPropTypes.js | 103 + node_modules/prop-types/factory.js | 19 + .../prop-types/factoryWithThrowingShims.js | 65 + .../prop-types/factoryWithTypeCheckers.js | 610 + node_modules/prop-types/index.js | 19 + .../prop-types/lib/ReactPropTypesSecret.js | 12 + node_modules/prop-types/lib/has.js | 1 + node_modules/prop-types/package.json | 60 + node_modules/prop-types/prop-types.js | 1315 + node_modules/prop-types/prop-types.min.js | 1 + node_modules/prr/.jshintrc | 61 + node_modules/prr/.npmignore | 1 + node_modules/prr/.travis.yml | 10 + node_modules/prr/LICENSE.md | 11 + node_modules/prr/README.md | 47 + node_modules/prr/package.json | 26 + node_modules/prr/prr.js | 63 + node_modules/prr/test.js | 169 + .../react-circular-progressbar/LICENSE | 21 + .../react-circular-progressbar/README.md | 317 + .../dist/CircularProgressbar.d.ts | 10 + .../dist/CircularProgressbarWithChildren.d.ts | 7 + .../react-circular-progressbar/dist/Path.d.ts | 10 + .../dist/buildStyles.d.ts | 12 + .../dist/constants.d.ts | 5 + .../dist/index.d.ts | 4 + .../dist/index.esm.js | 195 + .../dist/index.esm.js.map | 1 + .../react-circular-progressbar/dist/index.js | 201 + .../dist/index.js.map | 1 + .../dist/styles.css | 66 + .../dist/types.d.ts | 50 + .../react-circular-progressbar/package.json | 57 + node_modules/react-dom/LICENSE | 21 + node_modules/react-dom/README.md | 60 + ...t-dom-server-legacy.browser.development.js | 7029 + ...om-server-legacy.browser.production.min.js | 93 + ...eact-dom-server-legacy.node.development.js | 7093 + ...t-dom-server-legacy.node.production.min.js | 101 + .../react-dom-server.browser.development.js | 7014 + ...react-dom-server.browser.production.min.js | 96 + .../cjs/react-dom-server.node.development.js | 7070 + .../react-dom-server.node.production.min.js | 102 + .../cjs/react-dom-test-utils.development.js | 1763 + .../react-dom-test-utils.production.min.js | 40 + .../react-dom/cjs/react-dom.development.js | 29923 ++++ .../react-dom/cjs/react-dom.production.min.js | 322 + .../react-dom/cjs/react-dom.profiling.min.js | 366 + node_modules/react-dom/client.js | 25 + node_modules/react-dom/index.js | 38 + node_modules/react-dom/package.json | 62 + node_modules/react-dom/profiling.js | 38 + node_modules/react-dom/server.browser.js | 17 + node_modules/react-dom/server.js | 3 + node_modules/react-dom/server.node.js | 17 + node_modules/react-dom/test-utils.js | 7 + ...t-dom-server-legacy.browser.development.js | 7026 + ...om-server-legacy.browser.production.min.js | 75 + .../react-dom-server.browser.development.js | 7011 + ...react-dom-server.browser.production.min.js | 76 + .../umd/react-dom-test-utils.development.js | 1759 + .../react-dom-test-utils.production.min.js | 33 + .../react-dom/umd/react-dom.development.js | 29924 ++++ .../react-dom/umd/react-dom.production.min.js | 267 + .../react-dom/umd/react-dom.profiling.min.js | 285 + node_modules/react-is/LICENSE | 21 + node_modules/react-is/README.md | 104 + node_modules/react-is/build-info.json | 8 + .../react-is/cjs/react-is.development.js | 181 + .../react-is/cjs/react-is.production.min.js | 15 + node_modules/react-is/index.js | 7 + node_modules/react-is/package.json | 27 + .../react-is/umd/react-is.development.js | 181 + .../react-is/umd/react-is.production.min.js | 13 + .../react-lifecycles-compat/CHANGELOG.md | 48 + .../react-lifecycles-compat/LICENSE.md | 21 + .../react-lifecycles-compat/README.md | 57 + .../react-lifecycles-compat/package.json | 39 + .../react-lifecycles-compat.cjs.js | 162 + .../react-lifecycles-compat.es.js | 158 + .../react-lifecycles-compat.js | 168 + .../react-lifecycles-compat.min.js | 1 + node_modules/react-modal/CHANGELOG.md | 904 + node_modules/react-modal/LICENSE | 19 + node_modules/react-modal/README.md | 131 + node_modules/react-modal/UPGRADE_GUIDE.md | 7 + node_modules/react-modal/dist/react-modal.js | 39 + .../react-modal/dist/react-modal.min.js | 39 + .../react-modal/lib/components/Modal.js | 300 + .../react-modal/lib/components/ModalPortal.js | 445 + .../react-modal/lib/helpers/ariaAppHider.js | 139 + .../react-modal/lib/helpers/bodyTrap.js | 93 + .../react-modal/lib/helpers/classList.js | 130 + .../react-modal/lib/helpers/focusManager.js | 117 + .../lib/helpers/portalOpenInstances.js | 78 + .../lib/helpers/safeHTMLElement.js | 24 + .../react-modal/lib/helpers/scopeTab.js | 96 + .../react-modal/lib/helpers/tabbable.js | 82 + node_modules/react-modal/lib/index.js | 14 + node_modules/react-modal/package.json | 91 + node_modules/react/LICENSE | 21 + node_modules/react/README.md | 37 + .../cjs/react-jsx-dev-runtime.development.js | 1315 + .../react-jsx-dev-runtime.production.min.js | 10 + .../react-jsx-dev-runtime.profiling.min.js | 10 + .../cjs/react-jsx-runtime.development.js | 1333 + .../cjs/react-jsx-runtime.production.min.js | 11 + .../cjs/react-jsx-runtime.profiling.min.js | 11 + node_modules/react/cjs/react.development.js | 2740 + .../react/cjs/react.production.min.js | 26 + .../cjs/react.shared-subset.development.js | 20 + .../cjs/react.shared-subset.production.min.js | 10 + node_modules/react/index.js | 7 + node_modules/react/jsx-dev-runtime.js | 7 + node_modules/react/jsx-runtime.js | 7 + node_modules/react/package.json | 47 + node_modules/react/react.shared-subset.js | 7 + node_modules/react/umd/react.development.js | 3343 + .../react/umd/react.production.min.js | 31 + node_modules/react/umd/react.profiling.min.js | 31 + 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/resolve-dir/LICENSE | 21 + node_modules/resolve-dir/README.md | 88 + node_modules/resolve-dir/index.js | 22 + .../node_modules/expand-tilde/LICENSE | 21 + .../node_modules/expand-tilde/index.js | 22 + .../node_modules/expand-tilde/package.json | 67 + node_modules/resolve-dir/package.json | 74 + node_modules/resolve-file/LICENSE | 21 + node_modules/resolve-file/README.md | 122 + node_modules/resolve-file/index.js | 131 + node_modules/resolve-file/package.json | 71 + node_modules/resolve-file/utils.js | 71 + node_modules/resolve/.editorconfig | 37 + node_modules/resolve/.eslintrc | 65 + node_modules/resolve/.github/FUNDING.yml | 12 + node_modules/resolve/LICENSE | 21 + node_modules/resolve/SECURITY.md | 3 + node_modules/resolve/async.js | 3 + node_modules/resolve/bin/resolve | 50 + node_modules/resolve/example/async.js | 5 + node_modules/resolve/example/sync.js | 3 + node_modules/resolve/index.js | 6 + node_modules/resolve/lib/async.js | 329 + node_modules/resolve/lib/caller.js | 8 + node_modules/resolve/lib/core.js | 12 + node_modules/resolve/lib/core.json | 158 + node_modules/resolve/lib/homedir.js | 24 + node_modules/resolve/lib/is-core.js | 5 + .../resolve/lib/node-modules-paths.js | 42 + node_modules/resolve/lib/normalize-options.js | 10 + node_modules/resolve/lib/sync.js | 208 + node_modules/resolve/package.json | 72 + node_modules/resolve/readme.markdown | 301 + node_modules/resolve/sync.js | 3 + node_modules/resolve/test/core.js | 88 + node_modules/resolve/test/dotdot.js | 29 + node_modules/resolve/test/dotdot/abc/index.js | 2 + node_modules/resolve/test/dotdot/index.js | 1 + node_modules/resolve/test/faulty_basedir.js | 29 + node_modules/resolve/test/filter.js | 34 + node_modules/resolve/test/filter_sync.js | 33 + node_modules/resolve/test/home_paths.js | 127 + node_modules/resolve/test/home_paths_sync.js | 114 + node_modules/resolve/test/mock.js | 315 + node_modules/resolve/test/mock_sync.js | 214 + node_modules/resolve/test/module_dir.js | 56 + .../test/module_dir/xmodules/aaa/index.js | 1 + .../test/module_dir/ymodules/aaa/index.js | 1 + .../test/module_dir/zmodules/bbb/main.js | 1 + .../test/module_dir/zmodules/bbb/package.json | 3 + .../resolve/test/node-modules-paths.js | 143 + node_modules/resolve/test/node_path.js | 70 + .../resolve/test/node_path/x/aaa/index.js | 1 + .../resolve/test/node_path/x/ccc/index.js | 1 + .../resolve/test/node_path/y/bbb/index.js | 1 + .../resolve/test/node_path/y/ccc/index.js | 1 + node_modules/resolve/test/nonstring.js | 9 + node_modules/resolve/test/pathfilter.js | 75 + .../resolve/test/pathfilter/deep_ref/main.js | 0 node_modules/resolve/test/precedence.js | 23 + node_modules/resolve/test/precedence/aaa.js | 1 + .../resolve/test/precedence/aaa/index.js | 1 + .../resolve/test/precedence/aaa/main.js | 1 + node_modules/resolve/test/precedence/bbb.js | 1 + .../resolve/test/precedence/bbb/main.js | 1 + node_modules/resolve/test/resolver.js | 597 + .../resolve/test/resolver/baz/doom.js | 0 .../resolve/test/resolver/baz/package.json | 4 + .../resolve/test/resolver/baz/quux.js | 1 + .../resolve/test/resolver/browser_field/a.js | 0 .../resolve/test/resolver/browser_field/b.js | 0 .../test/resolver/browser_field/package.json | 5 + node_modules/resolve/test/resolver/cup.coffee | 1 + .../resolve/test/resolver/dot_main/index.js | 1 + .../test/resolver/dot_main/package.json | 3 + .../test/resolver/dot_slash_main/index.js | 1 + .../test/resolver/dot_slash_main/package.json | 3 + .../resolve/test/resolver/false_main/index.js | 0 .../test/resolver/false_main/package.json | 4 + node_modules/resolve/test/resolver/foo.js | 1 + .../test/resolver/incorrect_main/index.js | 2 + .../test/resolver/incorrect_main/package.json | 3 + .../test/resolver/invalid_main/package.json | 7 + node_modules/resolve/test/resolver/mug.coffee | 0 node_modules/resolve/test/resolver/mug.js | 0 .../test/resolver/multirepo/lerna.json | 6 + .../test/resolver/multirepo/package.json | 20 + .../multirepo/packages/package-a/index.js | 35 + .../multirepo/packages/package-a/package.json | 14 + .../multirepo/packages/package-b/index.js | 0 .../multirepo/packages/package-b/package.json | 14 + .../resolver/nested_symlinks/mylib/async.js | 26 + .../nested_symlinks/mylib/package.json | 15 + .../resolver/nested_symlinks/mylib/sync.js | 12 + .../test/resolver/other_path/lib/other-lib.js | 0 .../resolve/test/resolver/other_path/root.js | 0 .../resolve/test/resolver/quux/foo/index.js | 1 + .../resolve/test/resolver/same_names/foo.js | 1 + .../test/resolver/same_names/foo/index.js | 1 + .../resolver/symlinked/_/node_modules/foo.js | 0 .../symlinked/_/symlink_target/.gitkeep | 0 .../test/resolver/symlinked/package/bar.js | 1 + .../resolver/symlinked/package/package.json | 3 + .../test/resolver/without_basedir/main.js | 5 + node_modules/resolve/test/resolver_sync.js | 730 + node_modules/resolve/test/shadowed_core.js | 54 + .../shadowed_core/node_modules/util/index.js | 0 node_modules/resolve/test/subdirs.js | 13 + node_modules/resolve/test/symlinks.js | 176 + node_modules/safer-buffer/LICENSE | 21 + node_modules/safer-buffer/Porting-Buffer.md | 268 + node_modules/safer-buffer/Readme.md | 156 + node_modules/safer-buffer/dangerous.js | 58 + node_modules/safer-buffer/package.json | 34 + node_modules/safer-buffer/safer.js | 77 + node_modules/safer-buffer/tests.js | 406 + node_modules/sass/LICENSE | 1727 + node_modules/sass/README.md | 173 + node_modules/sass/package.json | 1 + node_modules/sass/sass.dart.js | 118612 +++++++++++++++ node_modules/sass/sass.default.cjs | 8 + node_modules/sass/sass.default.js | 47 + node_modules/sass/sass.js | 17 + node_modules/sass/sass.node.js | 12 + node_modules/sass/sass.node.mjs | 209 + node_modules/sass/types/compile.d.ts | 342 + node_modules/sass/types/deprecations.d.ts | 225 + node_modules/sass/types/exception.d.ts | 41 + node_modules/sass/types/importer.d.ts | 465 + node_modules/sass/types/index.d.ts | 104 + node_modules/sass/types/legacy/exception.d.ts | 55 + node_modules/sass/types/legacy/function.d.ts | 757 + node_modules/sass/types/legacy/importer.d.ts | 169 + node_modules/sass/types/legacy/options.d.ts | 660 + .../sass/types/legacy/plugin_this.d.ts | 74 + node_modules/sass/types/legacy/render.d.ts | 144 + node_modules/sass/types/logger/index.d.ts | 99 + .../sass/types/logger/source_location.d.ts | 21 + .../sass/types/logger/source_span.d.ts | 34 + node_modules/sass/types/options.d.ts | 455 + node_modules/sass/types/util/promise_or.d.ts | 17 + .../sass/types/value/argument_list.d.ts | 47 + node_modules/sass/types/value/boolean.d.ts | 29 + .../sass/types/value/calculation.d.ts | 137 + node_modules/sass/types/value/color.d.ts | 128 + node_modules/sass/types/value/function.d.ts | 22 + node_modules/sass/types/value/index.d.ts | 199 + node_modules/sass/types/value/list.d.ts | 54 + node_modules/sass/types/value/map.d.ts | 41 + node_modules/sass/types/value/mixin.d.ts | 14 + node_modules/sass/types/value/number.d.ts | 305 + node_modules/sass/types/value/string.d.ts | 84 + node_modules/sax/LICENSE | 41 + node_modules/sax/README.md | 228 + node_modules/sax/lib/sax.js | 1597 + node_modules/sax/package.json | 29 + node_modules/scheduler/LICENSE | 21 + node_modules/scheduler/README.md | 9 + .../scheduler-unstable_mock.development.js | 700 + .../scheduler-unstable_mock.production.min.js | 20 + ...cheduler-unstable_post_task.development.js | 207 + ...duler-unstable_post_task.production.min.js | 14 + .../scheduler/cjs/scheduler.development.js | 634 + .../scheduler/cjs/scheduler.production.min.js | 19 + node_modules/scheduler/index.js | 7 + node_modules/scheduler/package.json | 36 + .../scheduler-unstable_mock.development.js | 699 + .../scheduler-unstable_mock.production.min.js | 19 + .../scheduler/umd/scheduler.development.js | 152 + .../scheduler/umd/scheduler.production.min.js | 146 + .../scheduler/umd/scheduler.profiling.min.js | 146 + node_modules/scheduler/unstable_mock.js | 7 + node_modules/scheduler/unstable_post_task.js | 7 + node_modules/semver/LICENSE | 15 + node_modules/semver/README.md | 412 + node_modules/semver/bin/semver | 160 + node_modules/semver/package.json | 38 + node_modules/semver/range.bnf | 16 + node_modules/semver/semver.js | 1525 + node_modules/set-getter/LICENSE | 21 + node_modules/set-getter/README.md | 119 + node_modules/set-getter/index.js | 89 + node_modules/set-getter/package.json | 47 + node_modules/source-map-js/LICENSE | 28 + node_modules/source-map-js/README.md | 765 + 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 | 444 + 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/source-map/CHANGELOG.md | 301 + node_modules/source-map/LICENSE | 28 + node_modules/source-map/README.md | 742 + .../source-map/dist/source-map.debug.js | 3234 + node_modules/source-map/dist/source-map.js | 3233 + .../source-map/dist/source-map.min.js | 2 + .../source-map/dist/source-map.min.js.map | 1 + node_modules/source-map/lib/array-set.js | 121 + node_modules/source-map/lib/base64-vlq.js | 140 + node_modules/source-map/lib/base64.js | 67 + node_modules/source-map/lib/binary-search.js | 111 + node_modules/source-map/lib/mapping-list.js | 79 + node_modules/source-map/lib/quick-sort.js | 114 + .../source-map/lib/source-map-consumer.js | 1145 + .../source-map/lib/source-map-generator.js | 425 + node_modules/source-map/lib/source-node.js | 413 + node_modules/source-map/lib/util.js | 488 + node_modules/source-map/package.json | 73 + node_modules/source-map/source-map.d.ts | 98 + node_modules/source-map/source-map.js | 8 + node_modules/spicetify-creator/LICENSE | 21 + .../spicetify-creator/dist/buildCustomApp.js | 79 + .../spicetify-creator/dist/buildExtension.js | 80 + .../dist/helpers/extractFiles.js | 34 + .../spicetify-creator/dist/helpers/minify.js | 47 + .../spicetify-creator/dist/helpers/models.js | 5 + node_modules/spicetify-creator/dist/index.js | 6 + .../spicetify-creator/dist/scripts.js | 69 + .../spicetify-creator/dist/temp/index.jsx | 6 + node_modules/spicetify-creator/package.json | 34 + node_modules/string-hash/.npmignore | 1 + node_modules/string-hash/README.md | 22 + node_modules/string-hash/component.json | 20 + node_modules/string-hash/index.js | 17 + node_modules/string-hash/package.json | 27 + node_modules/string-hash/test.js | 13 + node_modules/stylus/LICENSE | 22 + node_modules/stylus/Readme.md | 82 + node_modules/stylus/bin/stylus | 846 + node_modules/stylus/index.js | 1 + node_modules/stylus/lib/browserify.js | 2 + node_modules/stylus/lib/cache/fs.js | 84 + node_modules/stylus/lib/cache/index.js | 25 + node_modules/stylus/lib/cache/memory.js | 118 + node_modules/stylus/lib/cache/null.js | 51 + node_modules/stylus/lib/colors.js | 158 + node_modules/stylus/lib/convert/css.js | 331 + node_modules/stylus/lib/errors.js | 49 + node_modules/stylus/lib/functions/acos.js | 19 + .../stylus/lib/functions/add-property.js | 29 + node_modules/stylus/lib/functions/adjust.js | 30 + node_modules/stylus/lib/functions/alpha.js | 38 + node_modules/stylus/lib/functions/asin.js | 20 + node_modules/stylus/lib/functions/atan.js | 20 + .../stylus/lib/functions/base-convert.js | 26 + node_modules/stylus/lib/functions/basename.js | 17 + node_modules/stylus/lib/functions/blend.js | 39 + node_modules/stylus/lib/functions/blue.js | 35 + node_modules/stylus/lib/functions/clone.js | 14 + .../stylus/lib/functions/component.js | 62 + node_modules/stylus/lib/functions/contrast.js | 77 + .../stylus/lib/functions/convert-angle.js | 19 + node_modules/stylus/lib/functions/convert.js | 17 + .../stylus/lib/functions/current-media.js | 22 + node_modules/stylus/lib/functions/define.js | 25 + node_modules/stylus/lib/functions/dirname.js | 17 + node_modules/stylus/lib/functions/error.js | 17 + node_modules/stylus/lib/functions/extname.js | 17 + node_modules/stylus/lib/functions/green.js | 35 + node_modules/stylus/lib/functions/hsl.js | 37 + node_modules/stylus/lib/functions/hsla.js | 55 + node_modules/stylus/lib/functions/hue.js | 36 + .../stylus/lib/functions/image-size.js | 60 + node_modules/stylus/lib/functions/image.js | 165 + node_modules/stylus/lib/functions/index.js | 72 + node_modules/stylus/lib/functions/index.styl | 297 + node_modules/stylus/lib/functions/json.js | 118 + node_modules/stylus/lib/functions/length.js | 27 + .../stylus/lib/functions/lightness.js | 36 + .../stylus/lib/functions/list-separator.js | 25 + node_modules/stylus/lib/functions/lookup.js | 19 + .../stylus/lib/functions/luminosity.js | 40 + node_modules/stylus/lib/functions/match.js | 45 + .../stylus/lib/functions/math-prop.js | 15 + node_modules/stylus/lib/functions/math.js | 19 + node_modules/stylus/lib/functions/merge.js | 24 + node_modules/stylus/lib/functions/operate.js | 20 + .../stylus/lib/functions/opposite-position.js | 32 + node_modules/stylus/lib/functions/p.js | 18 + node_modules/stylus/lib/functions/pathjoin.js | 16 + node_modules/stylus/lib/functions/pop.js | 14 + .../stylus/lib/functions/prefix-classes.js | 24 + node_modules/stylus/lib/functions/push.js | 18 + node_modules/stylus/lib/functions/range.js | 34 + node_modules/stylus/lib/functions/red.js | 35 + node_modules/stylus/lib/functions/remove.js | 19 + node_modules/stylus/lib/functions/replace.js | 25 + node_modules/stylus/lib/functions/resolver.js | 85 + node_modules/stylus/lib/functions/rgb.js | 42 + node_modules/stylus/lib/functions/rgba.js | 61 + node_modules/stylus/lib/functions/s.js | 37 + .../stylus/lib/functions/saturation.js | 36 + .../stylus/lib/functions/selector-exists.js | 25 + node_modules/stylus/lib/functions/selector.js | 71 + .../stylus/lib/functions/selectors.js | 43 + node_modules/stylus/lib/functions/shift.js | 15 + node_modules/stylus/lib/functions/slice.js | 28 + node_modules/stylus/lib/functions/split.js | 27 + node_modules/stylus/lib/functions/substr.js | 24 + node_modules/stylus/lib/functions/tan.js | 30 + node_modules/stylus/lib/functions/trace.js | 12 + .../stylus/lib/functions/transparentify.js | 65 + node_modules/stylus/lib/functions/type.js | 32 + node_modules/stylus/lib/functions/unit.js | 25 + node_modules/stylus/lib/functions/unquote.js | 25 + node_modules/stylus/lib/functions/unshift.js | 18 + node_modules/stylus/lib/functions/url.js | 142 + node_modules/stylus/lib/functions/use.js | 76 + node_modules/stylus/lib/functions/warn.js | 17 + node_modules/stylus/lib/lexer.js | 886 + node_modules/stylus/lib/middleware.js | 256 + node_modules/stylus/lib/nodes/arguments.js | 90 + node_modules/stylus/lib/nodes/atblock.js | 75 + node_modules/stylus/lib/nodes/atrule.js | 132 + node_modules/stylus/lib/nodes/binop.js | 80 + node_modules/stylus/lib/nodes/block.js | 124 + node_modules/stylus/lib/nodes/boolean.js | 113 + node_modules/stylus/lib/nodes/call.js | 81 + node_modules/stylus/lib/nodes/charset.js | 55 + node_modules/stylus/lib/nodes/comment.js | 61 + node_modules/stylus/lib/nodes/each.js | 72 + node_modules/stylus/lib/nodes/expression.js | 216 + node_modules/stylus/lib/nodes/extend.js | 66 + node_modules/stylus/lib/nodes/feature.js | 80 + node_modules/stylus/lib/nodes/function.js | 125 + node_modules/stylus/lib/nodes/group.js | 106 + node_modules/stylus/lib/nodes/hsla.js | 275 + node_modules/stylus/lib/nodes/ident.js | 152 + node_modules/stylus/lib/nodes/if.js | 74 + node_modules/stylus/lib/nodes/import.js | 65 + node_modules/stylus/lib/nodes/index.js | 63 + node_modules/stylus/lib/nodes/keyframes.js | 78 + node_modules/stylus/lib/nodes/literal.js | 109 + node_modules/stylus/lib/nodes/media.js | 72 + node_modules/stylus/lib/nodes/member.js | 78 + node_modules/stylus/lib/nodes/namespace.js | 56 + node_modules/stylus/lib/nodes/node.js | 250 + node_modules/stylus/lib/nodes/null.js | 85 + node_modules/stylus/lib/nodes/object.js | 244 + node_modules/stylus/lib/nodes/params.js | 85 + node_modules/stylus/lib/nodes/property.js | 92 + node_modules/stylus/lib/nodes/query-list.js | 105 + node_modules/stylus/lib/nodes/query.js | 166 + node_modules/stylus/lib/nodes/return.js | 60 + node_modules/stylus/lib/nodes/rgba.js | 364 + node_modules/stylus/lib/nodes/root.js | 94 + node_modules/stylus/lib/nodes/selector.js | 91 + node_modules/stylus/lib/nodes/string.js | 144 + node_modules/stylus/lib/nodes/supports.js | 71 + node_modules/stylus/lib/nodes/ternary.js | 67 + node_modules/stylus/lib/nodes/unaryop.js | 64 + node_modules/stylus/lib/nodes/unit.js | 210 + node_modules/stylus/lib/parser.js | 2287 + node_modules/stylus/lib/renderer.js | 241 + node_modules/stylus/lib/selector-parser.js | 260 + node_modules/stylus/lib/stack/frame.js | 67 + node_modules/stylus/lib/stack/index.js | 132 + node_modules/stylus/lib/stack/scope.js | 55 + node_modules/stylus/lib/stylus.js | 103 + node_modules/stylus/lib/token.js | 55 + node_modules/stylus/lib/units.js | 28 + node_modules/stylus/lib/utils.js | 524 + node_modules/stylus/lib/visitor/compiler.js | 587 + .../stylus/lib/visitor/deps-resolver.js | 167 + node_modules/stylus/lib/visitor/evaluator.js | 1610 + node_modules/stylus/lib/visitor/index.js | 32 + node_modules/stylus/lib/visitor/normalizer.js | 439 + .../stylus/lib/visitor/sourcemapper.js | 198 + node_modules/stylus/node_modules/sax/LICENSE | 41 + .../stylus/node_modules/sax/README.md | 225 + .../stylus/node_modules/sax/lib/sax.js | 1574 + .../stylus/node_modules/sax/package.json | 29 + .../stylus/node_modules/source-map/LICENSE | 28 + .../stylus/node_modules/source-map/README.md | 822 + .../source-map/dist/source-map.js | 1 + .../node_modules/source-map/lib/array-set.js | 100 + .../node_modules/source-map/lib/base64-vlq.js | 111 + .../node_modules/source-map/lib/base64.js | 18 + .../source-map/lib/binary-search.js | 107 + .../source-map/lib/mapping-list.js | 80 + .../node_modules/source-map/lib/mappings.wasm | Bin 0 -> 48693 bytes .../node_modules/source-map/lib/read-wasm.js | 49 + .../source-map/lib/source-map-consumer.js | 1237 + .../source-map/lib/source-map-generator.js | 413 + .../source-map/lib/source-node.js | 404 + .../node_modules/source-map/lib/util.js | 546 + .../node_modules/source-map/lib/wasm.js | 107 + .../node_modules/source-map/package.json | 91 + .../node_modules/source-map/source-map.d.ts | 369 + .../node_modules/source-map/source-map.js | 8 + node_modules/stylus/package.json | 52 + node_modules/supports-color/browser.js | 5 + node_modules/supports-color/index.js | 135 + node_modules/supports-color/license | 9 + node_modules/supports-color/package.json | 53 + node_modules/supports-color/readme.md | 76 + .../supports-preserve-symlinks-flag/.eslintrc | 14 + .../.github/FUNDING.yml | 12 + .../supports-preserve-symlinks-flag/.nycrc | 9 + .../CHANGELOG.md | 22 + .../supports-preserve-symlinks-flag/LICENSE | 21 + .../supports-preserve-symlinks-flag/README.md | 42 + .../browser.js | 3 + .../supports-preserve-symlinks-flag/index.js | 9 + .../package.json | 70 + .../test/index.js | 29 + node_modules/tmp/CHANGELOG.md | 304 + node_modules/tmp/LICENSE | 21 + node_modules/tmp/README.md | 391 + node_modules/tmp/lib/tmp.js | 784 + node_modules/tmp/package.json | 56 + node_modules/to-object-path/LICENSE | 21 + node_modules/to-object-path/README.md | 71 + node_modules/to-object-path/index.js | 33 + node_modules/to-object-path/package.json | 48 + 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/tslib/CopyrightNotice.txt | 15 + node_modules/tslib/LICENSE.txt | 12 + node_modules/tslib/README.md | 164 + node_modules/tslib/SECURITY.md | 41 + node_modules/tslib/modules/index.d.ts | 37 + node_modules/tslib/modules/index.js | 68 + node_modules/tslib/modules/package.json | 3 + node_modules/tslib/package.json | 47 + node_modules/tslib/tslib.d.ts | 453 + node_modules/tslib/tslib.es6.html | 1 + node_modules/tslib/tslib.es6.js | 379 + node_modules/tslib/tslib.es6.mjs | 378 + node_modules/tslib/tslib.html | 1 + node_modules/tslib/tslib.js | 429 + node_modules/uglify-js/LICENSE | 29 + node_modules/uglify-js/README.md | 1479 + node_modules/uglify-js/bin/uglifyjs | 624 + node_modules/uglify-js/lib/ast.js | 2357 + node_modules/uglify-js/lib/compress.js | 14640 ++ node_modules/uglify-js/lib/minify.js | 278 + node_modules/uglify-js/lib/mozilla-ast.js | 1338 + node_modules/uglify-js/lib/output.js | 1983 + node_modules/uglify-js/lib/parse.js | 2589 + node_modules/uglify-js/lib/propmangle.js | 328 + node_modules/uglify-js/lib/scope.js | 883 + node_modules/uglify-js/lib/sourcemap.js | 195 + node_modules/uglify-js/lib/transform.js | 250 + node_modules/uglify-js/lib/utils.js | 300 + node_modules/uglify-js/package.json | 56 + node_modules/uglify-js/tools/domprops.html | 456 + node_modules/uglify-js/tools/domprops.json | 8327 + node_modules/uglify-js/tools/exports.js | 8 + node_modules/uglify-js/tools/node.js | 115 + node_modules/uglify-js/tools/tty.js | 22 + 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 | 17 + node_modules/update-browserslist-db/cli.js | 42 + .../update-browserslist-db/index.d.ts | 6 + node_modules/update-browserslist-db/index.js | 343 + .../update-browserslist-db/package.json | 40 + node_modules/update-browserslist-db/utils.js | 25 + node_modules/util-deprecate/History.md | 16 + node_modules/util-deprecate/LICENSE | 24 + node_modules/util-deprecate/README.md | 53 + node_modules/util-deprecate/browser.js | 67 + node_modules/util-deprecate/node.js | 6 + node_modules/util-deprecate/package.json | 27 + node_modules/warning/CHANGELOG.md | 83 + node_modules/warning/LICENSE.md | 21 + node_modules/warning/README.md | 69 + node_modules/warning/package.json | 55 + node_modules/warning/warning.js | 62 + node_modules/which/CHANGELOG.md | 152 + node_modules/which/LICENSE | 15 + node_modules/which/README.md | 51 + node_modules/which/bin/which | 52 + node_modules/which/package.json | 30 + node_modules/which/which.js | 135 + node_modules/wrappy/LICENSE | 15 + node_modules/wrappy/README.md | 36 + node_modules/wrappy/package.json | 29 + node_modules/wrappy/wrappy.js | 33 + 3403 files changed, 653077 insertions(+), 1 deletion(-) create mode 100644 install.ps1 create mode 100644 node_modules/.bin/autoprefixer create mode 100644 node_modules/.bin/autoprefixer.cmd create mode 100644 node_modules/.bin/autoprefixer.ps1 create mode 100644 node_modules/.bin/browserslist create mode 100644 node_modules/.bin/browserslist.cmd create mode 100644 node_modules/.bin/browserslist.ps1 create mode 100644 node_modules/.bin/cssesc create mode 100644 node_modules/.bin/cssesc.cmd create mode 100644 node_modules/.bin/cssesc.ps1 create mode 100644 node_modules/.bin/errno create mode 100644 node_modules/.bin/errno.cmd create mode 100644 node_modules/.bin/errno.ps1 create mode 100644 node_modules/.bin/esbuild create mode 100644 node_modules/.bin/esbuild.cmd create mode 100644 node_modules/.bin/esbuild.ps1 create mode 100644 node_modules/.bin/image-size create mode 100644 node_modules/.bin/image-size.cmd create mode 100644 node_modules/.bin/image-size.ps1 create mode 100644 node_modules/.bin/lessc create mode 100644 node_modules/.bin/lessc.cmd create mode 100644 node_modules/.bin/lessc.ps1 create mode 100644 node_modules/.bin/loose-envify create mode 100644 node_modules/.bin/loose-envify.cmd create mode 100644 node_modules/.bin/loose-envify.ps1 create mode 100644 node_modules/.bin/mime create mode 100644 node_modules/.bin/mime.cmd create mode 100644 node_modules/.bin/mime.ps1 create mode 100644 node_modules/.bin/nanoid create mode 100644 node_modules/.bin/nanoid.cmd create mode 100644 node_modules/.bin/nanoid.ps1 create mode 100644 node_modules/.bin/needle create mode 100644 node_modules/.bin/needle.cmd create mode 100644 node_modules/.bin/needle.ps1 create mode 100644 node_modules/.bin/resolve create mode 100644 node_modules/.bin/resolve.cmd create mode 100644 node_modules/.bin/resolve.ps1 create mode 100644 node_modules/.bin/sass create mode 100644 node_modules/.bin/sass.cmd create mode 100644 node_modules/.bin/sass.ps1 create mode 100644 node_modules/.bin/semver create mode 100644 node_modules/.bin/semver.cmd create mode 100644 node_modules/.bin/semver.ps1 create mode 100644 node_modules/.bin/spicetify-creator create mode 100644 node_modules/.bin/spicetify-creator.cmd create mode 100644 node_modules/.bin/spicetify-creator.ps1 create mode 100644 node_modules/.bin/stylus create mode 100644 node_modules/.bin/stylus.cmd create mode 100644 node_modules/.bin/stylus.ps1 create mode 100644 node_modules/.bin/uglifyjs create mode 100644 node_modules/.bin/uglifyjs.cmd create mode 100644 node_modules/.bin/uglifyjs.ps1 create mode 100644 node_modules/.bin/update-browserslist-db create mode 100644 node_modules/.bin/update-browserslist-db.cmd create mode 100644 node_modules/.bin/update-browserslist-db.ps1 create mode 100644 node_modules/.bin/which create mode 100644 node_modules/.bin/which.cmd create mode 100644 node_modules/.bin/which.ps1 create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/@adobe/css-tools/LICENSE create mode 100644 node_modules/@adobe/css-tools/Readme.md create mode 100644 node_modules/@adobe/css-tools/dist/index.cjs create mode 100644 node_modules/@adobe/css-tools/dist/index.cjs.map create mode 100644 node_modules/@adobe/css-tools/dist/index.mjs create mode 100644 node_modules/@adobe/css-tools/dist/index.mjs.map create mode 100644 node_modules/@adobe/css-tools/dist/types.d.ts create mode 100644 node_modules/@adobe/css-tools/dist/types.d.ts.map create mode 100644 node_modules/@adobe/css-tools/package.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/.env.template create mode 100644 node_modules/@spotify/web-api-ts-sdk/.github/workflows/release.yml create mode 100644 node_modules/@spotify/web-api-ts-sdk/.nvmrc create mode 100644 node_modules/@spotify/web-api-ts-sdk/.releaserc create mode 100644 node_modules/@spotify/web-api-ts-sdk/CHANGELOG.md create mode 100644 node_modules/@spotify/web-api-ts-sdk/CODE_OF_CONDUCT.md create mode 100644 node_modules/@spotify/web-api-ts-sdk/CONTRIBUTING.md create mode 100644 node_modules/@spotify/web-api-ts-sdk/LICENSE create mode 100644 node_modules/@spotify/web-api-ts-sdk/README.md create mode 100644 node_modules/@spotify/web-api-ts-sdk/SECURITY.md create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/Scopes.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/Scopes.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/Scopes.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/SpotifyApi.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/SpotifyApi.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/SpotifyApi.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AccessTokenHelpers.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AccessTokenHelpers.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AccessTokenHelpers.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AuthorizationCodeWithPKCEStrategy.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AuthorizationCodeWithPKCEStrategy.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AuthorizationCodeWithPKCEStrategy.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ClientCredentialsStrategy.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ClientCredentialsStrategy.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ClientCredentialsStrategy.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/Crypto.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/Crypto.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/Crypto.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/IAuthStrategy.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/IAuthStrategy.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/IAuthStrategy.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ImplicitGrantStrategy.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ImplicitGrantStrategy.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ImplicitGrantStrategy.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ProvidedAccessTokenStrategy.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ProvidedAccessTokenStrategy.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ProvidedAccessTokenStrategy.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/GenericCache.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/GenericCache.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/GenericCache.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/ICacheStore.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/ICacheStore.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/ICacheStore.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/InMemoryCachingStrategy.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/InMemoryCachingStrategy.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/InMemoryCachingStrategy.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/LocalStorageCachingStrategy.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/LocalStorageCachingStrategy.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/LocalStorageCachingStrategy.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AlbumsEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AlbumsEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AlbumsEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ArtistsEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ArtistsEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ArtistsEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AudiobooksEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AudiobooksEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AudiobooksEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/BrowseEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/BrowseEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/BrowseEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ChaptersEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ChaptersEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ChaptersEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/CurrentUserEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/CurrentUserEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/CurrentUserEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EndpointsBase.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EndpointsBase.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EndpointsBase.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EpisodesEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EpisodesEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EpisodesEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/MarketsEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/MarketsEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/MarketsEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlayerEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlayerEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlayerEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlaylistsEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlaylistsEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlaylistsEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/RecommendationsEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/RecommendationsEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/RecommendationsEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/SearchEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/SearchEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/SearchEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ShowsEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ShowsEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ShowsEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/TracksEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/TracksEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/TracksEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/UsersEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/UsersEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/UsersEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/ConsoleLoggingErrorHandler.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/ConsoleLoggingErrorHandler.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/ConsoleLoggingErrorHandler.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/NoOpErrorHandler.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/NoOpErrorHandler.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/NoOpErrorHandler.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/index.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/index.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/index.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/package.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/redirection/DocumentLocationRedirectionStrategy.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/redirection/DocumentLocationRedirectionStrategy.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/redirection/DocumentLocationRedirectionStrategy.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/responsevalidation/DefaultResponseValidator.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/responsevalidation/DefaultResponseValidator.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/responsevalidation/DefaultResponseValidator.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/serialization/DefaultResponseDeserializer.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/serialization/DefaultResponseDeserializer.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/serialization/DefaultResponseDeserializer.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/types.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/types.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/cjs/types.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/Scopes.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/Scopes.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/Scopes.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/SpotifyApi.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/SpotifyApi.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/SpotifyApi.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AccessTokenHelpers.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AccessTokenHelpers.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AccessTokenHelpers.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AuthorizationCodeWithPKCEStrategy.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AuthorizationCodeWithPKCEStrategy.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AuthorizationCodeWithPKCEStrategy.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ClientCredentialsStrategy.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ClientCredentialsStrategy.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ClientCredentialsStrategy.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/Crypto.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/Crypto.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/Crypto.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/IAuthStrategy.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/IAuthStrategy.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/IAuthStrategy.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ImplicitGrantStrategy.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ImplicitGrantStrategy.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ImplicitGrantStrategy.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ProvidedAccessTokenStrategy.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ProvidedAccessTokenStrategy.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ProvidedAccessTokenStrategy.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/GenericCache.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/GenericCache.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/GenericCache.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/ICacheStore.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/ICacheStore.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/ICacheStore.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/InMemoryCachingStrategy.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/InMemoryCachingStrategy.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/InMemoryCachingStrategy.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/LocalStorageCachingStrategy.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/LocalStorageCachingStrategy.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/LocalStorageCachingStrategy.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AlbumsEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AlbumsEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AlbumsEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ArtistsEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ArtistsEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ArtistsEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AudiobooksEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AudiobooksEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AudiobooksEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/BrowseEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/BrowseEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/BrowseEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ChaptersEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ChaptersEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ChaptersEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/CurrentUserEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/CurrentUserEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/CurrentUserEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EndpointsBase.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EndpointsBase.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EndpointsBase.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EpisodesEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EpisodesEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EpisodesEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/MarketsEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/MarketsEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/MarketsEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlayerEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlayerEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlayerEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlaylistsEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlaylistsEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlaylistsEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/RecommendationsEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/RecommendationsEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/RecommendationsEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/SearchEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/SearchEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/SearchEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ShowsEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ShowsEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ShowsEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/TracksEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/TracksEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/TracksEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/UsersEndpoints.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/UsersEndpoints.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/UsersEndpoints.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/ConsoleLoggingErrorHandler.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/ConsoleLoggingErrorHandler.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/ConsoleLoggingErrorHandler.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/NoOpErrorHandler.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/NoOpErrorHandler.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/NoOpErrorHandler.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/index.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/index.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/index.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/package.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/redirection/DocumentLocationRedirectionStrategy.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/redirection/DocumentLocationRedirectionStrategy.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/redirection/DocumentLocationRedirectionStrategy.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/responsevalidation/DefaultResponseValidator.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/responsevalidation/DefaultResponseValidator.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/responsevalidation/DefaultResponseValidator.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/serialization/DefaultResponseDeserializer.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/serialization/DefaultResponseDeserializer.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/serialization/DefaultResponseDeserializer.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/types.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/types.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/dist/mjs/types.js.map create mode 100644 node_modules/@spotify/web-api-ts-sdk/example/.env.template create mode 100644 node_modules/@spotify/web-api-ts-sdk/example/env.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/example/index.html create mode 100644 node_modules/@spotify/web-api-ts-sdk/example/script.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/example/style.css create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_next/.env.template create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_next/.eslintrc.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_next/next.config.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_next/package-lock.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_next/package.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_next/src/app/api/auth/[...nextauth]/SpotifyProfile.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_next/src/app/api/auth/[...nextauth]/authOptions.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_next/src/app/api/auth/[...nextauth]/route.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_next/src/app/globals.css create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_next/src/app/layout.tsx create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_next/src/app/page.tsx create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_next/src/components/AuthSessionProvider.tsx create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_next/src/lib/spotify-sdk/ClientInstance.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_next/tsconfig.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_node/.env.template create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_node/index.js create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_node/package-lock.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_node/package.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_react/.env.template create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_react/.eslintrc.cjs create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_react/index.html create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_react/package-lock.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_react/package.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_react/src/App.css create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_react/src/App.tsx create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_react/src/hooks/useSpotify.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_react/src/index.css create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_react/src/main.tsx create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_react/src/vite-env.d.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_react/tsconfig.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_react/tsconfig.node.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/example_react/vite.config.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/package.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/res/package.cjs.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/res/package.mjs.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/Scopes.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/SpotifyApi.test.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/SpotifyApi.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/auth/AccessTokenHelpers.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/auth/AuthorizationCodeWithPKCEStrategy.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/auth/ClientCredentialsStrategy.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/auth/Crypto.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/auth/IAuthStrategy.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/auth/ImplicitGrantStrategy.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/auth/ProvidedAccessTokenStrategy.test.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/auth/ProvidedAccessTokenStrategy.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/caching/GenericCache.test.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/caching/GenericCache.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/caching/ICacheStore.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/caching/InMemoryCachingStrategy.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/caching/LocalStorageCachingStrategy.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/AlbumsEndpoints.test.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/AlbumsEndpoints.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/ArtistsEndpoint.test.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/ArtistsEndpoints.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/AudiobooksEndpoints.test.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/AudiobooksEndpoints.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/BrowseEndpoints.test.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/BrowseEndpoints.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/ChaptersEndpoints.test.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/ChaptersEndpoints.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/CurrentUserEndpoints.test.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/CurrentUserEndpoints.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/EndpointsBase.test.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/EndpointsBase.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/EpisodesEndpoints.test.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/EpisodesEndpoints.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/MarketsEndpoints.test.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/MarketsEndpoints.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/PlayerEndpoints.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/PlaylistsEndpoints.test.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/PlaylistsEndpoints.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/RecommendationsEndpoints.test.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/RecommendationsEndpoints.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/SearchEndpoints.test.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/SearchEndpoints.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/ShowsEndpoints.test.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/ShowsEndpoints.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/TracksEndpoints.test.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/TracksEndpoints.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/UsersEndpoints.test.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/endpoints/UsersEndpoints.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/errorhandling/ConsoleLoggingErrorHandler.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/errorhandling/NoOpErrorHandler.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/index.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/redirection/DocumentLocationRedirectionStrategy.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/responsevalidation/DefaultResponseValidator.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/serialization/DefaultResponseDeserializer.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/AuthAsRealUserForTests.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/FakeAuthStrategy.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/FetchApiMock.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/FetchApiSpy.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/SpotifyApiBuilder.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/data/validAlbumResult.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/data/validAlbumTracksResult.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/data/validArtist.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/data/validAudioBook.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/data/validAudiobookChapters.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/data/validCategories.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/data/validCategory.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/data/validChapterApiResponse.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/data/validEpisode.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/data/validGenres.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/data/validMarkets.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/data/validPlaylist.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/data/validShow.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/data/validTrack.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/data/validUser.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/test/valid-image.jpg create mode 100644 node_modules/@spotify/web-api-ts-sdk/src/types.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/tsconfig.cjs.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/tsconfig.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/tsconfig.mjs.json create mode 100644 node_modules/@spotify/web-api-ts-sdk/vite.config.ts create mode 100644 node_modules/@spotify/web-api-ts-sdk/vitest.config.ts create mode 100644 node_modules/@types/jquery/JQuery.d.ts create mode 100644 node_modules/@types/jquery/JQueryStatic.d.ts create mode 100644 node_modules/@types/jquery/LICENSE create mode 100644 node_modules/@types/jquery/README.md create mode 100644 node_modules/@types/jquery/dist/jquery.slim.d.ts create mode 100644 node_modules/@types/jquery/index.d.ts create mode 100644 node_modules/@types/jquery/legacy.d.ts create mode 100644 node_modules/@types/jquery/misc.d.ts create mode 100644 node_modules/@types/jquery/package.json create mode 100644 node_modules/@types/prop-types/LICENSE create mode 100644 node_modules/@types/prop-types/README.md create mode 100644 node_modules/@types/prop-types/index.d.ts create mode 100644 node_modules/@types/prop-types/package.json create mode 100644 node_modules/@types/react-dom/LICENSE create mode 100644 node_modules/@types/react-dom/README.md create mode 100644 node_modules/@types/react-dom/canary.d.ts create mode 100644 node_modules/@types/react-dom/client.d.ts create mode 100644 node_modules/@types/react-dom/experimental.d.ts create mode 100644 node_modules/@types/react-dom/index.d.ts create mode 100644 node_modules/@types/react-dom/package.json create mode 100644 node_modules/@types/react-dom/server.d.ts create mode 100644 node_modules/@types/react-dom/test-utils/index.d.ts create mode 100644 node_modules/@types/react-modal/LICENSE create mode 100644 node_modules/@types/react-modal/README.md create mode 100644 node_modules/@types/react-modal/index.d.ts create mode 100644 node_modules/@types/react-modal/package.json create mode 100644 node_modules/@types/react/LICENSE create mode 100644 node_modules/@types/react/README.md create mode 100644 node_modules/@types/react/canary.d.ts create mode 100644 node_modules/@types/react/experimental.d.ts create mode 100644 node_modules/@types/react/global.d.ts create mode 100644 node_modules/@types/react/index.d.ts create mode 100644 node_modules/@types/react/jsx-dev-runtime.d.ts create mode 100644 node_modules/@types/react/jsx-runtime.d.ts create mode 100644 node_modules/@types/react/package.json create mode 100644 node_modules/@types/react/ts5.0/canary.d.ts create mode 100644 node_modules/@types/react/ts5.0/experimental.d.ts create mode 100644 node_modules/@types/react/ts5.0/global.d.ts create mode 100644 node_modules/@types/react/ts5.0/index.d.ts create mode 100644 node_modules/@types/react/ts5.0/jsx-dev-runtime.d.ts create mode 100644 node_modules/@types/react/ts5.0/jsx-runtime.d.ts create mode 100644 node_modules/@types/sizzle/LICENSE create mode 100644 node_modules/@types/sizzle/README.md create mode 100644 node_modules/@types/sizzle/index.d.ts create mode 100644 node_modules/@types/sizzle/package.json 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/at-least-node/LICENSE create mode 100644 node_modules/at-least-node/README.md create mode 100644 node_modules/at-least-node/index.js create mode 100644 node_modules/at-least-node/package.json create mode 100644 node_modules/autoprefixer/LICENSE create mode 100644 node_modules/autoprefixer/README.md create mode 100644 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/balanced-match/.github/FUNDING.yml create mode 100644 node_modules/balanced-match/LICENSE.md create mode 100644 node_modules/balanced-match/README.md create mode 100644 node_modules/balanced-match/index.js create mode 100644 node_modules/balanced-match/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/brace-expansion/LICENSE create mode 100644 node_modules/brace-expansion/README.md create mode 100644 node_modules/brace-expansion/index.js create mode 100644 node_modules/brace-expansion/package.json 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 100644 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-anchor-positioning.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-cascade-scope.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-module-scripts.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-text-wrap-balance.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-backdrop-pseudo-element.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/passkeys.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/selectlist.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/view-transitions.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-bigint.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-bulk-memory.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-extended-const.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-gc.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-multi-memory.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-multi-value.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-mutable-globals.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-reference-types.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-signext.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-simd.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-tail-calls.js create mode 100644 node_modules/caniuse-lite/data/features/wasm-threads.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/features/zstd.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/chalk/index.d.ts create mode 100644 node_modules/chalk/license create mode 100644 node_modules/chalk/package.json create mode 100644 node_modules/chalk/readme.md create mode 100644 node_modules/chalk/source/index.js create mode 100644 node_modules/chalk/source/templates.js create mode 100644 node_modules/chalk/source/util.js 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/clean-css/History.md create mode 100644 node_modules/clean-css/LICENSE create mode 100644 node_modules/clean-css/README.md create mode 100644 node_modules/clean-css/index.js create mode 100644 node_modules/clean-css/lib/clean.js create mode 100644 node_modules/clean-css/lib/optimizer/clone.js create mode 100644 node_modules/clean-css/lib/optimizer/configuration.js create mode 100644 node_modules/clean-css/lib/optimizer/configuration/break-up.js create mode 100644 node_modules/clean-css/lib/optimizer/configuration/can-override.js create mode 100644 node_modules/clean-css/lib/optimizer/configuration/properties/understandable.js create mode 100644 node_modules/clean-css/lib/optimizer/configuration/restore.js create mode 100644 node_modules/clean-css/lib/optimizer/hack.js create mode 100644 node_modules/clean-css/lib/optimizer/invalid-property-error.js create mode 100644 node_modules/clean-css/lib/optimizer/level-0/optimize.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/optimize.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/property-optimizers.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/property-optimizers/background.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/property-optimizers/border-radius.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/property-optimizers/box-shadow.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/property-optimizers/filter.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/property-optimizers/font-weight.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/property-optimizers/margin.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/property-optimizers/outline.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/property-optimizers/padding.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/sort-selectors.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/tidy-at-rule.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/tidy-block.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/tidy-rules.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/color.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/color/shorten-hex.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/color/shorten-hsl.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/color/shorten-rgb.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/degrees.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/fraction.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/precision.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/starts-as-url.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/text-quotes.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/time.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/unit.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/url-prefix.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/url-quotes.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/url-whitespace.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/whitespace.js create mode 100644 node_modules/clean-css/lib/optimizer/level-1/value-optimizers/zero.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/extract-properties.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/is-mergeable.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/merge-adjacent.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/merge-media-queries.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/merge-non-adjacent-by-body.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/merge-non-adjacent-by-selector.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/optimize.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/every-values-pair.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/find-component-in.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/has-inherit.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/has-same-values.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/has-unset.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/is-component-of.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/is-mergeable-shorthand.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/merge-into-shorthands.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/optimize.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/override-properties.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/overrides-non-component-shorthand.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/properties/populate-components.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/reduce-non-adjacent.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/remove-duplicate-font-at-rules.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/remove-duplicate-media-queries.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/remove-duplicates.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/remove-unused-at-rules.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/reorderable.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/restore-with-components.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/restructure.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/rules-overlap.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/specificities-overlap.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/specificity.js create mode 100644 node_modules/clean-css/lib/optimizer/level-2/tidy-rule-duplicates.js create mode 100644 node_modules/clean-css/lib/optimizer/remove-unused.js create mode 100644 node_modules/clean-css/lib/optimizer/restore-from-optimizing.js create mode 100644 node_modules/clean-css/lib/optimizer/validator.js create mode 100644 node_modules/clean-css/lib/optimizer/vendor-prefixes.js create mode 100644 node_modules/clean-css/lib/optimizer/wrap-for-optimizing.js create mode 100644 node_modules/clean-css/lib/options/compatibility.js create mode 100644 node_modules/clean-css/lib/options/fetch.js create mode 100644 node_modules/clean-css/lib/options/format.js create mode 100644 node_modules/clean-css/lib/options/inline-request.js create mode 100644 node_modules/clean-css/lib/options/inline-timeout.js create mode 100644 node_modules/clean-css/lib/options/inline.js create mode 100644 node_modules/clean-css/lib/options/optimization-level.js create mode 100644 node_modules/clean-css/lib/options/plugins.js create mode 100644 node_modules/clean-css/lib/options/rebase-to.js create mode 100644 node_modules/clean-css/lib/options/rebase.js create mode 100644 node_modules/clean-css/lib/options/rounding-precision.js create mode 100644 node_modules/clean-css/lib/reader/apply-source-maps.js create mode 100644 node_modules/clean-css/lib/reader/extract-import-url-and-media.js create mode 100644 node_modules/clean-css/lib/reader/input-source-map-tracker.js create mode 100644 node_modules/clean-css/lib/reader/is-allowed-resource.js create mode 100644 node_modules/clean-css/lib/reader/load-original-sources.js create mode 100644 node_modules/clean-css/lib/reader/load-remote-resource.js create mode 100644 node_modules/clean-css/lib/reader/match-data-uri.js create mode 100644 node_modules/clean-css/lib/reader/normalize-path.js create mode 100644 node_modules/clean-css/lib/reader/read-sources.js create mode 100644 node_modules/clean-css/lib/reader/rebase-local-map.js create mode 100644 node_modules/clean-css/lib/reader/rebase-remote-map.js create mode 100644 node_modules/clean-css/lib/reader/rebase.js create mode 100644 node_modules/clean-css/lib/reader/restore-import.js create mode 100644 node_modules/clean-css/lib/reader/rewrite-url.js create mode 100644 node_modules/clean-css/lib/tokenizer/marker.js create mode 100644 node_modules/clean-css/lib/tokenizer/token.js create mode 100644 node_modules/clean-css/lib/tokenizer/tokenize.js create mode 100644 node_modules/clean-css/lib/utils/clone-array.js create mode 100644 node_modules/clean-css/lib/utils/format-position.js create mode 100644 node_modules/clean-css/lib/utils/has-protocol.js create mode 100644 node_modules/clean-css/lib/utils/is-data-uri-resource.js create mode 100644 node_modules/clean-css/lib/utils/is-http-resource.js create mode 100644 node_modules/clean-css/lib/utils/is-https-resource.js create mode 100644 node_modules/clean-css/lib/utils/is-import.js create mode 100644 node_modules/clean-css/lib/utils/is-remote-resource.js create mode 100644 node_modules/clean-css/lib/utils/natural-compare.js create mode 100644 node_modules/clean-css/lib/utils/override.js create mode 100644 node_modules/clean-css/lib/utils/split.js create mode 100644 node_modules/clean-css/lib/writer/helpers.js create mode 100644 node_modules/clean-css/lib/writer/one-time.js create mode 100644 node_modules/clean-css/lib/writer/simple.js create mode 100644 node_modules/clean-css/lib/writer/source-maps.js create mode 100644 node_modules/clean-css/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 100644 node_modules/concat-map/.travis.yml create mode 100644 node_modules/concat-map/LICENSE create mode 100644 node_modules/concat-map/README.markdown create mode 100644 node_modules/concat-map/example/map.js create mode 100644 node_modules/concat-map/index.js create mode 100644 node_modules/concat-map/package.json create mode 100644 node_modules/concat-map/test/map.js create mode 100644 node_modules/copy-anything/LICENSE create mode 100644 node_modules/copy-anything/README.md create mode 100644 node_modules/copy-anything/dist/index.cjs create mode 100644 node_modules/copy-anything/dist/index.es.js create mode 100644 node_modules/copy-anything/dist/types/index.d.ts create mode 100644 node_modules/copy-anything/package.json create mode 100644 node_modules/cssesc/LICENSE-MIT.txt create mode 100644 node_modules/cssesc/README.md create mode 100644 node_modules/cssesc/bin/cssesc create mode 100644 node_modules/cssesc/cssesc.js create mode 100644 node_modules/cssesc/man/cssesc.1 create mode 100644 node_modules/cssesc/package.json create mode 100644 node_modules/csstype/LICENSE create mode 100644 node_modules/csstype/README.md create mode 100644 node_modules/csstype/index.d.ts create mode 100644 node_modules/csstype/index.js.flow create mode 100644 node_modules/csstype/package.json create mode 100644 node_modules/cwd/LICENSE create mode 100644 node_modules/cwd/index.js create mode 100644 node_modules/cwd/package.json create mode 100644 node_modules/debug/LICENSE create mode 100644 node_modules/debug/README.md create mode 100644 node_modules/debug/package.json create mode 100644 node_modules/debug/src/browser.js create mode 100644 node_modules/debug/src/common.js create mode 100644 node_modules/debug/src/index.js create mode 100644 node_modules/debug/src/node.js 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/errno/.jshintrc create mode 100644 node_modules/errno/.travis.yml create mode 100644 node_modules/errno/README.md create mode 100644 node_modules/errno/build.js create mode 100644 node_modules/errno/cli.js create mode 100644 node_modules/errno/custom.js create mode 100644 node_modules/errno/errno.js create mode 100644 node_modules/errno/package.json create mode 100644 node_modules/errno/test.js create mode 100644 node_modules/esbuild-plugin-external-global/LICENSE create mode 100644 node_modules/esbuild-plugin-external-global/README.md create mode 100644 node_modules/esbuild-plugin-external-global/dist/index.d.ts create mode 100644 node_modules/esbuild-plugin-external-global/dist/index.esm.js create mode 100644 node_modules/esbuild-plugin-external-global/dist/index.js create mode 100644 node_modules/esbuild-plugin-external-global/package.json create mode 100644 node_modules/esbuild-plugin-postcss2/LICENSE create mode 100644 node_modules/esbuild-plugin-postcss2/README.md create mode 100644 node_modules/esbuild-plugin-postcss2/dist/index.esm.js create mode 100644 node_modules/esbuild-plugin-postcss2/dist/index.js create mode 100644 node_modules/esbuild-plugin-postcss2/package.json create mode 100644 node_modules/esbuild-plugin-postcss2/src/modules.d.ts create mode 100644 node_modules/esbuild-windows-64/README.md create mode 100644 node_modules/esbuild-windows-64/bin/esbuild create mode 100644 node_modules/esbuild-windows-64/esbuild.exe create mode 100644 node_modules/esbuild-windows-64/package.json create mode 100644 node_modules/esbuild/LICENSE.md create mode 100644 node_modules/esbuild/README.md create mode 100644 node_modules/esbuild/bin/esbuild create mode 100644 node_modules/esbuild/install.js create mode 100644 node_modules/esbuild/lib/main.d.ts create mode 100644 node_modules/esbuild/lib/main.js create mode 100644 node_modules/esbuild/package.json 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/exenv/LICENSE create mode 100644 node_modules/exenv/README.md create mode 100644 node_modules/exenv/index.js create mode 100644 node_modules/exenv/package.json create mode 100644 node_modules/expand-tilde/LICENSE create mode 100644 node_modules/expand-tilde/README.md create mode 100644 node_modules/expand-tilde/index.js create mode 100644 node_modules/expand-tilde/package.json create mode 100644 node_modules/extend-shallow/LICENSE create mode 100644 node_modules/extend-shallow/README.md create mode 100644 node_modules/extend-shallow/index.js create mode 100644 node_modules/extend-shallow/package.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/find-file-up/LICENSE create mode 100644 node_modules/find-file-up/README.md create mode 100644 node_modules/find-file-up/index.js create mode 100644 node_modules/find-file-up/package.json create mode 100644 node_modules/find-pkg/LICENSE create mode 100644 node_modules/find-pkg/index.js create mode 100644 node_modules/find-pkg/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.cjs 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-exists-sync/LICENSE create mode 100644 node_modules/fs-exists-sync/README.md create mode 100644 node_modules/fs-exists-sync/index.js create mode 100644 node_modules/fs-exists-sync/package.json create mode 100644 node_modules/fs-extra/CHANGELOG.md create mode 100644 node_modules/fs-extra/LICENSE create mode 100644 node_modules/fs-extra/README.md create mode 100644 node_modules/fs-extra/lib/copy-sync/copy-sync.js create mode 100644 node_modules/fs-extra/lib/copy-sync/index.js create mode 100644 node_modules/fs-extra/lib/copy/copy.js create mode 100644 node_modules/fs-extra/lib/copy/index.js create mode 100644 node_modules/fs-extra/lib/empty/index.js create mode 100644 node_modules/fs-extra/lib/ensure/file.js create mode 100644 node_modules/fs-extra/lib/ensure/index.js create mode 100644 node_modules/fs-extra/lib/ensure/link.js create mode 100644 node_modules/fs-extra/lib/ensure/symlink-paths.js create mode 100644 node_modules/fs-extra/lib/ensure/symlink-type.js create mode 100644 node_modules/fs-extra/lib/ensure/symlink.js create mode 100644 node_modules/fs-extra/lib/fs/index.js create mode 100644 node_modules/fs-extra/lib/index.js create mode 100644 node_modules/fs-extra/lib/json/index.js create mode 100644 node_modules/fs-extra/lib/json/jsonfile.js create mode 100644 node_modules/fs-extra/lib/json/output-json-sync.js create mode 100644 node_modules/fs-extra/lib/json/output-json.js create mode 100644 node_modules/fs-extra/lib/mkdirs/index.js create mode 100644 node_modules/fs-extra/lib/mkdirs/make-dir.js create mode 100644 node_modules/fs-extra/lib/move-sync/index.js create mode 100644 node_modules/fs-extra/lib/move-sync/move-sync.js create mode 100644 node_modules/fs-extra/lib/move/index.js create mode 100644 node_modules/fs-extra/lib/move/move.js create mode 100644 node_modules/fs-extra/lib/output/index.js create mode 100644 node_modules/fs-extra/lib/path-exists/index.js create mode 100644 node_modules/fs-extra/lib/remove/index.js create mode 100644 node_modules/fs-extra/lib/remove/rimraf.js create mode 100644 node_modules/fs-extra/lib/util/stat.js create mode 100644 node_modules/fs-extra/lib/util/utimes.js create mode 100644 node_modules/fs-extra/package.json create mode 100644 node_modules/fs.realpath/LICENSE create mode 100644 node_modules/fs.realpath/README.md create mode 100644 node_modules/fs.realpath/index.js create mode 100644 node_modules/fs.realpath/old.js create mode 100644 node_modules/fs.realpath/package.json create mode 100644 node_modules/function-bind/.eslintrc create mode 100644 node_modules/function-bind/.github/FUNDING.yml create mode 100644 node_modules/function-bind/.github/SECURITY.md create mode 100644 node_modules/function-bind/.nycrc create mode 100644 node_modules/function-bind/CHANGELOG.md create mode 100644 node_modules/function-bind/LICENSE create mode 100644 node_modules/function-bind/README.md create mode 100644 node_modules/function-bind/implementation.js create mode 100644 node_modules/function-bind/index.js create mode 100644 node_modules/function-bind/package.json create mode 100644 node_modules/function-bind/test/.eslintrc create mode 100644 node_modules/function-bind/test/index.js create mode 100644 node_modules/generic-names/.idea/codeStyles/codeStyleConfig.xml create mode 100644 node_modules/generic-names/.idea/dictionaries/sheo13666q.xml create mode 100644 node_modules/generic-names/.idea/encodings.xml create mode 100644 node_modules/generic-names/.idea/inspectionProfiles/Project_Default.xml create mode 100644 node_modules/generic-names/.idea/misc.xml create mode 100644 node_modules/generic-names/.idea/modules.xml create mode 100644 node_modules/generic-names/.idea/php.xml create mode 100644 node_modules/generic-names/.idea/runConfigurations.xml create mode 100644 node_modules/generic-names/.idea/vcs.xml create mode 100644 node_modules/generic-names/LICENSE create mode 100644 node_modules/generic-names/generic-names.iml create mode 100644 node_modules/generic-names/index.d.ts create mode 100644 node_modules/generic-names/index.js create mode 100644 node_modules/generic-names/package.json create mode 100644 node_modules/generic-names/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/glob/LICENSE create mode 100644 node_modules/glob/README.md create mode 100644 node_modules/glob/common.js create mode 100644 node_modules/glob/glob.js create mode 100644 node_modules/glob/package.json create mode 100644 node_modules/glob/sync.js create mode 100644 node_modules/global-modules/LICENSE create mode 100644 node_modules/global-modules/README.md create mode 100644 node_modules/global-modules/index.js create mode 100644 node_modules/global-modules/package.json create mode 100644 node_modules/global-prefix/LICENSE create mode 100644 node_modules/global-prefix/README.md create mode 100644 node_modules/global-prefix/index.js create mode 100644 node_modules/global-prefix/package.json 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/has-flag/index.d.ts create mode 100644 node_modules/has-flag/index.js create mode 100644 node_modules/has-flag/license create mode 100644 node_modules/has-flag/package.json create mode 100644 node_modules/has-flag/readme.md create mode 100644 node_modules/hasown/.eslintrc create mode 100644 node_modules/hasown/.github/FUNDING.yml create mode 100644 node_modules/hasown/.nycrc create mode 100644 node_modules/hasown/CHANGELOG.md create mode 100644 node_modules/hasown/LICENSE create mode 100644 node_modules/hasown/README.md create mode 100644 node_modules/hasown/index.d.ts create mode 100644 node_modules/hasown/index.js create mode 100644 node_modules/hasown/package.json create mode 100644 node_modules/hasown/tsconfig.json create mode 100644 node_modules/homedir-polyfill/LICENSE create mode 100644 node_modules/homedir-polyfill/README.md create mode 100644 node_modules/homedir-polyfill/index.js create mode 100644 node_modules/homedir-polyfill/package.json create mode 100644 node_modules/homedir-polyfill/polyfill.js create mode 100644 node_modules/iconv-lite/.github/dependabot.yml create mode 100644 node_modules/iconv-lite/.idea/codeStyles/Project.xml create mode 100644 node_modules/iconv-lite/.idea/codeStyles/codeStyleConfig.xml create mode 100644 node_modules/iconv-lite/.idea/iconv-lite.iml create mode 100644 node_modules/iconv-lite/.idea/inspectionProfiles/Project_Default.xml create mode 100644 node_modules/iconv-lite/.idea/modules.xml create mode 100644 node_modules/iconv-lite/.idea/vcs.xml create mode 100644 node_modules/iconv-lite/Changelog.md create mode 100644 node_modules/iconv-lite/LICENSE create mode 100644 node_modules/iconv-lite/README.md create mode 100644 node_modules/iconv-lite/encodings/dbcs-codec.js create mode 100644 node_modules/iconv-lite/encodings/dbcs-data.js create mode 100644 node_modules/iconv-lite/encodings/index.js create mode 100644 node_modules/iconv-lite/encodings/internal.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-codec.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-data-generated.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-data.js create mode 100644 node_modules/iconv-lite/encodings/tables/big5-added.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp936.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp949.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp950.json create mode 100644 node_modules/iconv-lite/encodings/tables/eucjp.json create mode 100644 node_modules/iconv-lite/encodings/tables/gb18030-ranges.json create mode 100644 node_modules/iconv-lite/encodings/tables/gbk-added.json create mode 100644 node_modules/iconv-lite/encodings/tables/shiftjis.json create mode 100644 node_modules/iconv-lite/encodings/utf16.js create mode 100644 node_modules/iconv-lite/encodings/utf32.js create mode 100644 node_modules/iconv-lite/encodings/utf7.js create mode 100644 node_modules/iconv-lite/lib/bom-handling.js create mode 100644 node_modules/iconv-lite/lib/index.d.ts create mode 100644 node_modules/iconv-lite/lib/index.js create mode 100644 node_modules/iconv-lite/lib/streams.js create mode 100644 node_modules/iconv-lite/package.json create mode 100644 node_modules/icss-replace-symbols/.npmignore create mode 100644 node_modules/icss-replace-symbols/README.md create mode 100644 node_modules/icss-replace-symbols/lib/index.js create mode 100644 node_modules/icss-replace-symbols/package.json create mode 100644 node_modules/icss-utils/CHANGELOG.md create mode 100644 node_modules/icss-utils/LICENSE.md create mode 100644 node_modules/icss-utils/README.md create mode 100644 node_modules/icss-utils/package.json create mode 100644 node_modules/icss-utils/src/createICSSRules.js create mode 100644 node_modules/icss-utils/src/extractICSS.js create mode 100644 node_modules/icss-utils/src/index.js create mode 100644 node_modules/icss-utils/src/replaceSymbols.js create mode 100644 node_modules/icss-utils/src/replaceValueSymbols.js create mode 100644 node_modules/image-size/LICENSE create mode 100644 node_modules/image-size/Readme.md create mode 100644 node_modules/image-size/bin/image-size.js create mode 100644 node_modules/image-size/lib/detector.js create mode 100644 node_modules/image-size/lib/index.js create mode 100644 node_modules/image-size/lib/readUInt.js create mode 100644 node_modules/image-size/lib/types.js create mode 100644 node_modules/image-size/lib/types/bmp.js create mode 100644 node_modules/image-size/lib/types/dds.js create mode 100644 node_modules/image-size/lib/types/gif.js create mode 100644 node_modules/image-size/lib/types/jpg.js create mode 100644 node_modules/image-size/lib/types/png.js create mode 100644 node_modules/image-size/lib/types/psd.js create mode 100644 node_modules/image-size/lib/types/svg.js create mode 100644 node_modules/image-size/lib/types/tiff.js create mode 100644 node_modules/image-size/lib/types/webp.js create mode 100644 node_modules/image-size/package.json create mode 100644 node_modules/immutable/LICENSE create mode 100644 node_modules/immutable/README.md create mode 100644 node_modules/immutable/dist/immutable.d.ts create mode 100644 node_modules/immutable/dist/immutable.es.js create mode 100644 node_modules/immutable/dist/immutable.js create mode 100644 node_modules/immutable/dist/immutable.js.flow create mode 100644 node_modules/immutable/dist/immutable.min.js create mode 100644 node_modules/immutable/package.json create mode 100644 node_modules/inflight/LICENSE create mode 100644 node_modules/inflight/README.md create mode 100644 node_modules/inflight/inflight.js create mode 100644 node_modules/inflight/package.json create mode 100644 node_modules/inherits/LICENSE create mode 100644 node_modules/inherits/README.md create mode 100644 node_modules/inherits/inherits.js create mode 100644 node_modules/inherits/inherits_browser.js create mode 100644 node_modules/inherits/package.json create mode 100644 node_modules/ini/LICENSE create mode 100644 node_modules/ini/README.md create mode 100644 node_modules/ini/ini.js create mode 100644 node_modules/ini/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-buffer/LICENSE create mode 100644 node_modules/is-buffer/README.md create mode 100644 node_modules/is-buffer/index.js create mode 100644 node_modules/is-buffer/package.json create mode 100644 node_modules/is-buffer/test/basic.js create mode 100644 node_modules/is-core-module/.eslintrc create mode 100644 node_modules/is-core-module/.nycrc create mode 100644 node_modules/is-core-module/CHANGELOG.md create mode 100644 node_modules/is-core-module/LICENSE create mode 100644 node_modules/is-core-module/README.md create mode 100644 node_modules/is-core-module/core.json create mode 100644 node_modules/is-core-module/index.js create mode 100644 node_modules/is-core-module/package.json create mode 100644 node_modules/is-core-module/test/index.js create mode 100644 node_modules/is-extendable/LICENSE create mode 100644 node_modules/is-extendable/README.md create mode 100644 node_modules/is-extendable/index.js create mode 100644 node_modules/is-extendable/package.json 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-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/is-what/.babelrc create mode 100644 node_modules/is-what/.eslintignore create mode 100644 node_modules/is-what/.eslintrc.js create mode 100644 node_modules/is-what/.github/FUNDING.yml create mode 100644 node_modules/is-what/.prettierrc create mode 100644 node_modules/is-what/.vscode/settings.json create mode 100644 node_modules/is-what/LICENSE create mode 100644 node_modules/is-what/README.md create mode 100644 node_modules/is-what/build.js create mode 100644 node_modules/is-what/dist/index.cjs.js create mode 100644 node_modules/is-what/dist/index.esm.js create mode 100644 node_modules/is-what/package.json create mode 100644 node_modules/is-what/src/index.ts create mode 100644 node_modules/is-what/test/ava.ts create mode 100644 node_modules/is-what/test/index.test.js create mode 100644 node_modules/is-what/tsconfig.json create mode 100644 node_modules/is-what/types/index.d.ts create mode 100644 node_modules/is-windows/LICENSE create mode 100644 node_modules/is-windows/index.js create mode 100644 node_modules/is-windows/package.json create mode 100644 node_modules/isexe/.npmignore create mode 100644 node_modules/isexe/LICENSE create mode 100644 node_modules/isexe/README.md create mode 100644 node_modules/isexe/index.js create mode 100644 node_modules/isexe/mode.js create mode 100644 node_modules/isexe/package.json create mode 100644 node_modules/isexe/test/basic.js create mode 100644 node_modules/isexe/windows.js create mode 100644 node_modules/jquery/AUTHORS.txt create mode 100644 node_modules/jquery/LICENSE.txt create mode 100644 node_modules/jquery/README.md create mode 100644 node_modules/jquery/bower.json create mode 100644 node_modules/jquery/dist/jquery.js create mode 100644 node_modules/jquery/dist/jquery.min.js create mode 100644 node_modules/jquery/dist/jquery.min.map create mode 100644 node_modules/jquery/dist/jquery.slim.js create mode 100644 node_modules/jquery/dist/jquery.slim.min.js create mode 100644 node_modules/jquery/dist/jquery.slim.min.map create mode 100644 node_modules/jquery/package.json create mode 100644 node_modules/jquery/src/ajax.js create mode 100644 node_modules/jquery/src/ajax/jsonp.js create mode 100644 node_modules/jquery/src/ajax/load.js create mode 100644 node_modules/jquery/src/ajax/script.js create mode 100644 node_modules/jquery/src/ajax/var/location.js create mode 100644 node_modules/jquery/src/ajax/var/nonce.js create mode 100644 node_modules/jquery/src/ajax/var/rquery.js create mode 100644 node_modules/jquery/src/ajax/xhr.js create mode 100644 node_modules/jquery/src/attributes.js create mode 100644 node_modules/jquery/src/attributes/attr.js create mode 100644 node_modules/jquery/src/attributes/classes.js create mode 100644 node_modules/jquery/src/attributes/prop.js create mode 100644 node_modules/jquery/src/attributes/support.js create mode 100644 node_modules/jquery/src/attributes/val.js create mode 100644 node_modules/jquery/src/callbacks.js create mode 100644 node_modules/jquery/src/core.js create mode 100644 node_modules/jquery/src/core/DOMEval.js create mode 100644 node_modules/jquery/src/core/access.js create mode 100644 node_modules/jquery/src/core/camelCase.js create mode 100644 node_modules/jquery/src/core/init.js create mode 100644 node_modules/jquery/src/core/isAttached.js create mode 100644 node_modules/jquery/src/core/nodeName.js create mode 100644 node_modules/jquery/src/core/parseHTML.js create mode 100644 node_modules/jquery/src/core/parseXML.js create mode 100644 node_modules/jquery/src/core/ready-no-deferred.js create mode 100644 node_modules/jquery/src/core/ready.js create mode 100644 node_modules/jquery/src/core/readyException.js create mode 100644 node_modules/jquery/src/core/stripAndCollapse.js create mode 100644 node_modules/jquery/src/core/support.js create mode 100644 node_modules/jquery/src/core/toType.js create mode 100644 node_modules/jquery/src/core/var/rhtml.js create mode 100644 node_modules/jquery/src/core/var/rsingleTag.js create mode 100644 node_modules/jquery/src/css.js create mode 100644 node_modules/jquery/src/css/addGetHookIf.js create mode 100644 node_modules/jquery/src/css/adjustCSS.js create mode 100644 node_modules/jquery/src/css/curCSS.js create mode 100644 node_modules/jquery/src/css/finalPropName.js create mode 100644 node_modules/jquery/src/css/hiddenVisibleSelectors.js create mode 100644 node_modules/jquery/src/css/showHide.js create mode 100644 node_modules/jquery/src/css/support.js create mode 100644 node_modules/jquery/src/css/var/cssExpand.js create mode 100644 node_modules/jquery/src/css/var/getStyles.js create mode 100644 node_modules/jquery/src/css/var/isHiddenWithinTree.js create mode 100644 node_modules/jquery/src/css/var/rboxStyle.js create mode 100644 node_modules/jquery/src/css/var/rcustomProp.js create mode 100644 node_modules/jquery/src/css/var/rnumnonpx.js create mode 100644 node_modules/jquery/src/css/var/swap.js create mode 100644 node_modules/jquery/src/data.js create mode 100644 node_modules/jquery/src/data/Data.js create mode 100644 node_modules/jquery/src/data/var/acceptData.js create mode 100644 node_modules/jquery/src/data/var/dataPriv.js create mode 100644 node_modules/jquery/src/data/var/dataUser.js create mode 100644 node_modules/jquery/src/deferred.js create mode 100644 node_modules/jquery/src/deferred/exceptionHook.js create mode 100644 node_modules/jquery/src/deprecated.js create mode 100644 node_modules/jquery/src/deprecated/ajax-event-alias.js create mode 100644 node_modules/jquery/src/deprecated/event.js create mode 100644 node_modules/jquery/src/dimensions.js create mode 100644 node_modules/jquery/src/effects.js create mode 100644 node_modules/jquery/src/effects/Tween.js create mode 100644 node_modules/jquery/src/effects/animatedSelector.js create mode 100644 node_modules/jquery/src/event.js create mode 100644 node_modules/jquery/src/event/trigger.js create mode 100644 node_modules/jquery/src/exports/amd.js create mode 100644 node_modules/jquery/src/exports/global.js create mode 100644 node_modules/jquery/src/jquery.js create mode 100644 node_modules/jquery/src/manipulation.js create mode 100644 node_modules/jquery/src/manipulation/_evalUrl.js create mode 100644 node_modules/jquery/src/manipulation/buildFragment.js create mode 100644 node_modules/jquery/src/manipulation/getAll.js create mode 100644 node_modules/jquery/src/manipulation/setGlobalEval.js create mode 100644 node_modules/jquery/src/manipulation/support.js create mode 100644 node_modules/jquery/src/manipulation/var/rscriptType.js create mode 100644 node_modules/jquery/src/manipulation/var/rtagName.js create mode 100644 node_modules/jquery/src/manipulation/wrapMap.js create mode 100644 node_modules/jquery/src/offset.js create mode 100644 node_modules/jquery/src/queue.js create mode 100644 node_modules/jquery/src/queue/delay.js create mode 100644 node_modules/jquery/src/selector-native.js create mode 100644 node_modules/jquery/src/selector.js create mode 100644 node_modules/jquery/src/selector/contains.js create mode 100644 node_modules/jquery/src/selector/escapeSelector.js create mode 100644 node_modules/jquery/src/serialize.js create mode 100644 node_modules/jquery/src/traversing.js create mode 100644 node_modules/jquery/src/traversing/findFilter.js create mode 100644 node_modules/jquery/src/traversing/var/dir.js create mode 100644 node_modules/jquery/src/traversing/var/rneedsContext.js create mode 100644 node_modules/jquery/src/traversing/var/siblings.js create mode 100644 node_modules/jquery/src/var/ObjectFunctionString.js create mode 100644 node_modules/jquery/src/var/arr.js create mode 100644 node_modules/jquery/src/var/class2type.js create mode 100644 node_modules/jquery/src/var/document.js create mode 100644 node_modules/jquery/src/var/documentElement.js create mode 100644 node_modules/jquery/src/var/flat.js create mode 100644 node_modules/jquery/src/var/fnToString.js create mode 100644 node_modules/jquery/src/var/getProto.js create mode 100644 node_modules/jquery/src/var/hasOwn.js create mode 100644 node_modules/jquery/src/var/indexOf.js create mode 100644 node_modules/jquery/src/var/isFunction.js create mode 100644 node_modules/jquery/src/var/isWindow.js create mode 100644 node_modules/jquery/src/var/pnum.js create mode 100644 node_modules/jquery/src/var/pop.js create mode 100644 node_modules/jquery/src/var/push.js create mode 100644 node_modules/jquery/src/var/rcheckableType.js create mode 100644 node_modules/jquery/src/var/rcssNum.js create mode 100644 node_modules/jquery/src/var/rnothtmlwhite.js create mode 100644 node_modules/jquery/src/var/rtrimCSS.js create mode 100644 node_modules/jquery/src/var/slice.js create mode 100644 node_modules/jquery/src/var/sort.js create mode 100644 node_modules/jquery/src/var/splice.js create mode 100644 node_modules/jquery/src/var/support.js create mode 100644 node_modules/jquery/src/var/toString.js create mode 100644 node_modules/jquery/src/var/whitespace.js create mode 100644 node_modules/jquery/src/wrap.js create mode 100644 node_modules/js-tokens/CHANGELOG.md create mode 100644 node_modules/js-tokens/LICENSE create mode 100644 node_modules/js-tokens/README.md create mode 100644 node_modules/js-tokens/index.js create mode 100644 node_modules/js-tokens/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/kind-of/LICENSE create mode 100644 node_modules/kind-of/README.md create mode 100644 node_modules/kind-of/index.js create mode 100644 node_modules/kind-of/package.json create mode 100644 node_modules/lazy-cache/LICENSE create mode 100644 node_modules/lazy-cache/README.md create mode 100644 node_modules/lazy-cache/index.js create mode 100644 node_modules/lazy-cache/package.json create mode 100644 node_modules/less/.eslintignore create mode 100644 node_modules/less/.eslintrc.js create mode 100644 node_modules/less/Gruntfile.js create mode 100644 node_modules/less/LICENSE create mode 100644 node_modules/less/README.md create mode 100644 node_modules/less/bin/lessc create mode 100644 node_modules/less/bower.json create mode 100644 node_modules/less/dist/less.js create mode 100644 node_modules/less/dist/less.min.js create mode 100644 node_modules/less/dist/less.min.js.map create mode 100644 node_modules/less/index.js create mode 100644 node_modules/less/lib/less-browser/add-default-options.js create mode 100644 node_modules/less/lib/less-browser/add-default-options.js.map create mode 100644 node_modules/less/lib/less-browser/bootstrap.js create mode 100644 node_modules/less/lib/less-browser/bootstrap.js.map create mode 100644 node_modules/less/lib/less-browser/browser.js create mode 100644 node_modules/less/lib/less-browser/browser.js.map create mode 100644 node_modules/less/lib/less-browser/cache.js create mode 100644 node_modules/less/lib/less-browser/cache.js.map create mode 100644 node_modules/less/lib/less-browser/error-reporting.js create mode 100644 node_modules/less/lib/less-browser/error-reporting.js.map create mode 100644 node_modules/less/lib/less-browser/file-manager.js create mode 100644 node_modules/less/lib/less-browser/file-manager.js.map create mode 100644 node_modules/less/lib/less-browser/image-size.js create mode 100644 node_modules/less/lib/less-browser/image-size.js.map create mode 100644 node_modules/less/lib/less-browser/index.js create mode 100644 node_modules/less/lib/less-browser/index.js.map create mode 100644 node_modules/less/lib/less-browser/log-listener.js create mode 100644 node_modules/less/lib/less-browser/log-listener.js.map create mode 100644 node_modules/less/lib/less-browser/plugin-loader.js create mode 100644 node_modules/less/lib/less-browser/plugin-loader.js.map create mode 100644 node_modules/less/lib/less-browser/utils.js create mode 100644 node_modules/less/lib/less-browser/utils.js.map create mode 100644 node_modules/less/lib/less-node/environment.js create mode 100644 node_modules/less/lib/less-node/environment.js.map create mode 100644 node_modules/less/lib/less-node/file-manager.js create mode 100644 node_modules/less/lib/less-node/file-manager.js.map create mode 100644 node_modules/less/lib/less-node/fs.js create mode 100644 node_modules/less/lib/less-node/fs.js.map create mode 100644 node_modules/less/lib/less-node/image-size.js create mode 100644 node_modules/less/lib/less-node/image-size.js.map create mode 100644 node_modules/less/lib/less-node/index.js create mode 100644 node_modules/less/lib/less-node/index.js.map create mode 100644 node_modules/less/lib/less-node/lessc-helper.js create mode 100644 node_modules/less/lib/less-node/lessc-helper.js.map create mode 100644 node_modules/less/lib/less-node/plugin-loader.js create mode 100644 node_modules/less/lib/less-node/plugin-loader.js.map create mode 100644 node_modules/less/lib/less-node/url-file-manager.js create mode 100644 node_modules/less/lib/less-node/url-file-manager.js.map create mode 100644 node_modules/less/lib/less/constants.js create mode 100644 node_modules/less/lib/less/constants.js.map create mode 100644 node_modules/less/lib/less/contexts.js create mode 100644 node_modules/less/lib/less/contexts.js.map create mode 100644 node_modules/less/lib/less/data/colors.js create mode 100644 node_modules/less/lib/less/data/colors.js.map create mode 100644 node_modules/less/lib/less/data/index.js create mode 100644 node_modules/less/lib/less/data/index.js.map create mode 100644 node_modules/less/lib/less/data/unit-conversions.js create mode 100644 node_modules/less/lib/less/data/unit-conversions.js.map create mode 100644 node_modules/less/lib/less/default-options.js create mode 100644 node_modules/less/lib/less/default-options.js.map create mode 100644 node_modules/less/lib/less/environment/abstract-file-manager.js create mode 100644 node_modules/less/lib/less/environment/abstract-file-manager.js.map create mode 100644 node_modules/less/lib/less/environment/abstract-plugin-loader.js create mode 100644 node_modules/less/lib/less/environment/abstract-plugin-loader.js.map create mode 100644 node_modules/less/lib/less/environment/environment-api.js create mode 100644 node_modules/less/lib/less/environment/environment-api.js.map create mode 100644 node_modules/less/lib/less/environment/environment.js create mode 100644 node_modules/less/lib/less/environment/environment.js.map create mode 100644 node_modules/less/lib/less/environment/file-manager-api.js create mode 100644 node_modules/less/lib/less/environment/file-manager-api.js.map create mode 100644 node_modules/less/lib/less/functions/boolean.js create mode 100644 node_modules/less/lib/less/functions/boolean.js.map create mode 100644 node_modules/less/lib/less/functions/color-blending.js create mode 100644 node_modules/less/lib/less/functions/color-blending.js.map create mode 100644 node_modules/less/lib/less/functions/color.js create mode 100644 node_modules/less/lib/less/functions/color.js.map create mode 100644 node_modules/less/lib/less/functions/data-uri.js create mode 100644 node_modules/less/lib/less/functions/data-uri.js.map create mode 100644 node_modules/less/lib/less/functions/default.js create mode 100644 node_modules/less/lib/less/functions/default.js.map create mode 100644 node_modules/less/lib/less/functions/function-caller.js create mode 100644 node_modules/less/lib/less/functions/function-caller.js.map create mode 100644 node_modules/less/lib/less/functions/function-registry.js create mode 100644 node_modules/less/lib/less/functions/function-registry.js.map create mode 100644 node_modules/less/lib/less/functions/index.js create mode 100644 node_modules/less/lib/less/functions/index.js.map create mode 100644 node_modules/less/lib/less/functions/list.js create mode 100644 node_modules/less/lib/less/functions/list.js.map create mode 100644 node_modules/less/lib/less/functions/math-helper.js create mode 100644 node_modules/less/lib/less/functions/math-helper.js.map create mode 100644 node_modules/less/lib/less/functions/math.js create mode 100644 node_modules/less/lib/less/functions/math.js.map create mode 100644 node_modules/less/lib/less/functions/number.js create mode 100644 node_modules/less/lib/less/functions/number.js.map create mode 100644 node_modules/less/lib/less/functions/string.js create mode 100644 node_modules/less/lib/less/functions/string.js.map create mode 100644 node_modules/less/lib/less/functions/svg.js create mode 100644 node_modules/less/lib/less/functions/svg.js.map create mode 100644 node_modules/less/lib/less/functions/types.js create mode 100644 node_modules/less/lib/less/functions/types.js.map create mode 100644 node_modules/less/lib/less/import-manager.js create mode 100644 node_modules/less/lib/less/import-manager.js.map create mode 100644 node_modules/less/lib/less/index.js create mode 100644 node_modules/less/lib/less/index.js.map create mode 100644 node_modules/less/lib/less/less-error.js create mode 100644 node_modules/less/lib/less/less-error.js.map create mode 100644 node_modules/less/lib/less/logger.js create mode 100644 node_modules/less/lib/less/logger.js.map create mode 100644 node_modules/less/lib/less/parse-tree.js create mode 100644 node_modules/less/lib/less/parse-tree.js.map create mode 100644 node_modules/less/lib/less/parse.js create mode 100644 node_modules/less/lib/less/parse.js.map create mode 100644 node_modules/less/lib/less/parser/chunker.js create mode 100644 node_modules/less/lib/less/parser/chunker.js.map create mode 100644 node_modules/less/lib/less/parser/parser-input.js create mode 100644 node_modules/less/lib/less/parser/parser-input.js.map create mode 100644 node_modules/less/lib/less/parser/parser.js create mode 100644 node_modules/less/lib/less/parser/parser.js.map create mode 100644 node_modules/less/lib/less/plugin-manager.js create mode 100644 node_modules/less/lib/less/plugin-manager.js.map create mode 100644 node_modules/less/lib/less/render.js create mode 100644 node_modules/less/lib/less/render.js.map create mode 100644 node_modules/less/lib/less/source-map-builder.js create mode 100644 node_modules/less/lib/less/source-map-builder.js.map create mode 100644 node_modules/less/lib/less/source-map-output.js create mode 100644 node_modules/less/lib/less/source-map-output.js.map create mode 100644 node_modules/less/lib/less/transform-tree.js create mode 100644 node_modules/less/lib/less/transform-tree.js.map create mode 100644 node_modules/less/lib/less/tree/anonymous.js create mode 100644 node_modules/less/lib/less/tree/anonymous.js.map create mode 100644 node_modules/less/lib/less/tree/assignment.js create mode 100644 node_modules/less/lib/less/tree/assignment.js.map create mode 100644 node_modules/less/lib/less/tree/atrule-syntax.js create mode 100644 node_modules/less/lib/less/tree/atrule-syntax.js.map create mode 100644 node_modules/less/lib/less/tree/atrule.js create mode 100644 node_modules/less/lib/less/tree/atrule.js.map create mode 100644 node_modules/less/lib/less/tree/attribute.js create mode 100644 node_modules/less/lib/less/tree/attribute.js.map create mode 100644 node_modules/less/lib/less/tree/call.js create mode 100644 node_modules/less/lib/less/tree/call.js.map create mode 100644 node_modules/less/lib/less/tree/color.js create mode 100644 node_modules/less/lib/less/tree/color.js.map create mode 100644 node_modules/less/lib/less/tree/combinator.js create mode 100644 node_modules/less/lib/less/tree/combinator.js.map create mode 100644 node_modules/less/lib/less/tree/comment.js create mode 100644 node_modules/less/lib/less/tree/comment.js.map create mode 100644 node_modules/less/lib/less/tree/condition.js create mode 100644 node_modules/less/lib/less/tree/condition.js.map create mode 100644 node_modules/less/lib/less/tree/container.js create mode 100644 node_modules/less/lib/less/tree/container.js.map create mode 100644 node_modules/less/lib/less/tree/debug-info.js create mode 100644 node_modules/less/lib/less/tree/debug-info.js.map create mode 100644 node_modules/less/lib/less/tree/declaration.js create mode 100644 node_modules/less/lib/less/tree/declaration.js.map create mode 100644 node_modules/less/lib/less/tree/detached-ruleset.js create mode 100644 node_modules/less/lib/less/tree/detached-ruleset.js.map create mode 100644 node_modules/less/lib/less/tree/dimension.js create mode 100644 node_modules/less/lib/less/tree/dimension.js.map create mode 100644 node_modules/less/lib/less/tree/element.js create mode 100644 node_modules/less/lib/less/tree/element.js.map create mode 100644 node_modules/less/lib/less/tree/expression.js create mode 100644 node_modules/less/lib/less/tree/expression.js.map create mode 100644 node_modules/less/lib/less/tree/extend.js create mode 100644 node_modules/less/lib/less/tree/extend.js.map create mode 100644 node_modules/less/lib/less/tree/import.js create mode 100644 node_modules/less/lib/less/tree/import.js.map create mode 100644 node_modules/less/lib/less/tree/index.js create mode 100644 node_modules/less/lib/less/tree/index.js.map create mode 100644 node_modules/less/lib/less/tree/javascript.js create mode 100644 node_modules/less/lib/less/tree/javascript.js.map create mode 100644 node_modules/less/lib/less/tree/js-eval-node.js create mode 100644 node_modules/less/lib/less/tree/js-eval-node.js.map create mode 100644 node_modules/less/lib/less/tree/keyword.js create mode 100644 node_modules/less/lib/less/tree/keyword.js.map create mode 100644 node_modules/less/lib/less/tree/media.js create mode 100644 node_modules/less/lib/less/tree/media.js.map create mode 100644 node_modules/less/lib/less/tree/mixin-call.js create mode 100644 node_modules/less/lib/less/tree/mixin-call.js.map create mode 100644 node_modules/less/lib/less/tree/mixin-definition.js create mode 100644 node_modules/less/lib/less/tree/mixin-definition.js.map create mode 100644 node_modules/less/lib/less/tree/namespace-value.js create mode 100644 node_modules/less/lib/less/tree/namespace-value.js.map create mode 100644 node_modules/less/lib/less/tree/negative.js create mode 100644 node_modules/less/lib/less/tree/negative.js.map create mode 100644 node_modules/less/lib/less/tree/nested-at-rule.js create mode 100644 node_modules/less/lib/less/tree/nested-at-rule.js.map create mode 100644 node_modules/less/lib/less/tree/node.js create mode 100644 node_modules/less/lib/less/tree/node.js.map create mode 100644 node_modules/less/lib/less/tree/operation.js create mode 100644 node_modules/less/lib/less/tree/operation.js.map create mode 100644 node_modules/less/lib/less/tree/paren.js create mode 100644 node_modules/less/lib/less/tree/paren.js.map create mode 100644 node_modules/less/lib/less/tree/property.js create mode 100644 node_modules/less/lib/less/tree/property.js.map create mode 100644 node_modules/less/lib/less/tree/query-in-parens.js create mode 100644 node_modules/less/lib/less/tree/query-in-parens.js.map create mode 100644 node_modules/less/lib/less/tree/quoted.js create mode 100644 node_modules/less/lib/less/tree/quoted.js.map create mode 100644 node_modules/less/lib/less/tree/ruleset.js create mode 100644 node_modules/less/lib/less/tree/ruleset.js.map create mode 100644 node_modules/less/lib/less/tree/selector.js create mode 100644 node_modules/less/lib/less/tree/selector.js.map create mode 100644 node_modules/less/lib/less/tree/unicode-descriptor.js create mode 100644 node_modules/less/lib/less/tree/unicode-descriptor.js.map create mode 100644 node_modules/less/lib/less/tree/unit.js create mode 100644 node_modules/less/lib/less/tree/unit.js.map create mode 100644 node_modules/less/lib/less/tree/url.js create mode 100644 node_modules/less/lib/less/tree/url.js.map create mode 100644 node_modules/less/lib/less/tree/value.js create mode 100644 node_modules/less/lib/less/tree/value.js.map create mode 100644 node_modules/less/lib/less/tree/variable-call.js create mode 100644 node_modules/less/lib/less/tree/variable-call.js.map create mode 100644 node_modules/less/lib/less/tree/variable.js create mode 100644 node_modules/less/lib/less/tree/variable.js.map create mode 100644 node_modules/less/lib/less/utils.js create mode 100644 node_modules/less/lib/less/utils.js.map create mode 100644 node_modules/less/lib/less/visitors/extend-visitor.js create mode 100644 node_modules/less/lib/less/visitors/extend-visitor.js.map create mode 100644 node_modules/less/lib/less/visitors/import-sequencer.js create mode 100644 node_modules/less/lib/less/visitors/import-sequencer.js.map create mode 100644 node_modules/less/lib/less/visitors/import-visitor.js create mode 100644 node_modules/less/lib/less/visitors/import-visitor.js.map create mode 100644 node_modules/less/lib/less/visitors/index.js create mode 100644 node_modules/less/lib/less/visitors/index.js.map create mode 100644 node_modules/less/lib/less/visitors/join-selector-visitor.js create mode 100644 node_modules/less/lib/less/visitors/join-selector-visitor.js.map create mode 100644 node_modules/less/lib/less/visitors/set-tree-visibility-visitor.js create mode 100644 node_modules/less/lib/less/visitors/set-tree-visibility-visitor.js.map create mode 100644 node_modules/less/lib/less/visitors/to-css-visitor.js create mode 100644 node_modules/less/lib/less/visitors/to-css-visitor.js.map create mode 100644 node_modules/less/lib/less/visitors/visitor.js create mode 100644 node_modules/less/lib/less/visitors/visitor.js.map create mode 100644 node_modules/less/package.json create mode 100644 node_modules/less/test/.eslintrc.json create mode 100644 node_modules/less/test/README.md create mode 100644 node_modules/less/test/browser/common.js create mode 100644 node_modules/less/test/browser/css/global-vars/simple.css create mode 100644 node_modules/less/test/browser/css/modify-vars/simple.css create mode 100644 node_modules/less/test/browser/css/plugin/plugin.css create mode 100644 node_modules/less/test/browser/css/postProcessor/postProcessor.css create mode 100644 node_modules/less/test/browser/css/relative-urls/urls.css create mode 100644 node_modules/less/test/browser/css/rewrite-urls/urls.css create mode 100644 node_modules/less/test/browser/css/rootpath-relative/urls.css create mode 100644 node_modules/less/test/browser/css/rootpath-rewrite-urls/urls.css create mode 100644 node_modules/less/test/browser/css/rootpath/urls.css create mode 100644 node_modules/less/test/browser/css/urls.css create mode 100644 node_modules/less/test/browser/generator/benchmark.config.js create mode 100644 node_modules/less/test/browser/generator/generate.js create mode 100644 node_modules/less/test/browser/generator/runner.config.js create mode 100644 node_modules/less/test/browser/generator/runner.js create mode 100644 node_modules/less/test/browser/generator/template.js create mode 100644 node_modules/less/test/browser/less/console-errors/test-error.less create mode 100644 node_modules/less/test/browser/less/console-errors/test-error.txt create mode 100644 node_modules/less/test/browser/less/errors/image-height-error.less create mode 100644 node_modules/less/test/browser/less/errors/image-height-error.txt create mode 100644 node_modules/less/test/browser/less/errors/image-size-error.less create mode 100644 node_modules/less/test/browser/less/errors/image-size-error.txt create mode 100644 node_modules/less/test/browser/less/errors/image-width-error.less create mode 100644 node_modules/less/test/browser/less/errors/image-width-error.txt create mode 100644 node_modules/less/test/browser/less/global-vars/simple.less create mode 100644 node_modules/less/test/browser/less/imports/urls.less create mode 100644 node_modules/less/test/browser/less/imports/urls2.less create mode 100644 node_modules/less/test/browser/less/modify-vars/imports/simple2.less create mode 100644 node_modules/less/test/browser/less/modify-vars/simple.less create mode 100644 node_modules/less/test/browser/less/nested-gradient-with-svg-gradient/mixin-consumer.less create mode 100644 node_modules/less/test/browser/less/nested-gradient-with-svg-gradient/svg-gradient-mixin.less create mode 100644 node_modules/less/test/browser/less/plugin/plugin.js create mode 100644 node_modules/less/test/browser/less/plugin/plugin.less create mode 100644 node_modules/less/test/browser/less/postProcessor/postProcessor.less create mode 100644 node_modules/less/test/browser/less/relative-urls/urls.less create mode 100644 node_modules/less/test/browser/less/rewrite-urls/urls.less create mode 100644 node_modules/less/test/browser/less/rootpath-relative/urls.less create mode 100644 node_modules/less/test/browser/less/rootpath-rewrite-urls/urls.less create mode 100644 node_modules/less/test/browser/less/rootpath/urls.less create mode 100644 node_modules/less/test/browser/less/urls.less create mode 100644 node_modules/less/test/browser/runner-VisitorPlugin-options.js create mode 100644 node_modules/less/test/browser/runner-VisitorPlugin.js create mode 100644 node_modules/less/test/browser/runner-browser-options.js create mode 100644 node_modules/less/test/browser/runner-browser-spec.js create mode 100644 node_modules/less/test/browser/runner-console-errors.js create mode 100644 node_modules/less/test/browser/runner-errors-options.js create mode 100644 node_modules/less/test/browser/runner-errors-spec.js create mode 100644 node_modules/less/test/browser/runner-filemanagerPlugin-options.js create mode 100644 node_modules/less/test/browser/runner-filemanagerPlugin.js create mode 100644 node_modules/less/test/browser/runner-global-vars-options.js create mode 100644 node_modules/less/test/browser/runner-global-vars-spec.js create mode 100644 node_modules/less/test/browser/runner-legacy-options.js create mode 100644 node_modules/less/test/browser/runner-legacy-spec.js create mode 100644 node_modules/less/test/browser/runner-main-options.js create mode 100644 node_modules/less/test/browser/runner-main-spec.js create mode 100644 node_modules/less/test/browser/runner-modify-vars-options.js create mode 100644 node_modules/less/test/browser/runner-modify-vars-spec.js create mode 100644 node_modules/less/test/browser/runner-no-js-errors-options.js create mode 100644 node_modules/less/test/browser/runner-no-js-errors-spec.js create mode 100644 node_modules/less/test/browser/runner-postProcessorPlugin-options.js create mode 100644 node_modules/less/test/browser/runner-postProcessorPlugin.js create mode 100644 node_modules/less/test/browser/runner-preProcessorPlugin-options.js create mode 100644 node_modules/less/test/browser/runner-preProcessorPlugin.js create mode 100644 node_modules/less/test/browser/runner-production-options.js create mode 100644 node_modules/less/test/browser/runner-production-spec.js create mode 100644 node_modules/less/test/browser/runner-relative-urls-options.js create mode 100644 node_modules/less/test/browser/runner-relative-urls-spec.js create mode 100644 node_modules/less/test/browser/runner-rewrite-urls-options.js create mode 100644 node_modules/less/test/browser/runner-rewrite-urls-spec.js create mode 100644 node_modules/less/test/browser/runner-rootpath-options.js create mode 100644 node_modules/less/test/browser/runner-rootpath-relative-options.js create mode 100644 node_modules/less/test/browser/runner-rootpath-relative-spec.js create mode 100644 node_modules/less/test/browser/runner-rootpath-rewrite-urls-options.js create mode 100644 node_modules/less/test/browser/runner-rootpath-rewrite-urls-spec.js create mode 100644 node_modules/less/test/browser/runner-rootpath-spec.js create mode 100644 node_modules/less/test/browser/runner-strict-units-options.js create mode 100644 node_modules/less/test/browser/runner-strict-units-spec.js create mode 100644 node_modules/less/test/index.js create mode 100644 node_modules/less/test/less-test.js create mode 100644 node_modules/less/test/modify-vars.js create mode 100644 node_modules/less/test/plugins/filemanager/index.js create mode 100644 node_modules/less/test/plugins/postprocess/index.js create mode 100644 node_modules/less/test/plugins/preprocess/index.js create mode 100644 node_modules/less/test/plugins/visitor/index.js create mode 100644 node_modules/less/test/sourcemaps-disable-annotation/basic.json create mode 100644 node_modules/less/test/sourcemaps-variable-selector/basic.json create mode 100644 node_modules/less/test/sourcemaps/basic.json create mode 100644 node_modules/less/test/sourcemaps/custom-props.json create mode 100644 node_modules/less/test/sourcemaps/index.html create mode 100644 node_modules/less/test/test-es6.ts create mode 100644 node_modules/less/tsconfig.build.json create mode 100644 node_modules/less/tsconfig.json create mode 100644 node_modules/loader-utils/LICENSE create mode 100644 node_modules/loader-utils/README.md create mode 100644 node_modules/loader-utils/lib/getHashDigest.js create mode 100644 node_modules/loader-utils/lib/hash/BatchedHash.js create mode 100644 node_modules/loader-utils/lib/hash/BulkUpdateDecorator.js create mode 100644 node_modules/loader-utils/lib/hash/md4.js create mode 100644 node_modules/loader-utils/lib/hash/wasm-hash.js create mode 100644 node_modules/loader-utils/lib/hash/xxhash64.js create mode 100644 node_modules/loader-utils/lib/index.js create mode 100644 node_modules/loader-utils/lib/interpolateName.js create mode 100644 node_modules/loader-utils/lib/isUrlRequest.js create mode 100644 node_modules/loader-utils/lib/urlToRequest.js create mode 100644 node_modules/loader-utils/package.json create mode 100644 node_modules/lodash.camelcase/LICENSE create mode 100644 node_modules/lodash.camelcase/README.md create mode 100644 node_modules/lodash.camelcase/index.js create mode 100644 node_modules/lodash.camelcase/package.json create mode 100644 node_modules/loose-envify/LICENSE create mode 100644 node_modules/loose-envify/README.md create mode 100644 node_modules/loose-envify/cli.js create mode 100644 node_modules/loose-envify/custom.js create mode 100644 node_modules/loose-envify/index.js create mode 100644 node_modules/loose-envify/loose-envify.js create mode 100644 node_modules/loose-envify/package.json create mode 100644 node_modules/loose-envify/replace.js create mode 100644 node_modules/make-dir/index.d.ts create mode 100644 node_modules/make-dir/index.js create mode 100644 node_modules/make-dir/license create mode 100644 node_modules/make-dir/package.json create mode 100644 node_modules/make-dir/readme.md create mode 100644 node_modules/mime/.npmignore create mode 100644 node_modules/mime/CHANGELOG.md create mode 100644 node_modules/mime/LICENSE create mode 100644 node_modules/mime/README.md create mode 100644 node_modules/mime/cli.js create mode 100644 node_modules/mime/mime.js create mode 100644 node_modules/mime/package.json create mode 100644 node_modules/mime/src/build.js create mode 100644 node_modules/mime/src/test.js create mode 100644 node_modules/mime/types.json create mode 100644 node_modules/minimatch/LICENSE create mode 100644 node_modules/minimatch/README.md create mode 100644 node_modules/minimatch/minimatch.js create mode 100644 node_modules/minimatch/package.json create mode 100644 node_modules/minimist/.eslintrc create mode 100644 node_modules/minimist/.github/FUNDING.yml create mode 100644 node_modules/minimist/.nycrc create mode 100644 node_modules/minimist/CHANGELOG.md create mode 100644 node_modules/minimist/LICENSE create mode 100644 node_modules/minimist/README.md create mode 100644 node_modules/minimist/example/parse.js create mode 100644 node_modules/minimist/index.js create mode 100644 node_modules/minimist/package.json create mode 100644 node_modules/minimist/test/all_bool.js create mode 100644 node_modules/minimist/test/bool.js create mode 100644 node_modules/minimist/test/dash.js create mode 100644 node_modules/minimist/test/default_bool.js create mode 100644 node_modules/minimist/test/dotted.js create mode 100644 node_modules/minimist/test/kv_short.js create mode 100644 node_modules/minimist/test/long.js create mode 100644 node_modules/minimist/test/num.js create mode 100644 node_modules/minimist/test/parse.js create mode 100644 node_modules/minimist/test/parse_modified.js create mode 100644 node_modules/minimist/test/proto.js create mode 100644 node_modules/minimist/test/short.js create mode 100644 node_modules/minimist/test/stop_early.js create mode 100644 node_modules/minimist/test/unknown.js create mode 100644 node_modules/minimist/test/whitespace.js create mode 100644 node_modules/ms/index.js create mode 100644 node_modules/ms/license.md create mode 100644 node_modules/ms/package.json create mode 100644 node_modules/ms/readme.md 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 100644 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.cts 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/needle/.github/workflows/nodejs.yml create mode 100644 node_modules/needle/README.md create mode 100644 node_modules/needle/bin/needle create mode 100644 node_modules/needle/examples/deflated-stream.js create mode 100644 node_modules/needle/examples/digest-auth.js create mode 100644 node_modules/needle/examples/download-to-file.js create mode 100644 node_modules/needle/examples/multipart-stream.js create mode 100644 node_modules/needle/examples/parsed-stream.js create mode 100644 node_modules/needle/examples/parsed-stream2.js create mode 100644 node_modules/needle/examples/stream-events.js create mode 100644 node_modules/needle/examples/stream-multiple/app.js create mode 100644 node_modules/needle/examples/stream-multiple/env.js create mode 100644 node_modules/needle/examples/stream-multiple/package.json create mode 100644 node_modules/needle/examples/stream-multiple/stream-multiple.js create mode 100644 node_modules/needle/examples/stream-to-file.js create mode 100644 node_modules/needle/examples/upload-image.js create mode 100644 node_modules/needle/lib/auth.js create mode 100644 node_modules/needle/lib/cookies.js create mode 100644 node_modules/needle/lib/decoder.js create mode 100644 node_modules/needle/lib/multipart.js create mode 100644 node_modules/needle/lib/needle.js create mode 100644 node_modules/needle/lib/parsers.js create mode 100644 node_modules/needle/lib/querystring.js create mode 100644 node_modules/needle/lib/utils.js create mode 100644 node_modules/needle/license.txt create mode 100644 node_modules/needle/package.json create mode 100644 node_modules/needle/test/auth_digest_spec.js create mode 100644 node_modules/needle/test/basic_auth_spec.js create mode 100644 node_modules/needle/test/compression_spec.js create mode 100644 node_modules/needle/test/cookies_spec.js create mode 100644 node_modules/needle/test/decoder_spec.js create mode 100644 node_modules/needle/test/errors_spec.js create mode 100644 node_modules/needle/test/files/Appalachia.html create mode 100644 node_modules/needle/test/files/tomcat_charset.html create mode 100644 node_modules/needle/test/headers_spec.js create mode 100644 node_modules/needle/test/helpers.js create mode 100644 node_modules/needle/test/long_string_spec.js create mode 100644 node_modules/needle/test/mimetype.js create mode 100644 node_modules/needle/test/output_spec.js create mode 100644 node_modules/needle/test/parsing_spec.js create mode 100644 node_modules/needle/test/post_data_spec.js create mode 100644 node_modules/needle/test/proxy_spec.js create mode 100644 node_modules/needle/test/querystring_spec.js create mode 100644 node_modules/needle/test/redirect_spec.js create mode 100644 node_modules/needle/test/redirect_with_timeout.js create mode 100644 node_modules/needle/test/request_stream_spec.js create mode 100644 node_modules/needle/test/response_stream_spec.js create mode 100644 node_modules/needle/test/socket_cleanup_spec.js create mode 100644 node_modules/needle/test/socket_pool_spec.js create mode 100644 node_modules/needle/test/stream_events_spec.js create mode 100644 node_modules/needle/test/tls_options_spec.js create mode 100644 node_modules/needle/test/uri_modifier_spec.js create mode 100644 node_modules/needle/test/url_spec.js create mode 100644 node_modules/needle/test/utils/formidable.js create mode 100644 node_modules/needle/test/utils/proxy.js create mode 100644 node_modules/needle/test/utils/test.js create mode 100644 node_modules/needle/test/utils_spec.js 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/object-assign/index.js create mode 100644 node_modules/object-assign/license create mode 100644 node_modules/object-assign/package.json create mode 100644 node_modules/object-assign/readme.md create mode 100644 node_modules/once/LICENSE create mode 100644 node_modules/once/README.md create mode 100644 node_modules/once/once.js create mode 100644 node_modules/once/package.json create mode 100644 node_modules/os-homedir/index.js create mode 100644 node_modules/os-homedir/license create mode 100644 node_modules/os-homedir/package.json create mode 100644 node_modules/os-homedir/readme.md create mode 100644 node_modules/parse-node-version/LICENSE create mode 100644 node_modules/parse-node-version/README.md create mode 100644 node_modules/parse-node-version/index.js create mode 100644 node_modules/parse-node-version/package.json create mode 100644 node_modules/parse-passwd/LICENSE create mode 100644 node_modules/parse-passwd/README.md create mode 100644 node_modules/parse-passwd/index.js create mode 100644 node_modules/parse-passwd/package.json create mode 100644 node_modules/path-is-absolute/index.js create mode 100644 node_modules/path-is-absolute/license create mode 100644 node_modules/path-is-absolute/package.json create mode 100644 node_modules/path-is-absolute/readme.md create mode 100644 node_modules/path-parse/LICENSE create mode 100644 node_modules/path-parse/README.md create mode 100644 node_modules/path-parse/index.js create mode 100644 node_modules/path-parse/package.json 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-modules-extract-imports/LICENSE create mode 100644 node_modules/postcss-modules-extract-imports/README.md create mode 100644 node_modules/postcss-modules-extract-imports/package.json create mode 100644 node_modules/postcss-modules-extract-imports/src/index.js create mode 100644 node_modules/postcss-modules-extract-imports/src/topologicalSort.js create mode 100644 node_modules/postcss-modules-local-by-default/LICENSE create mode 100644 node_modules/postcss-modules-local-by-default/README.md create mode 100644 node_modules/postcss-modules-local-by-default/package.json create mode 100644 node_modules/postcss-modules-local-by-default/src/index.js create mode 100644 node_modules/postcss-modules-scope/LICENSE create mode 100644 node_modules/postcss-modules-scope/README.md create mode 100644 node_modules/postcss-modules-scope/package.json create mode 100644 node_modules/postcss-modules-scope/src/index.js create mode 100644 node_modules/postcss-modules-values/CHANGELOG.md create mode 100644 node_modules/postcss-modules-values/LICENSE create mode 100644 node_modules/postcss-modules-values/README.md create mode 100644 node_modules/postcss-modules-values/package.json create mode 100644 node_modules/postcss-modules-values/src/index.js create mode 100644 node_modules/postcss-modules/CHANGELOG.md create mode 100644 node_modules/postcss-modules/LICENSE create mode 100644 node_modules/postcss-modules/README.md create mode 100644 node_modules/postcss-modules/build/behaviours.js create mode 100644 node_modules/postcss-modules/build/css-loader-core/loader.js create mode 100644 node_modules/postcss-modules/build/css-loader-core/parser.js create mode 100644 node_modules/postcss-modules/build/generateScopedName.js create mode 100644 node_modules/postcss-modules/build/index.js create mode 100644 node_modules/postcss-modules/build/saveJSON.js create mode 100644 node_modules/postcss-modules/build/unquote/index.js create mode 100644 node_modules/postcss-modules/index.d.ts create mode 100644 node_modules/postcss-modules/package.json create mode 100644 node_modules/postcss-selector-parser/API.md create mode 100644 node_modules/postcss-selector-parser/CHANGELOG.md create mode 100644 node_modules/postcss-selector-parser/LICENSE-MIT create mode 100644 node_modules/postcss-selector-parser/README.md create mode 100644 node_modules/postcss-selector-parser/dist/index.js create mode 100644 node_modules/postcss-selector-parser/dist/parser.js create mode 100644 node_modules/postcss-selector-parser/dist/processor.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/attribute.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/className.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/combinator.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/comment.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/constructors.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/container.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/guards.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/id.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/index.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/namespace.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/nesting.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/node.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/pseudo.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/root.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/selector.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/string.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/tag.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/types.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/universal.js create mode 100644 node_modules/postcss-selector-parser/dist/sortAscending.js create mode 100644 node_modules/postcss-selector-parser/dist/tokenTypes.js create mode 100644 node_modules/postcss-selector-parser/dist/tokenize.js create mode 100644 node_modules/postcss-selector-parser/dist/util/ensureObject.js create mode 100644 node_modules/postcss-selector-parser/dist/util/getProp.js create mode 100644 node_modules/postcss-selector-parser/dist/util/index.js create mode 100644 node_modules/postcss-selector-parser/dist/util/stripComments.js create mode 100644 node_modules/postcss-selector-parser/dist/util/unesc.js create mode 100644 node_modules/postcss-selector-parser/package.json create mode 100644 node_modules/postcss-selector-parser/postcss-selector-parser.d.ts 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 100644 node_modules/postcss/package.json create mode 100644 node_modules/prop-types/LICENSE create mode 100644 node_modules/prop-types/README.md create mode 100644 node_modules/prop-types/checkPropTypes.js create mode 100644 node_modules/prop-types/factory.js create mode 100644 node_modules/prop-types/factoryWithThrowingShims.js create mode 100644 node_modules/prop-types/factoryWithTypeCheckers.js create mode 100644 node_modules/prop-types/index.js create mode 100644 node_modules/prop-types/lib/ReactPropTypesSecret.js create mode 100644 node_modules/prop-types/lib/has.js create mode 100644 node_modules/prop-types/package.json create mode 100644 node_modules/prop-types/prop-types.js create mode 100644 node_modules/prop-types/prop-types.min.js create mode 100644 node_modules/prr/.jshintrc create mode 100644 node_modules/prr/.npmignore create mode 100644 node_modules/prr/.travis.yml create mode 100644 node_modules/prr/LICENSE.md create mode 100644 node_modules/prr/README.md create mode 100644 node_modules/prr/package.json create mode 100644 node_modules/prr/prr.js create mode 100644 node_modules/prr/test.js create mode 100644 node_modules/react-circular-progressbar/LICENSE create mode 100644 node_modules/react-circular-progressbar/README.md create mode 100644 node_modules/react-circular-progressbar/dist/CircularProgressbar.d.ts create mode 100644 node_modules/react-circular-progressbar/dist/CircularProgressbarWithChildren.d.ts create mode 100644 node_modules/react-circular-progressbar/dist/Path.d.ts create mode 100644 node_modules/react-circular-progressbar/dist/buildStyles.d.ts create mode 100644 node_modules/react-circular-progressbar/dist/constants.d.ts create mode 100644 node_modules/react-circular-progressbar/dist/index.d.ts create mode 100644 node_modules/react-circular-progressbar/dist/index.esm.js create mode 100644 node_modules/react-circular-progressbar/dist/index.esm.js.map create mode 100644 node_modules/react-circular-progressbar/dist/index.js create mode 100644 node_modules/react-circular-progressbar/dist/index.js.map create mode 100644 node_modules/react-circular-progressbar/dist/styles.css create mode 100644 node_modules/react-circular-progressbar/dist/types.d.ts create mode 100644 node_modules/react-circular-progressbar/package.json create mode 100644 node_modules/react-dom/LICENSE create mode 100644 node_modules/react-dom/README.md create mode 100644 node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js create mode 100644 node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js create mode 100644 node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js create mode 100644 node_modules/react-dom/cjs/react-dom-server-legacy.node.production.min.js create mode 100644 node_modules/react-dom/cjs/react-dom-server.browser.development.js create mode 100644 node_modules/react-dom/cjs/react-dom-server.browser.production.min.js create mode 100644 node_modules/react-dom/cjs/react-dom-server.node.development.js create mode 100644 node_modules/react-dom/cjs/react-dom-server.node.production.min.js create mode 100644 node_modules/react-dom/cjs/react-dom-test-utils.development.js create mode 100644 node_modules/react-dom/cjs/react-dom-test-utils.production.min.js create mode 100644 node_modules/react-dom/cjs/react-dom.development.js create mode 100644 node_modules/react-dom/cjs/react-dom.production.min.js create mode 100644 node_modules/react-dom/cjs/react-dom.profiling.min.js create mode 100644 node_modules/react-dom/client.js create mode 100644 node_modules/react-dom/index.js create mode 100644 node_modules/react-dom/package.json create mode 100644 node_modules/react-dom/profiling.js create mode 100644 node_modules/react-dom/server.browser.js create mode 100644 node_modules/react-dom/server.js create mode 100644 node_modules/react-dom/server.node.js create mode 100644 node_modules/react-dom/test-utils.js create mode 100644 node_modules/react-dom/umd/react-dom-server-legacy.browser.development.js create mode 100644 node_modules/react-dom/umd/react-dom-server-legacy.browser.production.min.js create mode 100644 node_modules/react-dom/umd/react-dom-server.browser.development.js create mode 100644 node_modules/react-dom/umd/react-dom-server.browser.production.min.js create mode 100644 node_modules/react-dom/umd/react-dom-test-utils.development.js create mode 100644 node_modules/react-dom/umd/react-dom-test-utils.production.min.js create mode 100644 node_modules/react-dom/umd/react-dom.development.js create mode 100644 node_modules/react-dom/umd/react-dom.production.min.js create mode 100644 node_modules/react-dom/umd/react-dom.profiling.min.js create mode 100644 node_modules/react-is/LICENSE create mode 100644 node_modules/react-is/README.md create mode 100644 node_modules/react-is/build-info.json create mode 100644 node_modules/react-is/cjs/react-is.development.js create mode 100644 node_modules/react-is/cjs/react-is.production.min.js create mode 100644 node_modules/react-is/index.js create mode 100644 node_modules/react-is/package.json create mode 100644 node_modules/react-is/umd/react-is.development.js create mode 100644 node_modules/react-is/umd/react-is.production.min.js create mode 100644 node_modules/react-lifecycles-compat/CHANGELOG.md create mode 100644 node_modules/react-lifecycles-compat/LICENSE.md create mode 100644 node_modules/react-lifecycles-compat/README.md create mode 100644 node_modules/react-lifecycles-compat/package.json create mode 100644 node_modules/react-lifecycles-compat/react-lifecycles-compat.cjs.js create mode 100644 node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js create mode 100644 node_modules/react-lifecycles-compat/react-lifecycles-compat.js create mode 100644 node_modules/react-lifecycles-compat/react-lifecycles-compat.min.js create mode 100644 node_modules/react-modal/CHANGELOG.md create mode 100644 node_modules/react-modal/LICENSE create mode 100644 node_modules/react-modal/README.md create mode 100644 node_modules/react-modal/UPGRADE_GUIDE.md create mode 100644 node_modules/react-modal/dist/react-modal.js create mode 100644 node_modules/react-modal/dist/react-modal.min.js create mode 100644 node_modules/react-modal/lib/components/Modal.js create mode 100644 node_modules/react-modal/lib/components/ModalPortal.js create mode 100644 node_modules/react-modal/lib/helpers/ariaAppHider.js create mode 100644 node_modules/react-modal/lib/helpers/bodyTrap.js create mode 100644 node_modules/react-modal/lib/helpers/classList.js create mode 100644 node_modules/react-modal/lib/helpers/focusManager.js create mode 100644 node_modules/react-modal/lib/helpers/portalOpenInstances.js create mode 100644 node_modules/react-modal/lib/helpers/safeHTMLElement.js create mode 100644 node_modules/react-modal/lib/helpers/scopeTab.js create mode 100644 node_modules/react-modal/lib/helpers/tabbable.js create mode 100644 node_modules/react-modal/lib/index.js create mode 100644 node_modules/react-modal/package.json create mode 100644 node_modules/react/LICENSE create mode 100644 node_modules/react/README.md create mode 100644 node_modules/react/cjs/react-jsx-dev-runtime.development.js create mode 100644 node_modules/react/cjs/react-jsx-dev-runtime.production.min.js create mode 100644 node_modules/react/cjs/react-jsx-dev-runtime.profiling.min.js create mode 100644 node_modules/react/cjs/react-jsx-runtime.development.js create mode 100644 node_modules/react/cjs/react-jsx-runtime.production.min.js create mode 100644 node_modules/react/cjs/react-jsx-runtime.profiling.min.js create mode 100644 node_modules/react/cjs/react.development.js create mode 100644 node_modules/react/cjs/react.production.min.js create mode 100644 node_modules/react/cjs/react.shared-subset.development.js create mode 100644 node_modules/react/cjs/react.shared-subset.production.min.js create mode 100644 node_modules/react/index.js create mode 100644 node_modules/react/jsx-dev-runtime.js create mode 100644 node_modules/react/jsx-runtime.js create mode 100644 node_modules/react/package.json create mode 100644 node_modules/react/react.shared-subset.js create mode 100644 node_modules/react/umd/react.development.js create mode 100644 node_modules/react/umd/react.production.min.js create mode 100644 node_modules/react/umd/react.profiling.min.js 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/resolve-dir/LICENSE create mode 100644 node_modules/resolve-dir/README.md create mode 100644 node_modules/resolve-dir/index.js create mode 100644 node_modules/resolve-dir/node_modules/expand-tilde/LICENSE create mode 100644 node_modules/resolve-dir/node_modules/expand-tilde/index.js create mode 100644 node_modules/resolve-dir/node_modules/expand-tilde/package.json create mode 100644 node_modules/resolve-dir/package.json create mode 100644 node_modules/resolve-file/LICENSE create mode 100644 node_modules/resolve-file/README.md create mode 100644 node_modules/resolve-file/index.js create mode 100644 node_modules/resolve-file/package.json create mode 100644 node_modules/resolve-file/utils.js create mode 100644 node_modules/resolve/.editorconfig create mode 100644 node_modules/resolve/.eslintrc create mode 100644 node_modules/resolve/.github/FUNDING.yml create mode 100644 node_modules/resolve/LICENSE create mode 100644 node_modules/resolve/SECURITY.md create mode 100644 node_modules/resolve/async.js create mode 100644 node_modules/resolve/bin/resolve create mode 100644 node_modules/resolve/example/async.js create mode 100644 node_modules/resolve/example/sync.js create mode 100644 node_modules/resolve/index.js create mode 100644 node_modules/resolve/lib/async.js create mode 100644 node_modules/resolve/lib/caller.js create mode 100644 node_modules/resolve/lib/core.js create mode 100644 node_modules/resolve/lib/core.json create mode 100644 node_modules/resolve/lib/homedir.js create mode 100644 node_modules/resolve/lib/is-core.js create mode 100644 node_modules/resolve/lib/node-modules-paths.js create mode 100644 node_modules/resolve/lib/normalize-options.js create mode 100644 node_modules/resolve/lib/sync.js create mode 100644 node_modules/resolve/package.json create mode 100644 node_modules/resolve/readme.markdown create mode 100644 node_modules/resolve/sync.js create mode 100644 node_modules/resolve/test/core.js create mode 100644 node_modules/resolve/test/dotdot.js create mode 100644 node_modules/resolve/test/dotdot/abc/index.js create mode 100644 node_modules/resolve/test/dotdot/index.js create mode 100644 node_modules/resolve/test/faulty_basedir.js create mode 100644 node_modules/resolve/test/filter.js create mode 100644 node_modules/resolve/test/filter_sync.js create mode 100644 node_modules/resolve/test/home_paths.js create mode 100644 node_modules/resolve/test/home_paths_sync.js create mode 100644 node_modules/resolve/test/mock.js create mode 100644 node_modules/resolve/test/mock_sync.js create mode 100644 node_modules/resolve/test/module_dir.js create mode 100644 node_modules/resolve/test/module_dir/xmodules/aaa/index.js create mode 100644 node_modules/resolve/test/module_dir/ymodules/aaa/index.js create mode 100644 node_modules/resolve/test/module_dir/zmodules/bbb/main.js create mode 100644 node_modules/resolve/test/module_dir/zmodules/bbb/package.json create mode 100644 node_modules/resolve/test/node-modules-paths.js create mode 100644 node_modules/resolve/test/node_path.js create mode 100644 node_modules/resolve/test/node_path/x/aaa/index.js create mode 100644 node_modules/resolve/test/node_path/x/ccc/index.js create mode 100644 node_modules/resolve/test/node_path/y/bbb/index.js create mode 100644 node_modules/resolve/test/node_path/y/ccc/index.js create mode 100644 node_modules/resolve/test/nonstring.js create mode 100644 node_modules/resolve/test/pathfilter.js create mode 100644 node_modules/resolve/test/pathfilter/deep_ref/main.js create mode 100644 node_modules/resolve/test/precedence.js create mode 100644 node_modules/resolve/test/precedence/aaa.js create mode 100644 node_modules/resolve/test/precedence/aaa/index.js create mode 100644 node_modules/resolve/test/precedence/aaa/main.js create mode 100644 node_modules/resolve/test/precedence/bbb.js create mode 100644 node_modules/resolve/test/precedence/bbb/main.js create mode 100644 node_modules/resolve/test/resolver.js create mode 100644 node_modules/resolve/test/resolver/baz/doom.js create mode 100644 node_modules/resolve/test/resolver/baz/package.json create mode 100644 node_modules/resolve/test/resolver/baz/quux.js create mode 100644 node_modules/resolve/test/resolver/browser_field/a.js create mode 100644 node_modules/resolve/test/resolver/browser_field/b.js create mode 100644 node_modules/resolve/test/resolver/browser_field/package.json create mode 100644 node_modules/resolve/test/resolver/cup.coffee create mode 100644 node_modules/resolve/test/resolver/dot_main/index.js create mode 100644 node_modules/resolve/test/resolver/dot_main/package.json create mode 100644 node_modules/resolve/test/resolver/dot_slash_main/index.js create mode 100644 node_modules/resolve/test/resolver/dot_slash_main/package.json create mode 100644 node_modules/resolve/test/resolver/false_main/index.js create mode 100644 node_modules/resolve/test/resolver/false_main/package.json create mode 100644 node_modules/resolve/test/resolver/foo.js create mode 100644 node_modules/resolve/test/resolver/incorrect_main/index.js create mode 100644 node_modules/resolve/test/resolver/incorrect_main/package.json create mode 100644 node_modules/resolve/test/resolver/invalid_main/package.json create mode 100644 node_modules/resolve/test/resolver/mug.coffee create mode 100644 node_modules/resolve/test/resolver/mug.js create mode 100644 node_modules/resolve/test/resolver/multirepo/lerna.json create mode 100644 node_modules/resolve/test/resolver/multirepo/package.json create mode 100644 node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js create mode 100644 node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json create mode 100644 node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js create mode 100644 node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json create mode 100644 node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js create mode 100644 node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json create mode 100644 node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js create mode 100644 node_modules/resolve/test/resolver/other_path/lib/other-lib.js create mode 100644 node_modules/resolve/test/resolver/other_path/root.js create mode 100644 node_modules/resolve/test/resolver/quux/foo/index.js create mode 100644 node_modules/resolve/test/resolver/same_names/foo.js create mode 100644 node_modules/resolve/test/resolver/same_names/foo/index.js create mode 100644 node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js create mode 100644 node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep create mode 100644 node_modules/resolve/test/resolver/symlinked/package/bar.js create mode 100644 node_modules/resolve/test/resolver/symlinked/package/package.json create mode 100644 node_modules/resolve/test/resolver/without_basedir/main.js create mode 100644 node_modules/resolve/test/resolver_sync.js create mode 100644 node_modules/resolve/test/shadowed_core.js create mode 100644 node_modules/resolve/test/shadowed_core/node_modules/util/index.js create mode 100644 node_modules/resolve/test/subdirs.js create mode 100644 node_modules/resolve/test/symlinks.js create mode 100644 node_modules/safer-buffer/LICENSE create mode 100644 node_modules/safer-buffer/Porting-Buffer.md create mode 100644 node_modules/safer-buffer/Readme.md create mode 100644 node_modules/safer-buffer/dangerous.js create mode 100644 node_modules/safer-buffer/package.json create mode 100644 node_modules/safer-buffer/safer.js create mode 100644 node_modules/safer-buffer/tests.js create mode 100644 node_modules/sass/LICENSE create mode 100644 node_modules/sass/README.md create mode 100644 node_modules/sass/package.json create mode 100644 node_modules/sass/sass.dart.js create mode 100644 node_modules/sass/sass.default.cjs create mode 100644 node_modules/sass/sass.default.js create mode 100644 node_modules/sass/sass.js create mode 100644 node_modules/sass/sass.node.js create mode 100644 node_modules/sass/sass.node.mjs create mode 100644 node_modules/sass/types/compile.d.ts create mode 100644 node_modules/sass/types/deprecations.d.ts create mode 100644 node_modules/sass/types/exception.d.ts create mode 100644 node_modules/sass/types/importer.d.ts create mode 100644 node_modules/sass/types/index.d.ts create mode 100644 node_modules/sass/types/legacy/exception.d.ts create mode 100644 node_modules/sass/types/legacy/function.d.ts create mode 100644 node_modules/sass/types/legacy/importer.d.ts create mode 100644 node_modules/sass/types/legacy/options.d.ts create mode 100644 node_modules/sass/types/legacy/plugin_this.d.ts create mode 100644 node_modules/sass/types/legacy/render.d.ts create mode 100644 node_modules/sass/types/logger/index.d.ts create mode 100644 node_modules/sass/types/logger/source_location.d.ts create mode 100644 node_modules/sass/types/logger/source_span.d.ts create mode 100644 node_modules/sass/types/options.d.ts create mode 100644 node_modules/sass/types/util/promise_or.d.ts create mode 100644 node_modules/sass/types/value/argument_list.d.ts create mode 100644 node_modules/sass/types/value/boolean.d.ts create mode 100644 node_modules/sass/types/value/calculation.d.ts create mode 100644 node_modules/sass/types/value/color.d.ts create mode 100644 node_modules/sass/types/value/function.d.ts create mode 100644 node_modules/sass/types/value/index.d.ts create mode 100644 node_modules/sass/types/value/list.d.ts create mode 100644 node_modules/sass/types/value/map.d.ts create mode 100644 node_modules/sass/types/value/mixin.d.ts create mode 100644 node_modules/sass/types/value/number.d.ts create mode 100644 node_modules/sass/types/value/string.d.ts create mode 100644 node_modules/sax/LICENSE create mode 100644 node_modules/sax/README.md create mode 100644 node_modules/sax/lib/sax.js create mode 100644 node_modules/sax/package.json create mode 100644 node_modules/scheduler/LICENSE create mode 100644 node_modules/scheduler/README.md create mode 100644 node_modules/scheduler/cjs/scheduler-unstable_mock.development.js create mode 100644 node_modules/scheduler/cjs/scheduler-unstable_mock.production.min.js create mode 100644 node_modules/scheduler/cjs/scheduler-unstable_post_task.development.js create mode 100644 node_modules/scheduler/cjs/scheduler-unstable_post_task.production.min.js create mode 100644 node_modules/scheduler/cjs/scheduler.development.js create mode 100644 node_modules/scheduler/cjs/scheduler.production.min.js create mode 100644 node_modules/scheduler/index.js create mode 100644 node_modules/scheduler/package.json create mode 100644 node_modules/scheduler/umd/scheduler-unstable_mock.development.js create mode 100644 node_modules/scheduler/umd/scheduler-unstable_mock.production.min.js create mode 100644 node_modules/scheduler/umd/scheduler.development.js create mode 100644 node_modules/scheduler/umd/scheduler.production.min.js create mode 100644 node_modules/scheduler/umd/scheduler.profiling.min.js create mode 100644 node_modules/scheduler/unstable_mock.js create mode 100644 node_modules/scheduler/unstable_post_task.js create mode 100644 node_modules/semver/LICENSE create mode 100644 node_modules/semver/README.md create mode 100644 node_modules/semver/bin/semver create mode 100644 node_modules/semver/package.json create mode 100644 node_modules/semver/range.bnf create mode 100644 node_modules/semver/semver.js create mode 100644 node_modules/set-getter/LICENSE create mode 100644 node_modules/set-getter/README.md create mode 100644 node_modules/set-getter/index.js create mode 100644 node_modules/set-getter/package.json 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/source-map/CHANGELOG.md create mode 100644 node_modules/source-map/LICENSE create mode 100644 node_modules/source-map/README.md create mode 100644 node_modules/source-map/dist/source-map.debug.js create mode 100644 node_modules/source-map/dist/source-map.js create mode 100644 node_modules/source-map/dist/source-map.min.js create mode 100644 node_modules/source-map/dist/source-map.min.js.map create mode 100644 node_modules/source-map/lib/array-set.js create mode 100644 node_modules/source-map/lib/base64-vlq.js create mode 100644 node_modules/source-map/lib/base64.js create mode 100644 node_modules/source-map/lib/binary-search.js create mode 100644 node_modules/source-map/lib/mapping-list.js create mode 100644 node_modules/source-map/lib/quick-sort.js create mode 100644 node_modules/source-map/lib/source-map-consumer.js create mode 100644 node_modules/source-map/lib/source-map-generator.js create mode 100644 node_modules/source-map/lib/source-node.js create mode 100644 node_modules/source-map/lib/util.js create mode 100644 node_modules/source-map/package.json create mode 100644 node_modules/source-map/source-map.d.ts create mode 100644 node_modules/source-map/source-map.js create mode 100644 node_modules/spicetify-creator/LICENSE create mode 100644 node_modules/spicetify-creator/dist/buildCustomApp.js create mode 100644 node_modules/spicetify-creator/dist/buildExtension.js create mode 100644 node_modules/spicetify-creator/dist/helpers/extractFiles.js create mode 100644 node_modules/spicetify-creator/dist/helpers/minify.js create mode 100644 node_modules/spicetify-creator/dist/helpers/models.js create mode 100644 node_modules/spicetify-creator/dist/index.js create mode 100644 node_modules/spicetify-creator/dist/scripts.js create mode 100644 node_modules/spicetify-creator/dist/temp/index.jsx create mode 100644 node_modules/spicetify-creator/package.json create mode 100644 node_modules/string-hash/.npmignore create mode 100644 node_modules/string-hash/README.md create mode 100644 node_modules/string-hash/component.json create mode 100644 node_modules/string-hash/index.js create mode 100644 node_modules/string-hash/package.json create mode 100644 node_modules/string-hash/test.js create mode 100644 node_modules/stylus/LICENSE create mode 100644 node_modules/stylus/Readme.md create mode 100644 node_modules/stylus/bin/stylus create mode 100644 node_modules/stylus/index.js create mode 100644 node_modules/stylus/lib/browserify.js create mode 100644 node_modules/stylus/lib/cache/fs.js create mode 100644 node_modules/stylus/lib/cache/index.js create mode 100644 node_modules/stylus/lib/cache/memory.js create mode 100644 node_modules/stylus/lib/cache/null.js create mode 100644 node_modules/stylus/lib/colors.js create mode 100644 node_modules/stylus/lib/convert/css.js create mode 100644 node_modules/stylus/lib/errors.js create mode 100644 node_modules/stylus/lib/functions/acos.js create mode 100644 node_modules/stylus/lib/functions/add-property.js create mode 100644 node_modules/stylus/lib/functions/adjust.js create mode 100644 node_modules/stylus/lib/functions/alpha.js create mode 100644 node_modules/stylus/lib/functions/asin.js create mode 100644 node_modules/stylus/lib/functions/atan.js create mode 100644 node_modules/stylus/lib/functions/base-convert.js create mode 100644 node_modules/stylus/lib/functions/basename.js create mode 100644 node_modules/stylus/lib/functions/blend.js create mode 100644 node_modules/stylus/lib/functions/blue.js create mode 100644 node_modules/stylus/lib/functions/clone.js create mode 100644 node_modules/stylus/lib/functions/component.js create mode 100644 node_modules/stylus/lib/functions/contrast.js create mode 100644 node_modules/stylus/lib/functions/convert-angle.js create mode 100644 node_modules/stylus/lib/functions/convert.js create mode 100644 node_modules/stylus/lib/functions/current-media.js create mode 100644 node_modules/stylus/lib/functions/define.js create mode 100644 node_modules/stylus/lib/functions/dirname.js create mode 100644 node_modules/stylus/lib/functions/error.js create mode 100644 node_modules/stylus/lib/functions/extname.js create mode 100644 node_modules/stylus/lib/functions/green.js create mode 100644 node_modules/stylus/lib/functions/hsl.js create mode 100644 node_modules/stylus/lib/functions/hsla.js create mode 100644 node_modules/stylus/lib/functions/hue.js create mode 100644 node_modules/stylus/lib/functions/image-size.js create mode 100644 node_modules/stylus/lib/functions/image.js create mode 100644 node_modules/stylus/lib/functions/index.js create mode 100644 node_modules/stylus/lib/functions/index.styl create mode 100644 node_modules/stylus/lib/functions/json.js create mode 100644 node_modules/stylus/lib/functions/length.js create mode 100644 node_modules/stylus/lib/functions/lightness.js create mode 100644 node_modules/stylus/lib/functions/list-separator.js create mode 100644 node_modules/stylus/lib/functions/lookup.js create mode 100644 node_modules/stylus/lib/functions/luminosity.js create mode 100644 node_modules/stylus/lib/functions/match.js create mode 100644 node_modules/stylus/lib/functions/math-prop.js create mode 100644 node_modules/stylus/lib/functions/math.js create mode 100644 node_modules/stylus/lib/functions/merge.js create mode 100644 node_modules/stylus/lib/functions/operate.js create mode 100644 node_modules/stylus/lib/functions/opposite-position.js create mode 100644 node_modules/stylus/lib/functions/p.js create mode 100644 node_modules/stylus/lib/functions/pathjoin.js create mode 100644 node_modules/stylus/lib/functions/pop.js create mode 100644 node_modules/stylus/lib/functions/prefix-classes.js create mode 100644 node_modules/stylus/lib/functions/push.js create mode 100644 node_modules/stylus/lib/functions/range.js create mode 100644 node_modules/stylus/lib/functions/red.js create mode 100644 node_modules/stylus/lib/functions/remove.js create mode 100644 node_modules/stylus/lib/functions/replace.js create mode 100644 node_modules/stylus/lib/functions/resolver.js create mode 100644 node_modules/stylus/lib/functions/rgb.js create mode 100644 node_modules/stylus/lib/functions/rgba.js create mode 100644 node_modules/stylus/lib/functions/s.js create mode 100644 node_modules/stylus/lib/functions/saturation.js create mode 100644 node_modules/stylus/lib/functions/selector-exists.js create mode 100644 node_modules/stylus/lib/functions/selector.js create mode 100644 node_modules/stylus/lib/functions/selectors.js create mode 100644 node_modules/stylus/lib/functions/shift.js create mode 100644 node_modules/stylus/lib/functions/slice.js create mode 100644 node_modules/stylus/lib/functions/split.js create mode 100644 node_modules/stylus/lib/functions/substr.js create mode 100644 node_modules/stylus/lib/functions/tan.js create mode 100644 node_modules/stylus/lib/functions/trace.js create mode 100644 node_modules/stylus/lib/functions/transparentify.js create mode 100644 node_modules/stylus/lib/functions/type.js create mode 100644 node_modules/stylus/lib/functions/unit.js create mode 100644 node_modules/stylus/lib/functions/unquote.js create mode 100644 node_modules/stylus/lib/functions/unshift.js create mode 100644 node_modules/stylus/lib/functions/url.js create mode 100644 node_modules/stylus/lib/functions/use.js create mode 100644 node_modules/stylus/lib/functions/warn.js create mode 100644 node_modules/stylus/lib/lexer.js create mode 100644 node_modules/stylus/lib/middleware.js create mode 100644 node_modules/stylus/lib/nodes/arguments.js create mode 100644 node_modules/stylus/lib/nodes/atblock.js create mode 100644 node_modules/stylus/lib/nodes/atrule.js create mode 100644 node_modules/stylus/lib/nodes/binop.js create mode 100644 node_modules/stylus/lib/nodes/block.js create mode 100644 node_modules/stylus/lib/nodes/boolean.js create mode 100644 node_modules/stylus/lib/nodes/call.js create mode 100644 node_modules/stylus/lib/nodes/charset.js create mode 100644 node_modules/stylus/lib/nodes/comment.js create mode 100644 node_modules/stylus/lib/nodes/each.js create mode 100644 node_modules/stylus/lib/nodes/expression.js create mode 100644 node_modules/stylus/lib/nodes/extend.js create mode 100644 node_modules/stylus/lib/nodes/feature.js create mode 100644 node_modules/stylus/lib/nodes/function.js create mode 100644 node_modules/stylus/lib/nodes/group.js create mode 100644 node_modules/stylus/lib/nodes/hsla.js create mode 100644 node_modules/stylus/lib/nodes/ident.js create mode 100644 node_modules/stylus/lib/nodes/if.js create mode 100644 node_modules/stylus/lib/nodes/import.js create mode 100644 node_modules/stylus/lib/nodes/index.js create mode 100644 node_modules/stylus/lib/nodes/keyframes.js create mode 100644 node_modules/stylus/lib/nodes/literal.js create mode 100644 node_modules/stylus/lib/nodes/media.js create mode 100644 node_modules/stylus/lib/nodes/member.js create mode 100644 node_modules/stylus/lib/nodes/namespace.js create mode 100644 node_modules/stylus/lib/nodes/node.js create mode 100644 node_modules/stylus/lib/nodes/null.js create mode 100644 node_modules/stylus/lib/nodes/object.js create mode 100644 node_modules/stylus/lib/nodes/params.js create mode 100644 node_modules/stylus/lib/nodes/property.js create mode 100644 node_modules/stylus/lib/nodes/query-list.js create mode 100644 node_modules/stylus/lib/nodes/query.js create mode 100644 node_modules/stylus/lib/nodes/return.js create mode 100644 node_modules/stylus/lib/nodes/rgba.js create mode 100644 node_modules/stylus/lib/nodes/root.js create mode 100644 node_modules/stylus/lib/nodes/selector.js create mode 100644 node_modules/stylus/lib/nodes/string.js create mode 100644 node_modules/stylus/lib/nodes/supports.js create mode 100644 node_modules/stylus/lib/nodes/ternary.js create mode 100644 node_modules/stylus/lib/nodes/unaryop.js create mode 100644 node_modules/stylus/lib/nodes/unit.js create mode 100644 node_modules/stylus/lib/parser.js create mode 100644 node_modules/stylus/lib/renderer.js create mode 100644 node_modules/stylus/lib/selector-parser.js create mode 100644 node_modules/stylus/lib/stack/frame.js create mode 100644 node_modules/stylus/lib/stack/index.js create mode 100644 node_modules/stylus/lib/stack/scope.js create mode 100644 node_modules/stylus/lib/stylus.js create mode 100644 node_modules/stylus/lib/token.js create mode 100644 node_modules/stylus/lib/units.js create mode 100644 node_modules/stylus/lib/utils.js create mode 100644 node_modules/stylus/lib/visitor/compiler.js create mode 100644 node_modules/stylus/lib/visitor/deps-resolver.js create mode 100644 node_modules/stylus/lib/visitor/evaluator.js create mode 100644 node_modules/stylus/lib/visitor/index.js create mode 100644 node_modules/stylus/lib/visitor/normalizer.js create mode 100644 node_modules/stylus/lib/visitor/sourcemapper.js create mode 100644 node_modules/stylus/node_modules/sax/LICENSE create mode 100644 node_modules/stylus/node_modules/sax/README.md create mode 100644 node_modules/stylus/node_modules/sax/lib/sax.js create mode 100644 node_modules/stylus/node_modules/sax/package.json create mode 100644 node_modules/stylus/node_modules/source-map/LICENSE create mode 100644 node_modules/stylus/node_modules/source-map/README.md create mode 100644 node_modules/stylus/node_modules/source-map/dist/source-map.js create mode 100644 node_modules/stylus/node_modules/source-map/lib/array-set.js create mode 100644 node_modules/stylus/node_modules/source-map/lib/base64-vlq.js create mode 100644 node_modules/stylus/node_modules/source-map/lib/base64.js create mode 100644 node_modules/stylus/node_modules/source-map/lib/binary-search.js create mode 100644 node_modules/stylus/node_modules/source-map/lib/mapping-list.js create mode 100644 node_modules/stylus/node_modules/source-map/lib/mappings.wasm create mode 100644 node_modules/stylus/node_modules/source-map/lib/read-wasm.js create mode 100644 node_modules/stylus/node_modules/source-map/lib/source-map-consumer.js create mode 100644 node_modules/stylus/node_modules/source-map/lib/source-map-generator.js create mode 100644 node_modules/stylus/node_modules/source-map/lib/source-node.js create mode 100644 node_modules/stylus/node_modules/source-map/lib/util.js create mode 100644 node_modules/stylus/node_modules/source-map/lib/wasm.js create mode 100644 node_modules/stylus/node_modules/source-map/package.json create mode 100644 node_modules/stylus/node_modules/source-map/source-map.d.ts create mode 100644 node_modules/stylus/node_modules/source-map/source-map.js create mode 100644 node_modules/stylus/package.json create mode 100644 node_modules/supports-color/browser.js create mode 100644 node_modules/supports-color/index.js create mode 100644 node_modules/supports-color/license create mode 100644 node_modules/supports-color/package.json create mode 100644 node_modules/supports-color/readme.md create mode 100644 node_modules/supports-preserve-symlinks-flag/.eslintrc create mode 100644 node_modules/supports-preserve-symlinks-flag/.github/FUNDING.yml create mode 100644 node_modules/supports-preserve-symlinks-flag/.nycrc create mode 100644 node_modules/supports-preserve-symlinks-flag/CHANGELOG.md create mode 100644 node_modules/supports-preserve-symlinks-flag/LICENSE create mode 100644 node_modules/supports-preserve-symlinks-flag/README.md create mode 100644 node_modules/supports-preserve-symlinks-flag/browser.js create mode 100644 node_modules/supports-preserve-symlinks-flag/index.js create mode 100644 node_modules/supports-preserve-symlinks-flag/package.json create mode 100644 node_modules/supports-preserve-symlinks-flag/test/index.js create mode 100644 node_modules/tmp/CHANGELOG.md create mode 100644 node_modules/tmp/LICENSE create mode 100644 node_modules/tmp/README.md create mode 100644 node_modules/tmp/lib/tmp.js create mode 100644 node_modules/tmp/package.json create mode 100644 node_modules/to-object-path/LICENSE create mode 100644 node_modules/to-object-path/README.md create mode 100644 node_modules/to-object-path/index.js create mode 100644 node_modules/to-object-path/package.json 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/tslib/CopyrightNotice.txt create mode 100644 node_modules/tslib/LICENSE.txt create mode 100644 node_modules/tslib/README.md create mode 100644 node_modules/tslib/SECURITY.md create mode 100644 node_modules/tslib/modules/index.d.ts create mode 100644 node_modules/tslib/modules/index.js create mode 100644 node_modules/tslib/modules/package.json create mode 100644 node_modules/tslib/package.json create mode 100644 node_modules/tslib/tslib.d.ts create mode 100644 node_modules/tslib/tslib.es6.html create mode 100644 node_modules/tslib/tslib.es6.js create mode 100644 node_modules/tslib/tslib.es6.mjs create mode 100644 node_modules/tslib/tslib.html create mode 100644 node_modules/tslib/tslib.js create mode 100644 node_modules/uglify-js/LICENSE create mode 100644 node_modules/uglify-js/README.md create mode 100644 node_modules/uglify-js/bin/uglifyjs create mode 100644 node_modules/uglify-js/lib/ast.js create mode 100644 node_modules/uglify-js/lib/compress.js create mode 100644 node_modules/uglify-js/lib/minify.js create mode 100644 node_modules/uglify-js/lib/mozilla-ast.js create mode 100644 node_modules/uglify-js/lib/output.js create mode 100644 node_modules/uglify-js/lib/parse.js create mode 100644 node_modules/uglify-js/lib/propmangle.js create mode 100644 node_modules/uglify-js/lib/scope.js create mode 100644 node_modules/uglify-js/lib/sourcemap.js create mode 100644 node_modules/uglify-js/lib/transform.js create mode 100644 node_modules/uglify-js/lib/utils.js create mode 100644 node_modules/uglify-js/package.json create mode 100644 node_modules/uglify-js/tools/domprops.html create mode 100644 node_modules/uglify-js/tools/domprops.json create mode 100644 node_modules/uglify-js/tools/exports.js create mode 100644 node_modules/uglify-js/tools/node.js create mode 100644 node_modules/uglify-js/tools/tty.js 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 100644 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 100644 node_modules/util-deprecate/History.md create mode 100644 node_modules/util-deprecate/LICENSE create mode 100644 node_modules/util-deprecate/README.md create mode 100644 node_modules/util-deprecate/browser.js create mode 100644 node_modules/util-deprecate/node.js create mode 100644 node_modules/util-deprecate/package.json create mode 100644 node_modules/warning/CHANGELOG.md create mode 100644 node_modules/warning/LICENSE.md create mode 100644 node_modules/warning/README.md create mode 100644 node_modules/warning/package.json create mode 100644 node_modules/warning/warning.js create mode 100644 node_modules/which/CHANGELOG.md create mode 100644 node_modules/which/LICENSE create mode 100644 node_modules/which/README.md create mode 100644 node_modules/which/bin/which create mode 100644 node_modules/which/package.json create mode 100644 node_modules/which/which.js create mode 100644 node_modules/wrappy/LICENSE create mode 100644 node_modules/wrappy/README.md create mode 100644 node_modules/wrappy/package.json create mode 100644 node_modules/wrappy/wrappy.js diff --git a/.gitignore b/.gitignore index 5280ec6..243bdf1 100644 --- a/.gitignore +++ b/.gitignore @@ -44,7 +44,7 @@ bower_components build/Release # Dependency directories -node_modules/ +# node_modules/ jspm_packages/ # Snowpack dependency directory (https://snowpack.dev/) diff --git a/install.ps1 b/install.ps1 new file mode 100644 index 0000000..27554e2 --- /dev/null +++ b/install.ps1 @@ -0,0 +1,204 @@ +$ErrorActionPreference = 'Stop' +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 + +#region Variables +$spicetifyFolderPath = "$env:LOCALAPPDATA\spicetify" +$spicetifyOldFolderPath = "$HOME\spicetify-cli" +#endregion Variables + +#region Functions +function Write-Success { + [CmdletBinding()] + param () + process { + Write-Host -Object ' > OK' -ForegroundColor 'Green' + } +} + +function Write-Unsuccess { + [CmdletBinding()] + param () + process { + Write-Host -Object ' > ERROR' -ForegroundColor 'Red' + } +} + +function Test-Admin { + [CmdletBinding()] + param () + begin { + Write-Host -Object "Checking if the script is not being run as administrator..." -NoNewline + } + process { + $currentUser = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent()) + -not $currentUser.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) + } +} + +function Test-PowerShellVersion { + [CmdletBinding()] + param () + begin { + $PSMinVersion = [version]'5.1' + } + process { + Write-Host -Object 'Checking if your PowerShell version is compatible...' -NoNewline + $PSVersionTable.PSVersion -ge $PSMinVersion + } +} + +function Move-OldSpicetifyFolder { + [CmdletBinding()] + param () + process { + if (Test-Path -Path $spicetifyOldFolderPath) { + Write-Host -Object 'Moving the old spicetify folder...' -NoNewline + Copy-Item -Path "$spicetifyOldFolderPath\*" -Destination $spicetifyFolderPath -Recurse -Force + Remove-Item -Path $spicetifyOldFolderPath -Recurse -Force + Write-Success + } + } +} + +function Get-Spicetify { + [CmdletBinding()] + param () + begin { + if ($env:PROCESSOR_ARCHITECTURE -eq 'AMD64') { + $architecture = 'x64' + } + elseif ($env:PROCESSOR_ARCHITECTURE -eq 'ARM64') { + $architecture = 'arm64' + } + else { + $architecture = 'x32' + } + if ($v) { + if ($v -match '^\d+\.\d+\.\d+$') { + $targetVersion = $v + } + else { + Write-Warning -Message "You have spicefied an invalid spicetify version: $v `nThe version must be in the following format: 1.2.3" + Pause + exit + } + } + else { + Write-Host -Object 'Fetching the latest spicetify version...' -NoNewline + $latestRelease = Invoke-RestMethod -Uri 'https://api.github.com/repos/spicetify/cli/releases/latest' + $targetVersion = $latestRelease.tag_name -replace 'v', '' + Write-Success + } + $archivePath = [System.IO.Path]::Combine([System.IO.Path]::GetTempPath(), "spicetify.zip") + } + process { + Write-Host -Object "Downloading spicetify v$targetVersion..." -NoNewline + $Parameters = @{ + Uri = "https://github.com/spicetify/cli/releases/download/v$targetVersion/spicetify-$targetVersion-windows-$architecture.zip" + UseBasicParsin = $true + OutFile = $archivePath + } + Invoke-WebRequest @Parameters + Write-Success + } + end { + $archivePath + } +} + +function Add-SpicetifyToPath { + [CmdletBinding()] + param () + begin { + Write-Host -Object 'Making spicetify available in the PATH...' -NoNewline + $user = [EnvironmentVariableTarget]::User + $path = [Environment]::GetEnvironmentVariable('PATH', $user) + } + process { + $path = $path -replace "$([regex]::Escape($spicetifyOldFolderPath))\\*;*", '' + if ($path -notlike "*$spicetifyFolderPath*") { + $path = "$path;$spicetifyFolderPath" + } + } + end { + [Environment]::SetEnvironmentVariable('PATH', $path, $user) + $env:PATH = $path + Write-Success + } +} + +function Install-Spicetify { + [CmdletBinding()] + param () + begin { + Write-Host -Object 'Installing spicetify...' + } + process { + $archivePath = Get-Spicetify + Write-Host -Object 'Extracting spicetify...' -NoNewline + Expand-Archive -Path $archivePath -DestinationPath $spicetifyFolderPath -Force + Write-Success + Add-SpicetifyToPath + } + end { + Remove-Item -Path $archivePath -Force -ErrorAction 'SilentlyContinue' + Write-Host -Object 'spicetify was successfully installed!' -ForegroundColor 'Green' + } +} +#endregion Functions + +#region Main +#region Checks +if (-not (Test-PowerShellVersion)) { + Write-Unsuccess + Write-Warning -Message 'PowerShell 5.1 or higher is required to run this script' + Write-Warning -Message "You are running PowerShell $($PSVersionTable.PSVersion)" + Write-Host -Object 'PowerShell 5.1 install guide:' + Write-Host -Object 'https://learn.microsoft.com/skypeforbusiness/set-up-your-computer-for-windows-powershell/download-and-install-windows-powershell-5-1' + Write-Host -Object 'PowerShell 7 install guide:' + Write-Host -Object 'https://learn.microsoft.com/powershell/scripting/install/installing-powershell-on-windows' + Pause + exit +} +else { + Write-Success +} +if (-not (Test-Admin)) { + Write-Unsuccess + Write-Warning -Message "The script was run as administrator. This can result in problems with the installation process or unexpected behavior. Do not continue if you do not know what you are doing." + $Host.UI.RawUI.Flushinputbuffer() + $choices = [System.Management.Automation.Host.ChoiceDescription[]] @( + (New-Object System.Management.Automation.Host.ChoiceDescription '&Yes', 'Abort installation.'), + (New-Object System.Management.Automation.Host.ChoiceDescription '&No', 'Resume installation.') + ) + $choice = $Host.UI.PromptForChoice('', 'Do you want to abort the installation process?', $choices, 0) + if ($choice -eq 0) { + Write-Host -Object 'spicetify installation aborted' -ForegroundColor 'Yellow' + Pause + exit + } +} +else { + Write-Success +} +#endregion Checks + +#region Spicetify +Move-OldSpicetifyFolder +Install-Spicetify +Write-Host -Object "`nRun" -NoNewline +Write-Host -Object ' spicetify -h ' -NoNewline -ForegroundColor 'Cyan' +Write-Host -Object 'to get started' +#endregion Spicetify + +$path = spicetify -c + +$path = $path.Replace('Roaming', 'Local') +$path = $path.Replace('config-xpui.ini', 'CustomApps\Enhancify') + +echo $path + +git clone https://github.com/rrk0804/Enhancify.git $path + +spicetify config custom_apps Enhancify +spicetify apply diff --git a/node_modules/.bin/autoprefixer b/node_modules/.bin/autoprefixer new file mode 100644 index 0000000..c6bc975 --- /dev/null +++ b/node_modules/.bin/autoprefixer @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../autoprefixer/bin/autoprefixer" "$@" +else + exec node "$basedir/../autoprefixer/bin/autoprefixer" "$@" +fi diff --git a/node_modules/.bin/autoprefixer.cmd b/node_modules/.bin/autoprefixer.cmd new file mode 100644 index 0000000..7ed417d --- /dev/null +++ b/node_modules/.bin/autoprefixer.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\autoprefixer\bin\autoprefixer" %* diff --git a/node_modules/.bin/autoprefixer.ps1 b/node_modules/.bin/autoprefixer.ps1 new file mode 100644 index 0000000..b0f0b6f --- /dev/null +++ b/node_modules/.bin/autoprefixer.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args + } else { + & "$basedir/node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args + } else { + & "node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/browserslist b/node_modules/.bin/browserslist new file mode 100644 index 0000000..68dd69d --- /dev/null +++ b/node_modules/.bin/browserslist @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../browserslist/cli.js" "$@" +else + exec node "$basedir/../browserslist/cli.js" "$@" +fi diff --git a/node_modules/.bin/browserslist.cmd b/node_modules/.bin/browserslist.cmd new file mode 100644 index 0000000..f93c251 --- /dev/null +++ b/node_modules/.bin/browserslist.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\browserslist\cli.js" %* diff --git a/node_modules/.bin/browserslist.ps1 b/node_modules/.bin/browserslist.ps1 new file mode 100644 index 0000000..01e10a0 --- /dev/null +++ b/node_modules/.bin/browserslist.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../browserslist/cli.js" $args + } else { + & "$basedir/node$exe" "$basedir/../browserslist/cli.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../browserslist/cli.js" $args + } else { + & "node$exe" "$basedir/../browserslist/cli.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/cssesc b/node_modules/.bin/cssesc new file mode 100644 index 0000000..c9b5214 --- /dev/null +++ b/node_modules/.bin/cssesc @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../cssesc/bin/cssesc" "$@" +else + exec node "$basedir/../cssesc/bin/cssesc" "$@" +fi diff --git a/node_modules/.bin/cssesc.cmd b/node_modules/.bin/cssesc.cmd new file mode 100644 index 0000000..b560b42 --- /dev/null +++ b/node_modules/.bin/cssesc.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\cssesc\bin\cssesc" %* diff --git a/node_modules/.bin/cssesc.ps1 b/node_modules/.bin/cssesc.ps1 new file mode 100644 index 0000000..480aa17 --- /dev/null +++ b/node_modules/.bin/cssesc.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../cssesc/bin/cssesc" $args + } else { + & "$basedir/node$exe" "$basedir/../cssesc/bin/cssesc" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../cssesc/bin/cssesc" $args + } else { + & "node$exe" "$basedir/../cssesc/bin/cssesc" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/errno b/node_modules/.bin/errno new file mode 100644 index 0000000..c3be4fc --- /dev/null +++ b/node_modules/.bin/errno @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../errno/cli.js" "$@" +else + exec node "$basedir/../errno/cli.js" "$@" +fi diff --git a/node_modules/.bin/errno.cmd b/node_modules/.bin/errno.cmd new file mode 100644 index 0000000..609af3b --- /dev/null +++ b/node_modules/.bin/errno.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\errno\cli.js" %* diff --git a/node_modules/.bin/errno.ps1 b/node_modules/.bin/errno.ps1 new file mode 100644 index 0000000..2b2d86f --- /dev/null +++ b/node_modules/.bin/errno.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../errno/cli.js" $args + } else { + & "$basedir/node$exe" "$basedir/../errno/cli.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../errno/cli.js" $args + } else { + & "node$exe" "$basedir/../errno/cli.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/esbuild b/node_modules/.bin/esbuild new file mode 100644 index 0000000..26bef54 --- /dev/null +++ b/node_modules/.bin/esbuild @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../esbuild/bin/esbuild" "$@" +else + exec node "$basedir/../esbuild/bin/esbuild" "$@" +fi diff --git a/node_modules/.bin/esbuild.cmd b/node_modules/.bin/esbuild.cmd new file mode 100644 index 0000000..cc920c5 --- /dev/null +++ b/node_modules/.bin/esbuild.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esbuild\bin\esbuild" %* diff --git a/node_modules/.bin/esbuild.ps1 b/node_modules/.bin/esbuild.ps1 new file mode 100644 index 0000000..81ffbf9 --- /dev/null +++ b/node_modules/.bin/esbuild.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../esbuild/bin/esbuild" $args + } else { + & "$basedir/node$exe" "$basedir/../esbuild/bin/esbuild" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../esbuild/bin/esbuild" $args + } else { + & "node$exe" "$basedir/../esbuild/bin/esbuild" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/image-size b/node_modules/.bin/image-size new file mode 100644 index 0000000..ae4ce4c --- /dev/null +++ b/node_modules/.bin/image-size @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../image-size/bin/image-size.js" "$@" +else + exec node "$basedir/../image-size/bin/image-size.js" "$@" +fi diff --git a/node_modules/.bin/image-size.cmd b/node_modules/.bin/image-size.cmd new file mode 100644 index 0000000..5ebeb0e --- /dev/null +++ b/node_modules/.bin/image-size.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\image-size\bin\image-size.js" %* diff --git a/node_modules/.bin/image-size.ps1 b/node_modules/.bin/image-size.ps1 new file mode 100644 index 0000000..606184a --- /dev/null +++ b/node_modules/.bin/image-size.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../image-size/bin/image-size.js" $args + } else { + & "$basedir/node$exe" "$basedir/../image-size/bin/image-size.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../image-size/bin/image-size.js" $args + } else { + & "node$exe" "$basedir/../image-size/bin/image-size.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/lessc b/node_modules/.bin/lessc new file mode 100644 index 0000000..48c9279 --- /dev/null +++ b/node_modules/.bin/lessc @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../less/bin/lessc" "$@" +else + exec node "$basedir/../less/bin/lessc" "$@" +fi diff --git a/node_modules/.bin/lessc.cmd b/node_modules/.bin/lessc.cmd new file mode 100644 index 0000000..d7365ac --- /dev/null +++ b/node_modules/.bin/lessc.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\less\bin\lessc" %* diff --git a/node_modules/.bin/lessc.ps1 b/node_modules/.bin/lessc.ps1 new file mode 100644 index 0000000..780aae5 --- /dev/null +++ b/node_modules/.bin/lessc.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../less/bin/lessc" $args + } else { + & "$basedir/node$exe" "$basedir/../less/bin/lessc" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../less/bin/lessc" $args + } else { + & "node$exe" "$basedir/../less/bin/lessc" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/loose-envify b/node_modules/.bin/loose-envify new file mode 100644 index 0000000..60598cb --- /dev/null +++ b/node_modules/.bin/loose-envify @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../loose-envify/cli.js" "$@" +else + exec node "$basedir/../loose-envify/cli.js" "$@" +fi diff --git a/node_modules/.bin/loose-envify.cmd b/node_modules/.bin/loose-envify.cmd new file mode 100644 index 0000000..599576f --- /dev/null +++ b/node_modules/.bin/loose-envify.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\loose-envify\cli.js" %* diff --git a/node_modules/.bin/loose-envify.ps1 b/node_modules/.bin/loose-envify.ps1 new file mode 100644 index 0000000..eb866fc --- /dev/null +++ b/node_modules/.bin/loose-envify.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../loose-envify/cli.js" $args + } else { + & "$basedir/node$exe" "$basedir/../loose-envify/cli.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../loose-envify/cli.js" $args + } else { + & "node$exe" "$basedir/../loose-envify/cli.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/mime b/node_modules/.bin/mime new file mode 100644 index 0000000..0a62a1b --- /dev/null +++ b/node_modules/.bin/mime @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../mime/cli.js" "$@" +else + exec node "$basedir/../mime/cli.js" "$@" +fi diff --git a/node_modules/.bin/mime.cmd b/node_modules/.bin/mime.cmd new file mode 100644 index 0000000..54491f1 --- /dev/null +++ b/node_modules/.bin/mime.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\cli.js" %* diff --git a/node_modules/.bin/mime.ps1 b/node_modules/.bin/mime.ps1 new file mode 100644 index 0000000..2222f40 --- /dev/null +++ b/node_modules/.bin/mime.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../mime/cli.js" $args + } else { + & "$basedir/node$exe" "$basedir/../mime/cli.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../mime/cli.js" $args + } else { + & "node$exe" "$basedir/../mime/cli.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/nanoid b/node_modules/.bin/nanoid new file mode 100644 index 0000000..23254eb --- /dev/null +++ b/node_modules/.bin/nanoid @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../nanoid/bin/nanoid.cjs" "$@" +else + exec node "$basedir/../nanoid/bin/nanoid.cjs" "$@" +fi diff --git a/node_modules/.bin/nanoid.cmd b/node_modules/.bin/nanoid.cmd new file mode 100644 index 0000000..9c40107 --- /dev/null +++ b/node_modules/.bin/nanoid.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nanoid\bin\nanoid.cjs" %* diff --git a/node_modules/.bin/nanoid.ps1 b/node_modules/.bin/nanoid.ps1 new file mode 100644 index 0000000..d8a4d7a --- /dev/null +++ b/node_modules/.bin/nanoid.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args + } else { + & "$basedir/node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args + } else { + & "node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/needle b/node_modules/.bin/needle new file mode 100644 index 0000000..c7ed0fe --- /dev/null +++ b/node_modules/.bin/needle @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../needle/bin/needle" "$@" +else + exec node "$basedir/../needle/bin/needle" "$@" +fi diff --git a/node_modules/.bin/needle.cmd b/node_modules/.bin/needle.cmd new file mode 100644 index 0000000..7b711f9 --- /dev/null +++ b/node_modules/.bin/needle.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\needle\bin\needle" %* diff --git a/node_modules/.bin/needle.ps1 b/node_modules/.bin/needle.ps1 new file mode 100644 index 0000000..39c95ac --- /dev/null +++ b/node_modules/.bin/needle.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../needle/bin/needle" $args + } else { + & "$basedir/node$exe" "$basedir/../needle/bin/needle" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../needle/bin/needle" $args + } else { + & "node$exe" "$basedir/../needle/bin/needle" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/resolve b/node_modules/.bin/resolve new file mode 100644 index 0000000..757d454 --- /dev/null +++ b/node_modules/.bin/resolve @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../resolve/bin/resolve" "$@" +else + exec node "$basedir/../resolve/bin/resolve" "$@" +fi diff --git a/node_modules/.bin/resolve.cmd b/node_modules/.bin/resolve.cmd new file mode 100644 index 0000000..1a017c4 --- /dev/null +++ b/node_modules/.bin/resolve.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\resolve\bin\resolve" %* diff --git a/node_modules/.bin/resolve.ps1 b/node_modules/.bin/resolve.ps1 new file mode 100644 index 0000000..f22b2d3 --- /dev/null +++ b/node_modules/.bin/resolve.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../resolve/bin/resolve" $args + } else { + & "$basedir/node$exe" "$basedir/../resolve/bin/resolve" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../resolve/bin/resolve" $args + } else { + & "node$exe" "$basedir/../resolve/bin/resolve" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/sass b/node_modules/.bin/sass new file mode 100644 index 0000000..44ba6e9 --- /dev/null +++ b/node_modules/.bin/sass @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../sass/sass.js" "$@" +else + exec node "$basedir/../sass/sass.js" "$@" +fi diff --git a/node_modules/.bin/sass.cmd b/node_modules/.bin/sass.cmd new file mode 100644 index 0000000..0cf95f6 --- /dev/null +++ b/node_modules/.bin/sass.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\sass\sass.js" %* diff --git a/node_modules/.bin/sass.ps1 b/node_modules/.bin/sass.ps1 new file mode 100644 index 0000000..715ffd5 --- /dev/null +++ b/node_modules/.bin/sass.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../sass/sass.js" $args + } else { + & "$basedir/node$exe" "$basedir/../sass/sass.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../sass/sass.js" $args + } else { + & "node$exe" "$basedir/../sass/sass.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/semver b/node_modules/.bin/semver new file mode 100644 index 0000000..86cee84 --- /dev/null +++ b/node_modules/.bin/semver @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../semver/bin/semver" "$@" +else + exec node "$basedir/../semver/bin/semver" "$@" +fi diff --git a/node_modules/.bin/semver.cmd b/node_modules/.bin/semver.cmd new file mode 100644 index 0000000..22d9286 --- /dev/null +++ b/node_modules/.bin/semver.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver" %* diff --git a/node_modules/.bin/semver.ps1 b/node_modules/.bin/semver.ps1 new file mode 100644 index 0000000..98c1b09 --- /dev/null +++ b/node_modules/.bin/semver.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../semver/bin/semver" $args + } else { + & "$basedir/node$exe" "$basedir/../semver/bin/semver" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../semver/bin/semver" $args + } else { + & "node$exe" "$basedir/../semver/bin/semver" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/spicetify-creator b/node_modules/.bin/spicetify-creator new file mode 100644 index 0000000..ce5096f --- /dev/null +++ b/node_modules/.bin/spicetify-creator @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../spicetify-creator/dist/index.js" "$@" +else + exec node "$basedir/../spicetify-creator/dist/index.js" "$@" +fi diff --git a/node_modules/.bin/spicetify-creator.cmd b/node_modules/.bin/spicetify-creator.cmd new file mode 100644 index 0000000..2185a5c --- /dev/null +++ b/node_modules/.bin/spicetify-creator.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\spicetify-creator\dist\index.js" %* diff --git a/node_modules/.bin/spicetify-creator.ps1 b/node_modules/.bin/spicetify-creator.ps1 new file mode 100644 index 0000000..26810a4 --- /dev/null +++ b/node_modules/.bin/spicetify-creator.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../spicetify-creator/dist/index.js" $args + } else { + & "$basedir/node$exe" "$basedir/../spicetify-creator/dist/index.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../spicetify-creator/dist/index.js" $args + } else { + & "node$exe" "$basedir/../spicetify-creator/dist/index.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/stylus b/node_modules/.bin/stylus new file mode 100644 index 0000000..cf7e18f --- /dev/null +++ b/node_modules/.bin/stylus @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../stylus/bin/stylus" "$@" +else + exec node "$basedir/../stylus/bin/stylus" "$@" +fi diff --git a/node_modules/.bin/stylus.cmd b/node_modules/.bin/stylus.cmd new file mode 100644 index 0000000..19d7443 --- /dev/null +++ b/node_modules/.bin/stylus.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\stylus\bin\stylus" %* diff --git a/node_modules/.bin/stylus.ps1 b/node_modules/.bin/stylus.ps1 new file mode 100644 index 0000000..b793a8b --- /dev/null +++ b/node_modules/.bin/stylus.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../stylus/bin/stylus" $args + } else { + & "$basedir/node$exe" "$basedir/../stylus/bin/stylus" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../stylus/bin/stylus" $args + } else { + & "node$exe" "$basedir/../stylus/bin/stylus" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/uglifyjs b/node_modules/.bin/uglifyjs new file mode 100644 index 0000000..1d0ff19 --- /dev/null +++ b/node_modules/.bin/uglifyjs @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../uglify-js/bin/uglifyjs" "$@" +else + exec node "$basedir/../uglify-js/bin/uglifyjs" "$@" +fi diff --git a/node_modules/.bin/uglifyjs.cmd b/node_modules/.bin/uglifyjs.cmd new file mode 100644 index 0000000..17a9df1 --- /dev/null +++ b/node_modules/.bin/uglifyjs.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\uglify-js\bin\uglifyjs" %* diff --git a/node_modules/.bin/uglifyjs.ps1 b/node_modules/.bin/uglifyjs.ps1 new file mode 100644 index 0000000..5e0bc56 --- /dev/null +++ b/node_modules/.bin/uglifyjs.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../uglify-js/bin/uglifyjs" $args + } else { + & "$basedir/node$exe" "$basedir/../uglify-js/bin/uglifyjs" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../uglify-js/bin/uglifyjs" $args + } else { + & "node$exe" "$basedir/../uglify-js/bin/uglifyjs" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/update-browserslist-db b/node_modules/.bin/update-browserslist-db new file mode 100644 index 0000000..8cde7e3 --- /dev/null +++ b/node_modules/.bin/update-browserslist-db @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../update-browserslist-db/cli.js" "$@" +else + exec node "$basedir/../update-browserslist-db/cli.js" "$@" +fi diff --git a/node_modules/.bin/update-browserslist-db.cmd b/node_modules/.bin/update-browserslist-db.cmd new file mode 100644 index 0000000..2e14905 --- /dev/null +++ b/node_modules/.bin/update-browserslist-db.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\update-browserslist-db\cli.js" %* diff --git a/node_modules/.bin/update-browserslist-db.ps1 b/node_modules/.bin/update-browserslist-db.ps1 new file mode 100644 index 0000000..7abdf26 --- /dev/null +++ b/node_modules/.bin/update-browserslist-db.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../update-browserslist-db/cli.js" $args + } else { + & "$basedir/node$exe" "$basedir/../update-browserslist-db/cli.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../update-browserslist-db/cli.js" $args + } else { + & "node$exe" "$basedir/../update-browserslist-db/cli.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/which b/node_modules/.bin/which new file mode 100644 index 0000000..c51820f --- /dev/null +++ b/node_modules/.bin/which @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../which/bin/which" "$@" +else + exec node "$basedir/../which/bin/which" "$@" +fi diff --git a/node_modules/.bin/which.cmd b/node_modules/.bin/which.cmd new file mode 100644 index 0000000..ead37d6 --- /dev/null +++ b/node_modules/.bin/which.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\which\bin\which" %* diff --git a/node_modules/.bin/which.ps1 b/node_modules/.bin/which.ps1 new file mode 100644 index 0000000..1437a3b --- /dev/null +++ b/node_modules/.bin/which.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../which/bin/which" $args + } else { + & "$basedir/node$exe" "$basedir/../which/bin/which" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../which/bin/which" $args + } else { + & "node$exe" "$basedir/../which/bin/which" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..61c36c6 --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,1738 @@ +{ + "name": "test-app", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "node_modules/@adobe/css-tools": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", + "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==", + "dev": true + }, + "node_modules/@spotify/web-api-ts-sdk": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@spotify/web-api-ts-sdk/-/web-api-ts-sdk-1.2.0.tgz", + "integrity": "sha512-JUaebva3Ohwo5I5tuTqyW/FKGOMbb40YevJMySAOINRxP7qQ/AMjBzfJx0zeO6yS+wAPfQSoGNsZaUggHw8vsA==" + }, + "node_modules/@types/jquery": { + "version": "3.5.31", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.31.tgz", + "integrity": "sha512-rf/iB+cPJ/YZfMwr+FVuQbm7IaWC4y3FVYfVDxRGqmUCFjjPII0HWaP0vTPJGp6m4o13AXySCcMbWfrWtBFAKw==", + "license": "MIT", + "dependencies": { + "@types/sizzle": "*" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.3.4", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.4.tgz", + "integrity": "sha512-J7W30FTdfCxDDjmfRM+/JqLHBIyl7xUIp9kwK637FGmY7+mkSFSe6L4jpZzhj5QMfLssSDP4/i75AKkrdC7/Jw==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-modal": { + "version": "3.16.3", + "resolved": "https://registry.npmjs.org/@types/react-modal/-/react-modal-3.16.3.tgz", + "integrity": "sha512-xXuGavyEGaFQDgBv4UVm8/ZsG+qxeQ7f77yNrW3n+1J6XAstUy5rYHeIHPh1KzsGc6IkCIdu6lQ2xWzu1jBTLg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/sizzle": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", + "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==", + "license": "MIT" + }, + "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/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "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.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001653", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001653.tgz", + "integrity": "sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==", + "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/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "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" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "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/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true + }, + "node_modules/cwd": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz", + "integrity": "sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA==", + "dev": true, + "dependencies": { + "find-pkg": "^0.1.2", + "fs-exists-sync": "^0.1.0" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", + "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/esbuild": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", + "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/linux-loong64": "0.14.54", + "esbuild-android-64": "0.14.54", + "esbuild-android-arm64": "0.14.54", + "esbuild-darwin-64": "0.14.54", + "esbuild-darwin-arm64": "0.14.54", + "esbuild-freebsd-64": "0.14.54", + "esbuild-freebsd-arm64": "0.14.54", + "esbuild-linux-32": "0.14.54", + "esbuild-linux-64": "0.14.54", + "esbuild-linux-arm": "0.14.54", + "esbuild-linux-arm64": "0.14.54", + "esbuild-linux-mips64le": "0.14.54", + "esbuild-linux-ppc64le": "0.14.54", + "esbuild-linux-riscv64": "0.14.54", + "esbuild-linux-s390x": "0.14.54", + "esbuild-netbsd-64": "0.14.54", + "esbuild-openbsd-64": "0.14.54", + "esbuild-sunos-64": "0.14.54", + "esbuild-windows-32": "0.14.54", + "esbuild-windows-64": "0.14.54", + "esbuild-windows-arm64": "0.14.54" + } + }, + "node_modules/esbuild-plugin-external-global": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esbuild-plugin-external-global/-/esbuild-plugin-external-global-1.0.1.tgz", + "integrity": "sha512-NDzYHRoShpvLqNcrgV8ZQh61sMIFAry5KLTQV83BPG5iTXCCu7h72SCfJ97bW0GqtuqDD/1aqLbKinI/rNgUsg==", + "dev": true + }, + "node_modules/esbuild-plugin-postcss2": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/esbuild-plugin-postcss2/-/esbuild-plugin-postcss2-0.1.1.tgz", + "integrity": "sha512-BMHnOTfZo+ghrzYnBtcXlHuMpOEwfTFarhGG4o6mivzPZGUXzeMn/hdFhtRpmCKzUvXsaxnZ3N72xA8CwdtZ3w==", + "dev": true, + "dependencies": { + "autoprefixer": "^10.2.5", + "fs-extra": "^9.1.0", + "less": "^4.x", + "postcss": "8.x", + "postcss-modules": "^4.0.0", + "resolve-file": "^0.3.0", + "sass": "^1.x", + "stylus": "^0.x", + "tmp": "^0.2.1" + }, + "peerDependencies": { + "less": "^4.x", + "postcss": "8.x", + "sass": "^1.x", + "stylus": "^0.x" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", + "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==" + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-file-up": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz", + "integrity": "sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==", + "dev": true, + "dependencies": { + "fs-exists-sync": "^0.1.0", + "resolve-dir": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-pkg": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz", + "integrity": "sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==", + "dev": true, + "dependencies": { + "find-file-up": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs-exists-sync": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", + "integrity": "sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generic-names": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-4.0.0.tgz", + "integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==", + "dev": true, + "dependencies": { + "loader-utils": "^3.2.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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/global-modules": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", + "integrity": "sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==", + "dev": true, + "dependencies": { + "global-prefix": "^0.1.4", + "is-windows": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", + "integrity": "sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.0", + "ini": "^1.3.4", + "is-windows": "^0.2.0", + "which": "^1.2.12" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==", + "dev": true + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "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-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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-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/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "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/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lazy-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", + "integrity": "sha512-7vp2Acd2+Kz4XkzxGxaB1FWOi8KjWIWsgdfD5MCb86DWvlLqhRPM+d6Pro3iNEL5VT9mstz5hKAlcd+QR6H3aA==", + "dev": true, + "dependencies": { + "set-getter": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "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/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "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/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "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": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss": { + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "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.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-modules": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.3.1.tgz", + "integrity": "sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==", + "dev": true, + "dependencies": { + "generic-names": "^4.0.0", + "icss-replace-symbols": "^1.1.0", + "lodash.camelcase": "^4.3.0", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "string-hash": "^1.1.1" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "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/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-circular-progressbar": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/react-circular-progressbar/-/react-circular-progressbar-2.1.0.tgz", + "integrity": "sha512-xp4THTrod4aLpGy68FX/k1Q3nzrfHUjUe5v6FsdwXBl3YVMwgeXYQKDrku7n/D6qsJA9CuunarAboC2xCiKs1g==", + "license": "MIT", + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "node_modules/react-modal": { + "version": "3.16.1", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.16.1.tgz", + "integrity": "sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg==", + "dependencies": { + "exenv": "^1.2.0", + "prop-types": "^15.7.2", + "react-lifecycles-compat": "^3.0.0", + "warning": "^4.0.3" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18", + "react-dom": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18" + } + }, + "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/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", + "integrity": "sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==", + "dev": true, + "dependencies": { + "expand-tilde": "^1.2.2", + "global-modules": "^0.2.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-dir/node_modules/expand-tilde": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", + "integrity": "sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-file": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/resolve-file/-/resolve-file-0.3.0.tgz", + "integrity": "sha512-9RXicAgDvLD272hZ3HwJv9MJUGxCBRRwwSBRdOGWgcO03MtC9UTGC6XG1VbS4T5MvDrb+tVZx2RhZ90uk3uczg==", + "dev": true, + "dependencies": { + "cwd": "^0.10.0", + "expand-tilde": "^2.0.2", + "extend-shallow": "^2.0.1", + "fs-exists-sync": "^0.1.0", + "homedir-polyfill": "^1.0.1", + "lazy-cache": "^2.0.2", + "resolve": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "optional": true + }, + "node_modules/sass": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", + "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true, + "optional": true + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/set-getter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.1.tgz", + "integrity": "sha512-9sVWOy+gthr+0G9DzqqLaYNA7+5OKkSmcqjL9cBpDEaZrr3ShQlyX2cZ/O/ozE41oxn/Tt0LGEM/w4Rub3A3gw==", + "dev": true, + "dependencies": { + "to-object-path": "^0.3.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spicetify-creator": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/spicetify-creator/-/spicetify-creator-1.0.17.tgz", + "integrity": "sha512-PajJIP0mi8UPErSeuqDf2wF4j8aHF4O+1S9JDIuY4wYKcHHWSvQ21FGnfyxzO6rS4/MkwMDzO6uERnrNAu+sHw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "clean-css": "^5.2.4", + "esbuild": "^0.14.13", + "esbuild-plugin-external-global": "^1.0.1", + "esbuild-plugin-postcss2": "0.1.1", + "glob": "^7.2.0", + "minimist": "^1.2.5", + "uglify-js": "^3.15.1" + }, + "bin": { + "spicetify-creator": "dist/index.js" + } + }, + "node_modules/string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==", + "dev": true + }, + "node_modules/stylus": { + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.63.0.tgz", + "integrity": "sha512-OMlgrTCPzE/ibtRMoeLVhOY0RcNuNWh0rhAVqeKnk/QwcuUKQbnqhZ1kg2vzD8VU/6h3FoPTq4RJPHgLBvX6Bw==", + "dev": true, + "dependencies": { + "@adobe/css-tools": "~4.3.3", + "debug": "^4.3.2", + "glob": "^7.1.6", + "sax": "~1.3.0", + "source-map": "^0.7.3" + }, + "bin": { + "stylus": "bin/stylus" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://opencollective.com/stylus" + } + }, + "node_modules/stylus/node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "dev": true + }, + "node_modules/stylus/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "dev": true + }, + "node_modules/uglify-js": { + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.2.tgz", + "integrity": "sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==", + "dev": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "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.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + } + } +} diff --git a/node_modules/@adobe/css-tools/LICENSE b/node_modules/@adobe/css-tools/LICENSE new file mode 100644 index 0000000..e63de06 --- /dev/null +++ b/node_modules/@adobe/css-tools/LICENSE @@ -0,0 +1,10 @@ +(The MIT License) + +Copyright (c) 2012 TJ Holowaychuk +Copyright (c) 2022 Jean-Philippe Zolesio + +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/@adobe/css-tools/Readme.md b/node_modules/@adobe/css-tools/Readme.md new file mode 100644 index 0000000..bb7ad47 --- /dev/null +++ b/node_modules/@adobe/css-tools/Readme.md @@ -0,0 +1,320 @@ +# @adobe/css-tools + +> This is a fork of the npm css package due to low maintenance + +CSS parser / stringifier. + +## Installation + + $ npm install @adobe/css-tools + +## Usage + +```js +import { parse, stringify } from '@adobe/css-tools' +let obj = parse('body { font-size: 12px; }', options); +let css = stringify(obj, options); +``` + +## API + +### parse(code, [options]) + +Accepts a CSS string and returns an AST `object`. + +`options`: + +- silent: silently fail on parse errors. +- source: the path to the file containing `css`. Makes errors and source + maps more helpful, by letting them know where code comes from. + +### stringify(object, [options]) + +Accepts an AST `object` (as `css.parse` produces) and returns a CSS string. + +`options`: + +- indent: the string used to indent the output. Defaults to two spaces. +- compress: omit comments and extraneous whitespace. + +### Example + +```js +var ast = parse('body { font-size: 12px; }', { source: 'source.css' }); + +var css = stringify(ast); +``` + +### Errors + +Errors thrown during parsing have the following properties: + +- message: `String`. The full error message with the source position. +- reason: `String`. The error message without position. +- filename: `String` or `undefined`. The value of `options.source` if + passed to `css.parse`. Otherwise `undefined`. +- line: `Integer`. +- column: `Integer`. +- source: `String`. The portion of code that couldn't be parsed. + +When parsing with the `silent` option, errors are listed in the +`parsingErrors` property of the [`stylesheet`](#stylesheet) node instead +of being thrown. + +If you create any errors in plugins such as in +[rework](https://github.com/reworkcss/rework), you __must__ set the same +properties for consistency. + +## AST + +Interactively explore the AST with . + +### Common properties + +All nodes have the following properties. + +#### position + +Information about the position in the source string that corresponds to +the node. + +`Object`: + +- start: `Object`: + - line: `Number`. + - column: `Number`. +- end: `Object`: + - line: `Number`. + - column: `Number`. +- source: `String` or `undefined`. The value of `options.source` if passed to + `css.parse`. Otherwise `undefined`. +- content: `String`. The full source string passed to `css.parse`. + +The line and column numbers are 1-based: The first line is 1 and the first +column of a line is 1 (not 0). + +The `position` property lets you know from which source file the node comes +from (if available), what that file contains, and what part of that file was +parsed into the node. + +#### type + +`String`. The possible values are the ones listed in the Types section below. + +#### parent + +A reference to the parent node, or `null` if the node has no parent. + +### Types + +The available values of `node.type` are listed below, as well as the available +properties of each node (other than the common properties listed above.) + +#### stylesheet + +The root node returned by `css.parse`. + +- stylesheet: `Object`: + - rules: `Array` of nodes with the types `rule`, `comment` and any of the + at-rule types. + - parsingErrors: `Array` of `Error`s. Errors collected during parsing when + option `silent` is true. + +#### rule + +- selectors: `Array` of `String`s. The list of selectors of the rule, split + on commas. Each selector is trimmed from whitespace and comments. +- declarations: `Array` of nodes with the types `declaration` and `comment`. + +#### declaration + +- property: `String`. The property name, trimmed from whitespace and + comments. May not be empty. +- value: `String`. The value of the property, trimmed from whitespace and + comments. Empty values are allowed. + +#### comment + +A rule-level or declaration-level comment. Comments inside selectors, +properties and values etc. are lost. + +- comment: `String`. The part between the starting `/*` and the ending `*/` + of the comment, including whitespace. + +#### charset + +The `@charset` at-rule. + +- charset: `String`. The part following `@charset `. + +#### custom-media + +The `@custom-media` at-rule. + +- name: `String`. The `--`-prefixed name. +- media: `String`. The part following the name. + +#### document + +The `@document` at-rule. + +- document: `String`. The part following `@document `. +- vendor: `String` or `undefined`. The vendor prefix in `@document`, or + `undefined` if there is none. +- rules: `Array` of nodes with the types `rule`, `comment` and any of the + at-rule types. + +#### font-face + +The `@font-face` at-rule. + +- declarations: `Array` of nodes with the types `declaration` and `comment`. + +#### host + +The `@host` at-rule. + +- rules: `Array` of nodes with the types `rule`, `comment` and any of the + at-rule types. + +#### import + +The `@import` at-rule. + +- import: `String`. The part following `@import `. + +#### keyframes + +The `@keyframes` at-rule. + +- name: `String`. The name of the keyframes rule. +- vendor: `String` or `undefined`. The vendor prefix in `@keyframes`, or + `undefined` if there is none. +- keyframes: `Array` of nodes with the types `keyframe` and `comment`. + +#### keyframe + +- values: `Array` of `String`s. The list of “selectors” of the keyframe rule, + split on commas. Each “selector” is trimmed from whitespace. +- declarations: `Array` of nodes with the types `declaration` and `comment`. + +#### media + +The `@media` at-rule. + +- media: `String`. The part following `@media `. +- rules: `Array` of nodes with the types `rule`, `comment` and any of the + at-rule types. + +#### namespace + +The `@namespace` at-rule. + +- namespace: `String`. The part following `@namespace `. + +#### page + +The `@page` at-rule. + +- selectors: `Array` of `String`s. The list of selectors of the rule, split + on commas. Each selector is trimmed from whitespace and comments. +- declarations: `Array` of nodes with the types `declaration` and `comment`. + +#### supports + +The `@supports` at-rule. + +- supports: `String`. The part following `@supports `. +- rules: `Array` of nodes with the types `rule`, `comment` and any of the + at-rule types. + +### container + +The `@container` at-rule. + +- conatiner: `String`. The part following `@container `. +- rules: `Array` of nodes with the types `rule`, `comment` and any of the + at-rule types. + +### layer + +The `@layer` at-rule. + +- layer: `String`. The part following `@layer `. +- rules: `Array` of nodes with the types `rule`, `comment` and any of the + at-rule types. This may be null, if the rule did not contain any. + +### Example + +CSS: + +```css +body { + background: #eee; + color: #888; +} +``` + +Parse tree: + +```json +{ + "type": "stylesheet", + "stylesheet": { + "rules": [ + { + "type": "rule", + "selectors": [ + "body" + ], + "declarations": [ + { + "type": "declaration", + "property": "background", + "value": "#eee", + "position": { + "start": { + "line": 2, + "column": 3 + }, + "end": { + "line": 2, + "column": 19 + } + } + }, + { + "type": "declaration", + "property": "color", + "value": "#888", + "position": { + "start": { + "line": 3, + "column": 3 + }, + "end": { + "line": 3, + "column": 14 + } + } + } + ], + "position": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 4, + "column": 2 + } + } + } + ] + } +} +``` + +## License + +MIT diff --git a/node_modules/@adobe/css-tools/dist/index.cjs b/node_modules/@adobe/css-tools/dist/index.cjs new file mode 100644 index 0000000..2a85f58 --- /dev/null +++ b/node_modules/@adobe/css-tools/dist/index.cjs @@ -0,0 +1,790 @@ + +function $parcel$defineInteropFlag(a) { + Object.defineProperty(a, '__esModule', {value: true, configurable: true}); +} + +function $parcel$exportWildcard(dest, source) { + Object.keys(source).forEach(function(key) { + if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) { + return; + } + + Object.defineProperty(dest, key, { + enumerable: true, + get: function get() { + return source[key]; + } + }); + }); + + return dest; +} + +function $parcel$export(e, n, v, s) { + Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true}); +} + +$parcel$defineInteropFlag(module.exports); + +$parcel$export(module.exports, "parse", () => $882b6d93070905b3$export$98e6a39c04603d36); +$parcel$export(module.exports, "stringify", () => $882b6d93070905b3$export$fac44ee5b035f737); +$parcel$export(module.exports, "default", () => $882b6d93070905b3$export$2e2bcd8739ae039); +var $cb508b9219b02820$exports = {}; + +$parcel$defineInteropFlag($cb508b9219b02820$exports); + +$parcel$export($cb508b9219b02820$exports, "default", () => $cb508b9219b02820$export$2e2bcd8739ae039); +class $cb508b9219b02820$export$2e2bcd8739ae039 extends Error { + constructor(filename, msg, lineno, column, css){ + super(filename + ":" + lineno + ":" + column + ": " + msg); + this.reason = msg; + this.filename = filename; + this.line = lineno; + this.column = column; + this.source = css; + } +} + + +var $4bafb28828007b46$exports = {}; + +$parcel$defineInteropFlag($4bafb28828007b46$exports); + +$parcel$export($4bafb28828007b46$exports, "default", () => $4bafb28828007b46$export$2e2bcd8739ae039); +/** + * Store position information for a node + */ class $4bafb28828007b46$export$2e2bcd8739ae039 { + constructor(start, end, source){ + this.start = start; + this.end = end; + this.source = source; + } +} + + +var $d103407e81c97042$exports = {}; + +$parcel$export($d103407e81c97042$exports, "CssTypes", () => $d103407e81c97042$export$9be5dd6e61d5d73a); +var $d103407e81c97042$export$9be5dd6e61d5d73a; +(function(CssTypes) { + CssTypes["stylesheet"] = "stylesheet"; + CssTypes["rule"] = "rule"; + CssTypes["declaration"] = "declaration"; + CssTypes["comment"] = "comment"; + CssTypes["container"] = "container"; + CssTypes["charset"] = "charset"; + CssTypes["document"] = "document"; + CssTypes["customMedia"] = "custom-media"; + CssTypes["fontFace"] = "font-face"; + CssTypes["host"] = "host"; + CssTypes["import"] = "import"; + CssTypes["keyframes"] = "keyframes"; + CssTypes["keyframe"] = "keyframe"; + CssTypes["layer"] = "layer"; + CssTypes["media"] = "media"; + CssTypes["namespace"] = "namespace"; + CssTypes["page"] = "page"; + CssTypes["supports"] = "supports"; +})($d103407e81c97042$export$9be5dd6e61d5d73a || ($d103407e81c97042$export$9be5dd6e61d5d73a = {})); + + +// http://www.w3.org/TR/CSS21/grammar.html +// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027 +// New rule => https://www.w3.org/TR/CSS22/syndata.html#comments +// [^] is equivalent to [.\n\r] +const $b499486c7f02abe7$var$commentre = /\/\*[^]*?(?:\*\/|$)/g; +const $b499486c7f02abe7$export$98e6a39c04603d36 = (css, options)=>{ + options = options || {}; + /** + * Positional. + */ let lineno = 1; + let column = 1; + /** + * Update lineno and column based on `str`. + */ function updatePosition(str) { + const lines = str.match(/\n/g); + if (lines) lineno += lines.length; + const i = str.lastIndexOf("\n"); + column = ~i ? str.length - i : column + str.length; + } + /** + * Mark position and patch `node.position`. + */ function position() { + const start = { + line: lineno, + column: column + }; + return function(node) { + node.position = new (0, $4bafb28828007b46$export$2e2bcd8739ae039)(start, { + line: lineno, + column: column + }, options?.source || ""); + whitespace(); + return node; + }; + } + /** + * Error `msg`. + */ const errorsList = []; + function error(msg) { + const err = new (0, $cb508b9219b02820$export$2e2bcd8739ae039)(options?.source || "", msg, lineno, column, css); + if (options?.silent) errorsList.push(err); + else throw err; + } + /** + * Parse stylesheet. + */ function stylesheet() { + const rulesList = rules(); + const result = { + type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).stylesheet, + stylesheet: { + source: options?.source, + rules: rulesList, + parsingErrors: errorsList + } + }; + return result; + } + /** + * Opening brace. + */ function open() { + return match(/^{\s*/); + } + /** + * Closing brace. + */ function close() { + return match(/^}/); + } + /** + * Parse ruleset. + */ function rules() { + let node; + const rules = []; + whitespace(); + comments(rules); + while(css.length && css.charAt(0) !== "}" && (node = atrule() || rule()))if (node) { + rules.push(node); + comments(rules); + } + return rules; + } + /** + * Match `re` and return captures. + */ function match(re) { + const m = re.exec(css); + if (!m) return; + const str = m[0]; + updatePosition(str); + css = css.slice(str.length); + return m; + } + /** + * Parse whitespace. + */ function whitespace() { + match(/^\s*/); + } + /** + * Parse comments; + */ function comments(rules) { + let c; + rules = rules || []; + while(c = comment())if (c) rules.push(c); + return rules; + } + /** + * Parse comment. + */ function comment() { + const pos = position(); + if ("/" !== css.charAt(0) || "*" !== css.charAt(1)) return; + const m = match(/^\/\*[^]*?\*\//); + if (!m) return error("End of comment missing"); + return pos({ + type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).comment, + comment: m[0].slice(2, -2) + }); + } + function findClosingParenthese(str, start, depth) { + let ptr = start + 1; + let found = false; + let closeParentheses = str.indexOf(")", ptr); + while(!found && closeParentheses !== -1){ + const nextParentheses = str.indexOf("(", ptr); + if (nextParentheses !== -1 && nextParentheses < closeParentheses) { + const nextSearch = findClosingParenthese(str, nextParentheses + 1, depth + 1); + ptr = nextSearch + 1; + closeParentheses = str.indexOf(")", ptr); + } else found = true; + } + if (found && closeParentheses !== -1) return closeParentheses; + else return -1; + } + /** + * Parse selector. + */ function selector() { + const m = match(/^([^{]+)/); + if (!m) return; + // remove comment in selector; + let res = $b499486c7f02abe7$var$trim(m[0]).replace($b499486c7f02abe7$var$commentre, ""); + // Optimisation: If there is no ',' no need to split or post-process (this is less costly) + if (res.indexOf(",") === -1) return [ + res + ]; + // Replace all the , in the parentheses by \u200C + let ptr = 0; + let startParentheses = res.indexOf("(", ptr); + while(startParentheses !== -1){ + const closeParentheses = findClosingParenthese(res, startParentheses, 0); + if (closeParentheses === -1) break; + ptr = closeParentheses + 1; + res = res.substring(0, startParentheses) + res.substring(startParentheses, closeParentheses).replace(/,/g, "\u200C") + res.substring(closeParentheses); + startParentheses = res.indexOf("(", ptr); + } + // Replace all the , in ' and " by \u200C + res = res/** + * replace ',' by \u200C for data selector (div[data-lang="fr,de,us"]) + * + * Examples: + * div[data-lang="fr,\"de,us"] + * div[data-lang='fr,\'de,us'] + * + * Regex logic: + * ("|')(?:\\\1|.)*?\1 => Handle the " and ' + * + * Optimization 1: + * No greedy capture (see docs about the difference between .* and .*?) + * + * Optimization 2: + * ("|')(?:\\\1|.)*?\1 this use reference to capture group, it work faster. + */ .replace(/("|')(?:\\\1|.)*?\1/g, (m)=>m.replace(/,/g, "\u200C")); + // Split all the left , and replace all the \u200C by , + return res// Split the selector by ',' + .split(",")// Replace back \u200C by ',' + .map((s)=>{ + return $b499486c7f02abe7$var$trim(s.replace(/\u200C/g, ",")); + }); + } + /** + * Parse declaration. + */ function declaration() { + const pos = position(); + // prop + const propMatch = match(/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/); + if (!propMatch) return; + const propValue = $b499486c7f02abe7$var$trim(propMatch[0]); + // : + if (!match(/^:\s*/)) return error("property missing ':'"); + // val + const val = match(/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/); + const ret = pos({ + type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).declaration, + property: propValue.replace($b499486c7f02abe7$var$commentre, ""), + value: val ? $b499486c7f02abe7$var$trim(val[0]).replace($b499486c7f02abe7$var$commentre, "") : "" + }); + // ; + match(/^[;\s]*/); + return ret; + } + /** + * Parse declarations. + */ function declarations() { + const decls = []; + if (!open()) return error("missing '{'"); + comments(decls); + // declarations + let decl; + while(decl = declaration())if (decl) { + decls.push(decl); + comments(decls); + } + if (!close()) return error("missing '}'"); + return decls; + } + /** + * Parse keyframe. + */ function keyframe() { + let m; + const vals = []; + const pos = position(); + while(m = match(/^((\d+\.\d+|\.\d+|\d+)%?|[a-z]+)\s*/)){ + vals.push(m[1]); + match(/^,\s*/); + } + if (!vals.length) return; + return pos({ + type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).keyframe, + values: vals, + declarations: declarations() || [] + }); + } + /** + * Parse keyframes. + */ function atkeyframes() { + const pos = position(); + const m1 = match(/^@([-\w]+)?keyframes\s*/); + if (!m1) return; + const vendor = m1[1]; + // identifier + const m2 = match(/^([-\w]+)\s*/); + if (!m2) return error("@keyframes missing name"); + const name = m2[1]; + if (!open()) return error("@keyframes missing '{'"); + let frame; + let frames = comments(); + while(frame = keyframe()){ + frames.push(frame); + frames = frames.concat(comments()); + } + if (!close()) return error("@keyframes missing '}'"); + return pos({ + type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).keyframes, + name: name, + vendor: vendor, + keyframes: frames + }); + } + /** + * Parse supports. + */ function atsupports() { + const pos = position(); + const m = match(/^@supports *([^{]+)/); + if (!m) return; + const supports = $b499486c7f02abe7$var$trim(m[1]); + if (!open()) return error("@supports missing '{'"); + const style = comments().concat(rules()); + if (!close()) return error("@supports missing '}'"); + return pos({ + type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).supports, + supports: supports, + rules: style + }); + } + /** + * Parse host. + */ function athost() { + const pos = position(); + const m = match(/^@host\s*/); + if (!m) return; + if (!open()) return error("@host missing '{'"); + const style = comments().concat(rules()); + if (!close()) return error("@host missing '}'"); + return pos({ + type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).host, + rules: style + }); + } + /** + * Parse container. + */ function atcontainer() { + const pos = position(); + const m = match(/^@container *([^{]+)/); + if (!m) return; + const container = $b499486c7f02abe7$var$trim(m[1]); + if (!open()) return error("@container missing '{'"); + const style = comments().concat(rules()); + if (!close()) return error("@container missing '}'"); + return pos({ + type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).container, + container: container, + rules: style + }); + } + /** + * Parse container. + */ function atlayer() { + const pos = position(); + const m = match(/^@layer *([^{;@]+)/); + if (!m) return; + const layer = $b499486c7f02abe7$var$trim(m[1]); + if (!open()) { + match(/^[;\s]*/); + return pos({ + type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).layer, + layer: layer + }); + } + const style = comments().concat(rules()); + if (!close()) return error("@layer missing '}'"); + return pos({ + type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).layer, + layer: layer, + rules: style + }); + } + /** + * Parse media. + */ function atmedia() { + const pos = position(); + const m = match(/^@media *([^{]+)/); + if (!m) return; + const media = $b499486c7f02abe7$var$trim(m[1]); + if (!open()) return error("@media missing '{'"); + const style = comments().concat(rules()); + if (!close()) return error("@media missing '}'"); + return pos({ + type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).media, + media: media, + rules: style + }); + } + /** + * Parse custom-media. + */ function atcustommedia() { + const pos = position(); + const m = match(/^@custom-media\s+(--\S+)\s*([^{;\s][^{;]*);/); + if (!m) return; + return pos({ + type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).customMedia, + name: $b499486c7f02abe7$var$trim(m[1]), + media: $b499486c7f02abe7$var$trim(m[2]) + }); + } + /** + * Parse paged media. + */ function atpage() { + const pos = position(); + const m = match(/^@page */); + if (!m) return; + const sel = selector() || []; + if (!open()) return error("@page missing '{'"); + let decls = comments(); + // declarations + let decl; + while(decl = declaration()){ + decls.push(decl); + decls = decls.concat(comments()); + } + if (!close()) return error("@page missing '}'"); + return pos({ + type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).page, + selectors: sel, + declarations: decls + }); + } + /** + * Parse document. + */ function atdocument() { + const pos = position(); + const m = match(/^@([-\w]+)?document *([^{]+)/); + if (!m) return; + const vendor = $b499486c7f02abe7$var$trim(m[1]); + const doc = $b499486c7f02abe7$var$trim(m[2]); + if (!open()) return error("@document missing '{'"); + const style = comments().concat(rules()); + if (!close()) return error("@document missing '}'"); + return pos({ + type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).document, + document: doc, + vendor: vendor, + rules: style + }); + } + /** + * Parse font-face. + */ function atfontface() { + const pos = position(); + const m = match(/^@font-face\s*/); + if (!m) return; + if (!open()) return error("@font-face missing '{'"); + let decls = comments(); + // declarations + let decl; + while(decl = declaration()){ + decls.push(decl); + decls = decls.concat(comments()); + } + if (!close()) return error("@font-face missing '}'"); + return pos({ + type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).fontFace, + declarations: decls + }); + } + /** + * Parse import + */ const atimport = _compileAtrule("import"); + /** + * Parse charset + */ const atcharset = _compileAtrule("charset"); + /** + * Parse namespace + */ const atnamespace = _compileAtrule("namespace"); + /** + * Parse non-block at-rules + */ function _compileAtrule(name) { + const re = new RegExp("^@" + name + "\\s*((?::?[^;'\"]|\"(?:\\\\\"|[^\"])*?\"|'(?:\\\\'|[^'])*?')+)(?:;|$)"); + // ^@import\s*([^;"']|("|')(?:\\\2|.)*?\2)+(;|$) + return function() { + const pos = position(); + const m = match(re); + if (!m) return; + const ret = { + type: name + }; + ret[name] = m[1].trim(); + return pos(ret); + }; + } + /** + * Parse at rule. + */ function atrule() { + if (css[0] !== "@") return; + return atkeyframes() || atmedia() || atcustommedia() || atsupports() || atimport() || atcharset() || atnamespace() || atdocument() || atpage() || athost() || atfontface() || atcontainer() || atlayer(); + } + /** + * Parse rule. + */ function rule() { + const pos = position(); + const sel = selector(); + if (!sel) return error("selector missing"); + comments(); + return pos({ + type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).rule, + selectors: sel, + declarations: declarations() || [] + }); + } + return $b499486c7f02abe7$var$addParent(stylesheet()); +}; +/** + * Trim `str`. + */ function $b499486c7f02abe7$var$trim(str) { + return str ? str.trim() : ""; +} +/** + * Adds non-enumerable parent node reference to each node. + */ function $b499486c7f02abe7$var$addParent(obj, parent) { + const isNode = obj && typeof obj.type === "string"; + const childParent = isNode ? obj : parent; + for(const k in obj){ + const value = obj[k]; + if (Array.isArray(value)) value.forEach((v)=>{ + $b499486c7f02abe7$var$addParent(v, childParent); + }); + else if (value && typeof value === "object") $b499486c7f02abe7$var$addParent(value, childParent); + } + if (isNode) Object.defineProperty(obj, "parent", { + configurable: true, + writable: true, + enumerable: false, + value: parent || null + }); + return obj; +} +var $b499486c7f02abe7$export$2e2bcd8739ae039 = $b499486c7f02abe7$export$98e6a39c04603d36; + + + +class $24dc7e49cb76910e$var$Compiler { + constructor(options){ + this.level = 0; + this.indentation = " "; + this.compress = false; + if (typeof options?.indent === "string") this.indentation = options?.indent; + if (options?.compress) this.compress = true; + } + // We disable no-unused-vars for _position. We keep position for potential reintroduction of source-map + // eslint-disable-next-line @typescript-eslint/no-unused-vars + emit(str, _position) { + return str; + } + /** + * Increase, decrease or return current indentation. + */ indent(level) { + this.level = this.level || 1; + if (level) { + this.level += level; + return ""; + } + return Array(this.level).join(this.indentation); + } + visit(node) { + switch(node.type){ + case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).stylesheet: + return this.stylesheet(node); + case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).rule: + return this.rule(node); + case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).declaration: + return this.declaration(node); + case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).comment: + return this.comment(node); + case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).container: + return this.container(node); + case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).charset: + return this.charset(node); + case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).document: + return this.document(node); + case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).customMedia: + return this.customMedia(node); + case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).fontFace: + return this.fontFace(node); + case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).host: + return this.host(node); + case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).import: + return this.import(node); + case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).keyframes: + return this.keyframes(node); + case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).keyframe: + return this.keyframe(node); + case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).layer: + return this.layer(node); + case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).media: + return this.media(node); + case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).namespace: + return this.namespace(node); + case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).page: + return this.page(node); + case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).supports: + return this.supports(node); + } + } + mapVisit(nodes, delim) { + let buf = ""; + delim = delim || ""; + for(let i = 0, length = nodes.length; i < length; i++){ + buf += this.visit(nodes[i]); + if (delim && i < length - 1) buf += this.emit(delim); + } + return buf; + } + compile(node) { + if (this.compress) return node.stylesheet.rules.map(this.visit, this).join(""); + return this.stylesheet(node); + } + /** + * Visit stylesheet node. + */ stylesheet(node) { + return this.mapVisit(node.stylesheet.rules, "\n\n"); + } + /** + * Visit comment node. + */ comment(node) { + if (this.compress) return this.emit("", node.position); + return this.emit(this.indent() + "/*" + node.comment + "*/", node.position); + } + /** + * Visit container node. + */ container(node) { + if (this.compress) return this.emit("@container " + node.container, node.position) + this.emit("{") + this.mapVisit(node.rules) + this.emit("}"); + return this.emit(this.indent() + "@container " + node.container, node.position) + this.emit(" {\n" + this.indent(1)) + this.mapVisit(node.rules, "\n\n") + this.emit("\n" + this.indent(-1) + this.indent() + "}"); + } + /** + * Visit container node. + */ layer(node) { + if (this.compress) return this.emit("@layer " + node.layer, node.position) + (node.rules ? this.emit("{") + this.mapVisit(node.rules) + this.emit("}") : ";"); + return this.emit(this.indent() + "@layer " + node.layer, node.position) + (node.rules ? this.emit(" {\n" + this.indent(1)) + this.mapVisit(node.rules, "\n\n") + this.emit("\n" + this.indent(-1) + this.indent() + "}") : ";"); + } + /** + * Visit import node. + */ import(node) { + return this.emit("@import " + node.import + ";", node.position); + } + /** + * Visit media node. + */ media(node) { + if (this.compress) return this.emit("@media " + node.media, node.position) + this.emit("{") + this.mapVisit(node.rules) + this.emit("}"); + return this.emit(this.indent() + "@media " + node.media, node.position) + this.emit(" {\n" + this.indent(1)) + this.mapVisit(node.rules, "\n\n") + this.emit("\n" + this.indent(-1) + this.indent() + "}"); + } + /** + * Visit document node. + */ document(node) { + const doc = "@" + (node.vendor || "") + "document " + node.document; + if (this.compress) return this.emit(doc, node.position) + this.emit("{") + this.mapVisit(node.rules) + this.emit("}"); + return this.emit(doc, node.position) + this.emit(" {\n" + this.indent(1)) + this.mapVisit(node.rules, "\n\n") + this.emit(this.indent(-1) + "\n}"); + } + /** + * Visit charset node. + */ charset(node) { + return this.emit("@charset " + node.charset + ";", node.position); + } + /** + * Visit namespace node. + */ namespace(node) { + return this.emit("@namespace " + node.namespace + ";", node.position); + } + /** + * Visit supports node. + */ supports(node) { + if (this.compress) return this.emit("@supports " + node.supports, node.position) + this.emit("{") + this.mapVisit(node.rules) + this.emit("}"); + return this.emit(this.indent() + "@supports " + node.supports, node.position) + this.emit(" {\n" + this.indent(1)) + this.mapVisit(node.rules, "\n\n") + this.emit("\n" + this.indent(-1) + this.indent() + "}"); + } + /** + * Visit keyframes node. + */ keyframes(node) { + if (this.compress) return this.emit("@" + (node.vendor || "") + "keyframes " + node.name, node.position) + this.emit("{") + this.mapVisit(node.keyframes) + this.emit("}"); + return this.emit("@" + (node.vendor || "") + "keyframes " + node.name, node.position) + this.emit(" {\n" + this.indent(1)) + this.mapVisit(node.keyframes, "\n") + this.emit(this.indent(-1) + "}"); + } + /** + * Visit keyframe node. + */ keyframe(node) { + const decls = node.declarations; + if (this.compress) return this.emit(node.values.join(","), node.position) + this.emit("{") + this.mapVisit(decls) + this.emit("}"); + return this.emit(this.indent()) + this.emit(node.values.join(", "), node.position) + this.emit(" {\n" + this.indent(1)) + this.mapVisit(decls, "\n") + this.emit(this.indent(-1) + "\n" + this.indent() + "}\n"); + } + /** + * Visit page node. + */ page(node) { + if (this.compress) { + const sel = node.selectors.length ? node.selectors.join(", ") : ""; + return this.emit("@page " + sel, node.position) + this.emit("{") + this.mapVisit(node.declarations) + this.emit("}"); + } + const sel = node.selectors.length ? node.selectors.join(", ") + " " : ""; + return this.emit("@page " + sel, node.position) + this.emit("{\n") + this.emit(this.indent(1)) + this.mapVisit(node.declarations, "\n") + this.emit(this.indent(-1)) + this.emit("\n}"); + } + /** + * Visit font-face node. + */ fontFace(node) { + if (this.compress) return this.emit("@font-face", node.position) + this.emit("{") + this.mapVisit(node.declarations) + this.emit("}"); + return this.emit("@font-face ", node.position) + this.emit("{\n") + this.emit(this.indent(1)) + this.mapVisit(node.declarations, "\n") + this.emit(this.indent(-1)) + this.emit("\n}"); + } + /** + * Visit host node. + */ host(node) { + if (this.compress) return this.emit("@host", node.position) + this.emit("{") + this.mapVisit(node.rules) + this.emit("}"); + return this.emit("@host", node.position) + this.emit(" {\n" + this.indent(1)) + this.mapVisit(node.rules, "\n\n") + this.emit(this.indent(-1) + "\n}"); + } + /** + * Visit custom-media node. + */ customMedia(node) { + return this.emit("@custom-media " + node.name + " " + node.media + ";", node.position); + } + /** + * Visit rule node. + */ rule(node) { + const decls = node.declarations; + if (!decls.length) return ""; + if (this.compress) return this.emit(node.selectors.join(","), node.position) + this.emit("{") + this.mapVisit(decls) + this.emit("}"); + const indent = this.indent(); + return this.emit(node.selectors.map((s)=>{ + return indent + s; + }).join(",\n"), node.position) + this.emit(" {\n") + this.emit(this.indent(1)) + this.mapVisit(decls, "\n") + this.emit(this.indent(-1)) + this.emit("\n" + this.indent() + "}"); + } + /** + * Visit declaration node. + */ declaration(node) { + if (this.compress) return this.emit(node.property + ":" + node.value, node.position) + this.emit(";"); + return this.emit(this.indent()) + this.emit(node.property + ": " + node.value, node.position) + this.emit(";"); + } +} +var $24dc7e49cb76910e$export$2e2bcd8739ae039 = $24dc7e49cb76910e$var$Compiler; + + +var $fd680ce0c35731f5$export$2e2bcd8739ae039 = (node, options)=>{ + const compiler = new (0, $24dc7e49cb76910e$export$2e2bcd8739ae039)(options || {}); + return compiler.compile(node); +}; + + + + + +const $882b6d93070905b3$export$98e6a39c04603d36 = (0, $b499486c7f02abe7$export$2e2bcd8739ae039); +const $882b6d93070905b3$export$fac44ee5b035f737 = (0, $fd680ce0c35731f5$export$2e2bcd8739ae039); +var $882b6d93070905b3$export$2e2bcd8739ae039 = { + parse: $882b6d93070905b3$export$98e6a39c04603d36, + stringify: $882b6d93070905b3$export$fac44ee5b035f737 +}; +$parcel$exportWildcard(module.exports, $d103407e81c97042$exports); +$parcel$exportWildcard(module.exports, $cb508b9219b02820$exports); +$parcel$exportWildcard(module.exports, $4bafb28828007b46$exports); + + +//# sourceMappingURL=index.cjs.map diff --git a/node_modules/@adobe/css-tools/dist/index.cjs.map b/node_modules/@adobe/css-tools/dist/index.cjs.map new file mode 100644 index 0000000..5c35cf5 --- /dev/null +++ b/node_modules/@adobe/css-tools/dist/index.cjs.map @@ -0,0 +1 @@ +{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEAe,uDAA4B;IAOzC,YACE,QAAgB,EAChB,GAAW,EACX,MAAc,EACd,MAAc,EACd,GAAW,CACX;QACA,KAAK,CAAC,WAAW,MAAM,SAAS,MAAM,SAAS,OAAO;QACtD,IAAI,CAAC,MAAM,GAAG;QACd,IAAI,CAAC,QAAQ,GAAG;QAChB,IAAI,CAAC,IAAI,GAAG;QACZ,IAAI,CAAC,MAAM,GAAG;QACd,IAAI,CAAC,MAAM,GAAG;IAChB;AACF;;;;;;;;ACrBA;;CAEC,GACc;IAKb,YACE,KAAqC,EACrC,GAAmC,EACnC,MAAc,CACd;QACA,IAAI,CAAC,KAAK,GAAG;QACb,IAAI,CAAC,GAAG,GAAG;QACX,IAAI,CAAC,MAAM,GAAG;IAChB;AACF;;;;;;;UCdY;;;;;;;;;;;;;;;;;;;GAAA,8CAAA;;;AHuBZ,0CAA0C;AAC1C,yEAAyE;AACzE,gEAAgE;AAChE,+BAA+B;AAC/B,MAAM,kCAAY;AAEX,MAAM,4CAAQ,CACnB,KACA;IAEA,UAAU,WAAW,CAAC;IAEtB;;GAEC,GACD,IAAI,SAAS;IACb,IAAI,SAAS;IAEb;;GAEC,GACD,SAAS,eAAe,GAAW;QACjC,MAAM,QAAQ,IAAI,KAAK,CAAC;QACxB,IAAI,OAAO,UAAU,MAAM,MAAM;QACjC,MAAM,IAAI,IAAI,WAAW,CAAC;QAC1B,SAAS,CAAC,IAAI,IAAI,MAAM,GAAG,IAAI,SAAS,IAAI,MAAM;IACpD;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,QAAQ;YAAC,MAAM;YAAQ,QAAQ;QAAM;QAC3C,OAAO,SACL,IAA0B;YAEzB,KAAY,QAAQ,GAAG,IAAI,CAAA,GAAA,wCAAO,EACjC,OACA;gBAAC,MAAM;gBAAQ,QAAQ;YAAM,GAC7B,SAAS,UAAU;YAErB;YACA,OAAO;QACT;IACF;IAEA;;GAEC,GACD,MAAM,aAAmC,EAAE;IAE3C,SAAS,MAAM,GAAW;QACxB,MAAM,MAAM,IAAI,CAAA,GAAA,wCAAY,EAC1B,SAAS,UAAU,IACnB,KACA,QACA,QACA;QAGF,IAAI,SAAS,QACX,WAAW,IAAI,CAAC;aAEhB,MAAM;IAEV;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,YAAY;QAElB,MAAM,SAA2B;YAC/B,MAAM,CAAA,GAAA,yCAAO,EAAE,UAAU;YACzB,YAAY;gBACV,QAAQ,SAAS;gBACjB,OAAO;gBACP,eAAe;YACjB;QACF;QAEA,OAAO;IACT;IAEA;;GAEC,GACD,SAAS;QACP,OAAO,MAAM;IACf;IAEA;;GAEC,GACD,SAAS;QACP,OAAO,MAAM;IACf;IAEA;;GAEC,GACD,SAAS;QACP,IAAI;QACJ,MAAM,QAA0C,EAAE;QAClD;QACA,SAAS;QACT,MAAO,IAAI,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,OAAQ,CAAA,OAAO,YAAY,MAAK,EACrE,IAAI,MAAM;YACR,MAAM,IAAI,CAAC;YACX,SAAS;QACX;QAEF,OAAO;IACT;IAEA;;GAEC,GACD,SAAS,MAAM,EAAU;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,GACH;QAEF,MAAM,MAAM,CAAC,CAAC,EAAE;QAChB,eAAe;QACf,MAAM,IAAI,KAAK,CAAC,IAAI,MAAM;QAC1B,OAAO;IACT;IAEA;;GAEC,GACD,SAAS;QACP,MAAM;IACR;IAEA;;GAEC,GACD,SAAS,SACP,KAAiC;QAEjC,IAAI;QACJ,QAAQ,SAAS,EAAE;QACnB,MAAQ,IAAI,UACV,IAAI,GACF,MAAM,IAAI,CAAC;QAGf,OAAO;IACT;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,QAAQ,IAAI,MAAM,CAAC,IAC9C;QAGF,MAAM,IAAI,MAAM;QAChB,IAAI,CAAC,GACH,OAAO,MAAM;QAGf,OAAO,IAAmB;YACxB,MAAM,CAAA,GAAA,yCAAO,EAAE,OAAO;YACtB,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG;QACzB;IACF;IAEA,SAAS,sBACP,GAAW,EACX,KAAa,EACb,KAAa;QAEb,IAAI,MAAM,QAAQ;QAClB,IAAI,QAAQ;QACZ,IAAI,mBAAmB,IAAI,OAAO,CAAC,KAAK;QACxC,MAAO,CAAC,SAAS,qBAAqB,GAAI;YACxC,MAAM,kBAAkB,IAAI,OAAO,CAAC,KAAK;YACzC,IAAI,oBAAoB,MAAM,kBAAkB,kBAAkB;gBAChE,MAAM,aAAa,sBACjB,KACA,kBAAkB,GAClB,QAAQ;gBAEV,MAAM,aAAa;gBACnB,mBAAmB,IAAI,OAAO,CAAC,KAAK;YACtC,OACE,QAAQ;QAEZ;QACA,IAAI,SAAS,qBAAqB,IAChC,OAAO;aAEP,OAAO;IAEX;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,IAAI,MAAM;QAChB,IAAI,CAAC,GACH;QAGF,8BAA8B;QAC9B,IAAI,MAAM,2BAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,iCAAW;QAExC,0FAA0F;QAC1F,IAAI,IAAI,OAAO,CAAC,SAAS,IACvB,OAAO;YAAC;SAAI;QAGd,iDAAiD;QACjD,IAAI,MAAM;QACV,IAAI,mBAAmB,IAAI,OAAO,CAAC,KAAK;QACxC,MAAO,qBAAqB,GAAI;YAC9B,MAAM,mBAAmB,sBAAsB,KAAK,kBAAkB;YACtE,IAAI,qBAAqB,IACvB;YAEF,MAAM,mBAAmB;YACzB,MACE,IAAI,SAAS,CAAC,GAAG,oBACjB,IACG,SAAS,CAAC,kBAAkB,kBAC5B,OAAO,CAAC,MAAM,YACjB,IAAI,SAAS,CAAC;YAChB,mBAAmB,IAAI,OAAO,CAAC,KAAK;QACtC;QAEA,yCAAyC;QACzC,MAAM,GACJ;;;;;;;;;;;;;;;OAeC,IACA,OAAO,CAAC,wBAAwB,CAAA,IAAK,EAAE,OAAO,CAAC,MAAM;QAExD,uDAAuD;QACvD,OACE,GACE,4BAA4B;SAC3B,KAAK,CAAC,IACP,6BAA6B;SAC5B,GAAG,CAAC,CAAA;YACH,OAAO,2BAAK,EAAE,OAAO,CAAC,WAAW;QACnC;IAEN;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QAEZ,OAAO;QACP,MAAM,YAAY,MAAM;QACxB,IAAI,CAAC,WACH;QAEF,MAAM,YAAY,2BAAK,SAAS,CAAC,EAAE;QAEnC,IAAI;QACJ,IAAI,CAAC,MAAM,UACT,OAAO,MAAM;QAGf,MAAM;QACN,MAAM,MAAM,MAAM;QAElB,MAAM,MAAM,IAAuB;YACjC,MAAM,CAAA,GAAA,yCAAO,EAAE,WAAW;YAC1B,UAAU,UAAU,OAAO,CAAC,iCAAW;YACvC,OAAO,MAAM,2BAAK,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,iCAAW,MAAM;QACrD;QAEA,IAAI;QACJ,MAAM;QAEN,OAAO;IACT;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,QAAkD,EAAE;QAE1D,IAAI,CAAC,QACH,OAAO,MAAM;QAEf,SAAS;QAET,eAAe;QACf,IAAI;QACJ,MAAQ,OAAO,cACb,IAAI,MAAM;YACR,MAAM,IAAI,CAAC;YACX,SAAS;QACX;QAGF,IAAI,CAAC,SACH,OAAO,MAAM;QAEf,OAAO;IACT;IAEA;;GAEC,GACD,SAAS;QACP,IAAI;QACJ,MAAM,OAAO,EAAE;QACf,MAAM,MAAM;QAEZ,MAAQ,IAAI,MAAM,uCAAyC;YACzD,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE;YACd,MAAM;QACR;QAEA,IAAI,CAAC,KAAK,MAAM,EACd;QAGF,OAAO,IAAoB;YACzB,MAAM,CAAA,GAAA,yCAAO,EAAE,QAAQ;YACvB,QAAQ;YACR,cAAc,kBAAkB,EAAE;QACpC;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,KAAK,MAAM;QAEjB,IAAI,CAAC,IACH;QAEF,MAAM,SAAS,EAAE,CAAC,EAAE;QAEpB,aAAa;QACb,MAAM,KAAK,MAAM;QACjB,IAAI,CAAC,IACH,OAAO,MAAM;QAEf,MAAM,OAAO,EAAE,CAAC,EAAE;QAElB,IAAI,CAAC,QACH,OAAO,MAAM;QAGf,IAAI;QACJ,IAAI,SAAgD;QACpD,MAAQ,QAAQ,WAAa;YAC3B,OAAO,IAAI,CAAC;YACZ,SAAS,OAAO,MAAM,CAAC;QACzB;QAEA,IAAI,CAAC,SACH,OAAO,MAAM;QAGf,OAAO,IAAqB;YAC1B,MAAM,CAAA,GAAA,yCAAO,EAAE,SAAS;YACxB,MAAM;YACN,QAAQ;YACR,WAAW;QACb;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,IAAI,MAAM;QAEhB,IAAI,CAAC,GACH;QAEF,MAAM,WAAW,2BAAK,CAAC,CAAC,EAAE;QAE1B,IAAI,CAAC,QACH,OAAO,MAAM;QAGf,MAAM,QAAQ,WAAyB,MAAM,CAAC;QAE9C,IAAI,CAAC,SACH,OAAO,MAAM;QAGf,OAAO,IAAoB;YACzB,MAAM,CAAA,GAAA,yCAAO,EAAE,QAAQ;YACvB,UAAU;YACV,OAAO;QACT;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,IAAI,MAAM;QAEhB,IAAI,CAAC,GACH;QAGF,IAAI,CAAC,QACH,OAAO,MAAM;QAGf,MAAM,QAAQ,WAAyB,MAAM,CAAC;QAE9C,IAAI,CAAC,SACH,OAAO,MAAM;QAGf,OAAO,IAAgB;YACrB,MAAM,CAAA,GAAA,yCAAO,EAAE,IAAI;YACnB,OAAO;QACT;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,IAAI,MAAM;QAEhB,IAAI,CAAC,GACH;QAEF,MAAM,YAAY,2BAAK,CAAC,CAAC,EAAE;QAE3B,IAAI,CAAC,QACH,OAAO,MAAM;QAGf,MAAM,QAAQ,WAAyB,MAAM,CAAC;QAE9C,IAAI,CAAC,SACH,OAAO,MAAM;QAGf,OAAO,IAAqB;YAC1B,MAAM,CAAA,GAAA,yCAAO,EAAE,SAAS;YACxB,WAAW;YACX,OAAO;QACT;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,IAAI,MAAM;QAEhB,IAAI,CAAC,GACH;QAEF,MAAM,QAAQ,2BAAK,CAAC,CAAC,EAAE;QAEvB,IAAI,CAAC,QAAQ;YACX,MAAM;YACN,OAAO,IAAiB;gBACtB,MAAM,CAAA,GAAA,yCAAO,EAAE,KAAK;gBACpB,OAAO;YACT;QACF;QAEA,MAAM,QAAQ,WAAyB,MAAM,CAAC;QAE9C,IAAI,CAAC,SACH,OAAO,MAAM;QAGf,OAAO,IAAiB;YACtB,MAAM,CAAA,GAAA,yCAAO,EAAE,KAAK;YACpB,OAAO;YACP,OAAO;QACT;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,IAAI,MAAM;QAEhB,IAAI,CAAC,GACH;QAEF,MAAM,QAAQ,2BAAK,CAAC,CAAC,EAAE;QAEvB,IAAI,CAAC,QACH,OAAO,MAAM;QAGf,MAAM,QAAQ,WAAyB,MAAM,CAAC;QAE9C,IAAI,CAAC,SACH,OAAO,MAAM;QAGf,OAAO,IAAiB;YACtB,MAAM,CAAA,GAAA,yCAAO,EAAE,KAAK;YACpB,OAAO;YACP,OAAO;QACT;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,IAAI,MAAM;QAChB,IAAI,CAAC,GACH;QAGF,OAAO,IAAuB;YAC5B,MAAM,CAAA,GAAA,yCAAO,EAAE,WAAW;YAC1B,MAAM,2BAAK,CAAC,CAAC,EAAE;YACf,OAAO,2BAAK,CAAC,CAAC,EAAE;QAClB;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,IAAI,MAAM;QAChB,IAAI,CAAC,GACH;QAGF,MAAM,MAAM,cAAc,EAAE;QAE5B,IAAI,CAAC,QACH,OAAO,MAAM;QAEf,IAAI,QAAQ;QAEZ,eAAe;QACf,IAAI;QACJ,MAAQ,OAAO,cAAgB;YAC7B,MAAM,IAAI,CAAC;YACX,QAAQ,MAAM,MAAM,CAAC;QACvB;QAEA,IAAI,CAAC,SACH,OAAO,MAAM;QAGf,OAAO,IAAgB;YACrB,MAAM,CAAA,GAAA,yCAAO,EAAE,IAAI;YACnB,WAAW;YACX,cAAc;QAChB;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,IAAI,MAAM;QAChB,IAAI,CAAC,GACH;QAGF,MAAM,SAAS,2BAAK,CAAC,CAAC,EAAE;QACxB,MAAM,MAAM,2BAAK,CAAC,CAAC,EAAE;QAErB,IAAI,CAAC,QACH,OAAO,MAAM;QAGf,MAAM,QAAQ,WAAyB,MAAM,CAAC;QAE9C,IAAI,CAAC,SACH,OAAO,MAAM;QAGf,OAAO,IAAoB;YACzB,MAAM,CAAA,GAAA,yCAAO,EAAE,QAAQ;YACvB,UAAU;YACV,QAAQ;YACR,OAAO;QACT;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,IAAI,MAAM;QAChB,IAAI,CAAC,GACH;QAGF,IAAI,CAAC,QACH,OAAO,MAAM;QAEf,IAAI,QAAQ;QAEZ,eAAe;QACf,IAAI;QACJ,MAAQ,OAAO,cAAgB;YAC7B,MAAM,IAAI,CAAC;YACX,QAAQ,MAAM,MAAM,CAAC;QACvB;QAEA,IAAI,CAAC,SACH,OAAO,MAAM;QAGf,OAAO,IAAoB;YACzB,MAAM,CAAA,GAAA,yCAAO,EAAE,QAAQ;YACvB,cAAc;QAChB;IACF;IAEA;;GAEC,GACD,MAAM,WAAW,eAA6B;IAE9C;;GAEC,GACD,MAAM,YAAY,eAA8B;IAEhD;;GAEC,GACD,MAAM,cAAc,eAAgC;IAEpD;;GAEC,GACD,SAAS,eACP,IAAY;QAEZ,MAAM,KAAK,IAAI,OACb,OACE,OACA;QAGJ,gDAAgD;QAEhD,OAAO;YACL,MAAM,MAAM;YACZ,MAAM,IAAI,MAAM;YAChB,IAAI,CAAC,GACH;YAEF,MAAM,MAA8B;gBAAC,MAAM;YAAI;YAC/C,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI;YACrB,OAAO,IAAQ;QACjB;IACF;IAEA;;GAEC,GACD,SAAS;QACP,IAAI,GAAG,CAAC,EAAE,KAAK,KACb;QAGF,OACE,iBACA,aACA,mBACA,gBACA,cACA,eACA,iBACA,gBACA,YACA,YACA,gBACA,iBACA;IAEJ;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,MAAM;QAEZ,IAAI,CAAC,KACH,OAAO,MAAM;QAEf;QAEA,OAAO,IAAgB;YACrB,MAAM,CAAA,GAAA,yCAAO,EAAE,IAAI;YACnB,WAAW;YACX,cAAc,kBAAkB,EAAE;QACpC;IACF;IAEA,OAAO,gCAAU;AACnB;AAEA;;CAEC,GACD,SAAS,2BAAK,GAAW;IACvB,OAAO,MAAM,IAAI,IAAI,KAAK;AAC5B;AAEA;;CAEC,GACD,SAAS,gCAAsC,GAAO,EAAE,MAAgB;IACtE,MAAM,SAAS,OAAO,OAAO,IAAI,IAAI,KAAK;IAC1C,MAAM,cAAc,SAAS,MAAM;IAEnC,IAAK,MAAM,KAAK,IAAK;QACnB,MAAM,QAAQ,GAAG,CAAC,EAAE;QACpB,IAAI,MAAM,OAAO,CAAC,QAChB,MAAM,OAAO,CAAC,CAAA;YACZ,gCAAU,GAAG;QACf;aACK,IAAI,SAAS,OAAO,UAAU,UACnC,gCAAU,OAAO;IAErB;IAEA,IAAI,QACF,OAAO,cAAc,CAAC,KAAK,UAAU;QACnC,cAAc;QACd,UAAU;QACV,YAAY;QACZ,OAAO,UAAU;IACnB;IAGF,OAAO;AACT;IAEA,2CAAe;;;;AK/wBf,MAAM;IAKJ,YAAY,OAA+C,CAAE;aAJ7D,QAAQ;aACR,cAAc;aACd,WAAW;QAGT,IAAI,OAAO,SAAS,WAAW,UAC7B,IAAI,CAAC,WAAW,GAAG,SAAS;QAE9B,IAAI,SAAS,UACX,IAAI,CAAC,QAAQ,GAAG;IAEpB;IAEA,uGAAuG;IACvG,6DAA6D;IAC7D,KAAK,GAAW,EAAE,SAA4C,EAAE;QAC9D,OAAO;IACT;IAEA;;GAEC,GACD,OAAO,KAAc,EAAE;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI;QAE3B,IAAI,OAAO;YACT,IAAI,CAAC,KAAK,IAAI;YACd,OAAO;QACT;QAEA,OAAO,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;IAChD;IAEA,MAAM,IAAoB,EAAU;QAClC,OAAQ,KAAK,IAAI;YACf,KAAK,CAAA,GAAA,yCAAO,EAAE,UAAU;gBACtB,OAAO,IAAI,CAAC,UAAU,CAAC;YACzB,KAAK,CAAA,GAAA,yCAAO,EAAE,IAAI;gBAChB,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,KAAK,CAAA,GAAA,yCAAO,EAAE,WAAW;gBACvB,OAAO,IAAI,CAAC,WAAW,CAAC;YAC1B,KAAK,CAAA,GAAA,yCAAO,EAAE,OAAO;gBACnB,OAAO,IAAI,CAAC,OAAO,CAAC;YACtB,KAAK,CAAA,GAAA,yCAAO,EAAE,SAAS;gBACrB,OAAO,IAAI,CAAC,SAAS,CAAC;YACxB,KAAK,CAAA,GAAA,yCAAO,EAAE,OAAO;gBACnB,OAAO,IAAI,CAAC,OAAO,CAAC;YACtB,KAAK,CAAA,GAAA,yCAAO,EAAE,QAAQ;gBACpB,OAAO,IAAI,CAAC,QAAQ,CAAC;YACvB,KAAK,CAAA,GAAA,yCAAO,EAAE,WAAW;gBACvB,OAAO,IAAI,CAAC,WAAW,CAAC;YAC1B,KAAK,CAAA,GAAA,yCAAO,EAAE,QAAQ;gBACpB,OAAO,IAAI,CAAC,QAAQ,CAAC;YACvB,KAAK,CAAA,GAAA,yCAAO,EAAE,IAAI;gBAChB,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,KAAK,CAAA,GAAA,yCAAO,EAAE,MAAM;gBAClB,OAAO,IAAI,CAAC,MAAM,CAAC;YACrB,KAAK,CAAA,GAAA,yCAAO,EAAE,SAAS;gBACrB,OAAO,IAAI,CAAC,SAAS,CAAC;YACxB,KAAK,CAAA,GAAA,yCAAO,EAAE,QAAQ;gBACpB,OAAO,IAAI,CAAC,QAAQ,CAAC;YACvB,KAAK,CAAA,GAAA,yCAAO,EAAE,KAAK;gBACjB,OAAO,IAAI,CAAC,KAAK,CAAC;YACpB,KAAK,CAAA,GAAA,yCAAO,EAAE,KAAK;gBACjB,OAAO,IAAI,CAAC,KAAK,CAAC;YACpB,KAAK,CAAA,GAAA,yCAAO,EAAE,SAAS;gBACrB,OAAO,IAAI,CAAC,SAAS,CAAC;YACxB,KAAK,CAAA,GAAA,yCAAO,EAAE,IAAI;gBAChB,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,KAAK,CAAA,GAAA,yCAAO,EAAE,QAAQ;gBACpB,OAAO,IAAI,CAAC,QAAQ,CAAC;QACzB;IACF;IAEA,SAAS,KAA4B,EAAE,KAAc,EAAE;QACrD,IAAI,MAAM;QACV,QAAQ,SAAS;QAEjB,IAAK,IAAI,IAAI,GAAG,SAAS,MAAM,MAAM,EAAE,IAAI,QAAQ,IAAK;YACtD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,SAAS,IAAI,SAAS,GACxB,OAAO,IAAI,CAAC,IAAI,CAAC;QAErB;QAEA,OAAO;IACT;IAEA,QAAQ,IAAsB,EAAE;QAC9B,IAAI,IAAI,CAAC,QAAQ,EACf,OAAO,KAAK,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;QAG1D,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB;IAEA;;GAEC,GACD,WAAW,IAAsB,EAAE;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC,KAAK,EAAE;IAC9C;IAEA;;GAEC,GACD,QAAQ,IAAmB,EAAE;QAC3B,IAAI,IAAI,CAAC,QAAQ,EACf,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;QAEpC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,KAAK,OAAO,GAAG,MAAM,KAAK,QAAQ;IAC5E;IAEA;;GAEC,GACD,UAAU,IAAqB,EAAE;QAC/B,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE,KAAK,QAAQ,IACvD,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,IACxB,IAAI,CAAC,IAAI,CAAC;QAGd,OACE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,gBAAgB,KAAK,SAAS,EAAE,KAAK,QAAQ,IACvE,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,UAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,KAAK;IAEvD;IAEA;;GAEC,GACD,MAAM,IAAiB,EAAE;QACvB,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE,KAAK,QAAQ,IAC9C,CAAA,KAAK,KAAK,GACP,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAmB,KAAK,KAAK,IAC1C,IAAI,CAAC,IAAI,CAAC,OACV,GAAE;QAGV,OACE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,YAAY,KAAK,KAAK,EAAE,KAAK,QAAQ,IAC9D,CAAA,KAAK,KAAK,GACP,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAC/B,IAAI,CAAC,QAAQ,CAAmB,KAAK,KAAK,EAAE,UAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,KAAK,OACnD,GAAE;IAEV;IAEA;;GAEC,GACD,OAAO,IAAkB,EAAE;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,KAAK,MAAM,GAAG,KAAK,KAAK,QAAQ;IAChE;IAEA;;GAEC,GACD,MAAM,IAAiB,EAAE;QACvB,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE,KAAK,QAAQ,IAC/C,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,IACxB,IAAI,CAAC,IAAI,CAAC;QAGd,OACE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,YAAY,KAAK,KAAK,EAAE,KAAK,QAAQ,IAC/D,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,UAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,KAAK;IAEvD;IAEA;;GAEC,GACD,SAAS,IAAoB,EAAE;QAC7B,MAAM,MAAM,MAAO,CAAA,KAAK,MAAM,IAAI,EAAC,IAAK,cAAc,KAAK,QAAQ;QACnE,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,IAC5B,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,IACxB,IAAI,CAAC,IAAI,CAAC;QAGd,OACE,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,IAC5B,IAAI,CAAC,IAAI,CAAC,UAAe,IAAI,CAAC,MAAM,CAAC,MACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,UAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;IAEhC;IAEA;;GAEC,GACD,QAAQ,IAAmB,EAAE;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,OAAO,GAAG,KAAK,KAAK,QAAQ;IAClE;IAEA;;GAEC,GACD,UAAU,IAAqB,EAAE;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,KAAK,SAAS,GAAG,KAAK,KAAK,QAAQ;IACtE;IAEA;;GAEC,GACD,SAAS,IAAoB,EAAE;QAC7B,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE,KAAK,QAAQ,IACrD,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,IACxB,IAAI,CAAC,IAAI,CAAC;QAGd,OACE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,eAAe,KAAK,QAAQ,EAAE,KAAK,QAAQ,IACrE,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,UAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,KAAK;IAEvD;IAEA;;GAEC,GACD,UAAU,IAAqB,EAAE;QAC/B,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CACP,MAAO,CAAA,KAAK,MAAM,IAAI,EAAC,IAAK,eAAe,KAAK,IAAI,EACpD,KAAK,QAAQ,IAEf,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,KAAK,SAAS,IAC5B,IAAI,CAAC,IAAI,CAAC;QAGd,OACE,IAAI,CAAC,IAAI,CACP,MAAO,CAAA,KAAK,MAAM,IAAI,EAAC,IAAK,eAAe,KAAK,IAAI,EACpD,KAAK,QAAQ,IAEf,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;IAEhC;IAEA;;GAEC,GACD,SAAS,IAAoB,EAAE;QAC7B,MAAM,QAAQ,KAAK,YAAY;QAC/B,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAC9C,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,SACd,IAAI,CAAC,IAAI,CAAC;QAId,OACE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,MACrB,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,IAC/C,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAC/B,IAAI,CAAC,QAAQ,CAAC,OAAO,QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,OAAO,IAAI,CAAC,MAAM,KAAK;IAEvD;IAEA;;GAEC,GACD,KAAK,IAAgB,EAAE;QACrB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,MAAM,KAAK,SAAS,CAAC,MAAM,GAAG,KAAK,SAAS,CAAC,IAAI,CAAC,QAAQ;YAEhE,OACE,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,QAAQ,IACvC,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,KAAK,YAAY,IAC/B,IAAI,CAAC,IAAI,CAAC;QAEd;QACA,MAAM,MAAM,KAAK,SAAS,CAAC,MAAM,GAAG,KAAK,SAAS,CAAC,IAAI,CAAC,QAAQ,MAAM;QAEtE,OACE,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,QAAQ,IACvC,IAAI,CAAC,IAAI,CAAC,SACV,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,YAAY,EAAE,QACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OACtB,IAAI,CAAC,IAAI,CAAC;IAEd;IAEA;;GAEC,GACD,SAAS,IAAoB,EAAE;QAC7B,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,QAAQ,IACrC,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,KAAK,YAAY,IAC/B,IAAI,CAAC,IAAI,CAAC;QAGd,OACE,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,QAAQ,IACtC,IAAI,CAAC,IAAI,CAAC,SACV,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,YAAY,EAAE,QACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OACtB,IAAI,CAAC,IAAI,CAAC;IAEd;IAEA;;GAEC,GACD,KAAK,IAAgB,EAAE;QACrB,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,IAChC,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,IACxB,IAAI,CAAC,IAAI,CAAC;QAGd,OACE,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,IAChC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,UAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;IAEhC;IAEA;;GAEC,GACD,YAAY,IAAuB,EAAE;QACnC,OAAO,IAAI,CAAC,IAAI,CACd,mBAAmB,KAAK,IAAI,GAAG,MAAM,KAAK,KAAK,GAAG,KAClD,KAAK,QAAQ;IAEjB;IAEA;;GAEC,GACD,KAAK,IAAgB,EAAE;QACrB,MAAM,QAAQ,KAAK,YAAY;QAC/B,IAAI,CAAC,MAAM,MAAM,EACf,OAAO;QAGT,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IACjD,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,SACd,IAAI,CAAC,IAAI,CAAC;QAGd,MAAM,SAAS,IAAI,CAAC,MAAM;QAE1B,OACE,IAAI,CAAC,IAAI,CACP,KAAK,SAAS,CACX,GAAG,CAAC,CAAA;YACH,OAAO,SAAS;QAClB,GACC,IAAI,CAAC,QACR,KAAK,QAAQ,IAEf,IAAI,CAAC,IAAI,CAAC,UACV,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OACtB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK;IAErC;IAEA;;GAEC,GACD,YAAY,IAAuB,EAAE;QACnC,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,GAAG,MAAM,KAAK,KAAK,EAAE,KAAK,QAAQ,IACzD,IAAI,CAAC,IAAI,CAAC;QAGd,OACE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,MACrB,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,GAAG,OAAO,KAAK,KAAK,EAAE,KAAK,QAAQ,IAC1D,IAAI,CAAC,IAAI,CAAC;IAEd;AACF;IAEA,2CAAe;;;ID1bf,2CAAe,CACb,MACA;IAEA,MAAM,WAAW,IAAI,CAAA,GAAA,wCAAO,EAAE,WAAW,CAAC;IAC1C,OAAO,SAAS,OAAO,CAAC;AAC1B;;;;;;ALPO,MAAM,4CAAQ,CAAA,GAAA,wCAAM;AACpB,MAAM,4CAAY,CAAA,GAAA,wCAAU;IAInC,2CAAe;WAAC;eAAO;AAAS","sources":["src/index.ts","src/parse/index.ts","src/CssParseError.ts","src/CssPosition.ts","src/type.ts","src/stringify/index.ts","src/stringify/compiler.ts"],"sourcesContent":["import {default as parseFn} from './parse';\nimport {default as stringifyFn} from './stringify';\nexport const parse = parseFn;\nexport const stringify = stringifyFn;\nexport * from './type';\nexport * from './CssParseError';\nexport * from './CssPosition';\nexport default {parse, stringify};\n","import CssParseError from '../CssParseError';\nimport Position from '../CssPosition';\nimport {\n CssAtRuleAST,\n CssCharsetAST,\n CssCommentAST,\n CssCommonPositionAST,\n CssContainerAST,\n CssCustomMediaAST,\n CssDeclarationAST,\n CssDocumentAST,\n CssFontFaceAST,\n CssHostAST,\n CssImportAST,\n CssKeyframeAST,\n CssKeyframesAST,\n CssLayerAST,\n CssMediaAST,\n CssNamespaceAST,\n CssPageAST,\n CssRuleAST,\n CssStylesheetAST,\n CssSupportsAST,\n CssTypes,\n} from '../type';\n\n// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\n// New rule => https://www.w3.org/TR/CSS22/syndata.html#comments\n// [^] is equivalent to [.\\n\\r]\nconst commentre = /\\/\\*[^]*?(?:\\*\\/|$)/g;\n\nexport const parse = (\n css: string,\n options?: {source?: string; silent?: boolean}\n): CssStylesheetAST => {\n options = options || {};\n\n /**\n * Positional.\n */\n let lineno = 1;\n let column = 1;\n\n /**\n * Update lineno and column based on `str`.\n */\n function updatePosition(str: string) {\n const lines = str.match(/\\n/g);\n if (lines) lineno += lines.length;\n const i = str.lastIndexOf('\\n');\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n */\n function position() {\n const start = {line: lineno, column: column};\n return function (\n node: Omit\n ): T1 {\n (node as T1).position = new Position(\n start,\n {line: lineno, column: column},\n options?.source || ''\n );\n whitespace();\n return node as T1;\n };\n }\n\n /**\n * Error `msg`.\n */\n const errorsList: Array = [];\n\n function error(msg: string) {\n const err = new CssParseError(\n options?.source || '',\n msg,\n lineno,\n column,\n css\n );\n\n if (options?.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Parse stylesheet.\n */\n function stylesheet(): CssStylesheetAST {\n const rulesList = rules();\n\n const result: CssStylesheetAST = {\n type: CssTypes.stylesheet,\n stylesheet: {\n source: options?.source,\n rules: rulesList,\n parsingErrors: errorsList,\n },\n };\n\n return result;\n }\n\n /**\n * Opening brace.\n */\n function open() {\n return match(/^{\\s*/);\n }\n\n /**\n * Closing brace.\n */\n function close() {\n return match(/^}/);\n }\n\n /**\n * Parse ruleset.\n */\n function rules() {\n let node: CssRuleAST | CssAtRuleAST | void;\n const rules: Array = [];\n whitespace();\n comments(rules);\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\n if (node) {\n rules.push(node);\n comments(rules);\n }\n }\n return rules;\n }\n\n /**\n * Match `re` and return captures.\n */\n function match(re: RegExp) {\n const m = re.exec(css);\n if (!m) {\n return;\n }\n const str = m[0];\n updatePosition(str);\n css = css.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(/^\\s*/);\n }\n\n /**\n * Parse comments;\n */\n function comments(\n rules?: Array\n ) {\n let c;\n rules = rules || [];\n while ((c = comment())) {\n if (c) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n */\n function comment(): CssCommentAST | void {\n const pos = position();\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\n return;\n }\n\n const m = match(/^\\/\\*[^]*?\\*\\//);\n if (!m) {\n return error('End of comment missing');\n }\n\n return pos({\n type: CssTypes.comment,\n comment: m[0].slice(2, -2),\n });\n }\n\n function findClosingParenthese(\n str: string,\n start: number,\n depth: number\n ): number {\n let ptr = start + 1;\n let found = false;\n let closeParentheses = str.indexOf(')', ptr);\n while (!found && closeParentheses !== -1) {\n const nextParentheses = str.indexOf('(', ptr);\n if (nextParentheses !== -1 && nextParentheses < closeParentheses) {\n const nextSearch = findClosingParenthese(\n str,\n nextParentheses + 1,\n depth + 1\n );\n ptr = nextSearch + 1;\n closeParentheses = str.indexOf(')', ptr);\n } else {\n found = true;\n }\n }\n if (found && closeParentheses !== -1) {\n return closeParentheses;\n } else {\n return -1;\n }\n }\n\n /**\n * Parse selector.\n */\n function selector() {\n const m = match(/^([^{]+)/);\n if (!m) {\n return;\n }\n\n // remove comment in selector;\n let res = trim(m[0]).replace(commentre, '');\n\n // Optimisation: If there is no ',' no need to split or post-process (this is less costly)\n if (res.indexOf(',') === -1) {\n return [res];\n }\n\n // Replace all the , in the parentheses by \\u200C\n let ptr = 0;\n let startParentheses = res.indexOf('(', ptr);\n while (startParentheses !== -1) {\n const closeParentheses = findClosingParenthese(res, startParentheses, 0);\n if (closeParentheses === -1) {\n break;\n }\n ptr = closeParentheses + 1;\n res =\n res.substring(0, startParentheses) +\n res\n .substring(startParentheses, closeParentheses)\n .replace(/,/g, '\\u200C') +\n res.substring(closeParentheses);\n startParentheses = res.indexOf('(', ptr);\n }\n\n // Replace all the , in ' and \" by \\u200C\n res = res\n /**\n * replace ',' by \\u200C for data selector (div[data-lang=\"fr,de,us\"])\n *\n * Examples:\n * div[data-lang=\"fr,\\\"de,us\"]\n * div[data-lang='fr,\\'de,us']\n *\n * Regex logic:\n * (\"|')(?:\\\\\\1|.)*?\\1 => Handle the \" and '\n *\n * Optimization 1:\n * No greedy capture (see docs about the difference between .* and .*?)\n *\n * Optimization 2:\n * (\"|')(?:\\\\\\1|.)*?\\1 this use reference to capture group, it work faster.\n */\n .replace(/(\"|')(?:\\\\\\1|.)*?\\1/g, m => m.replace(/,/g, '\\u200C'));\n\n // Split all the left , and replace all the \\u200C by ,\n return (\n res\n // Split the selector by ','\n .split(',')\n // Replace back \\u200C by ','\n .map(s => {\n return trim(s.replace(/\\u200C/g, ','));\n })\n );\n }\n\n /**\n * Parse declaration.\n */\n function declaration(): CssDeclarationAST | void {\n const pos = position();\n\n // prop\n const propMatch = match(/^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\n if (!propMatch) {\n return;\n }\n const propValue = trim(propMatch[0]);\n\n // :\n if (!match(/^:\\s*/)) {\n return error(\"property missing ':'\");\n }\n\n // val\n const val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/);\n\n const ret = pos({\n type: CssTypes.declaration,\n property: propValue.replace(commentre, ''),\n value: val ? trim(val[0]).replace(commentre, '') : '',\n });\n\n // ;\n match(/^[;\\s]*/);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n */\n function declarations() {\n const decls: Array = [];\n\n if (!open()) {\n return error(\"missing '{'\");\n }\n comments(decls);\n\n // declarations\n let decl;\n while ((decl = declaration())) {\n if (decl) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n if (!close()) {\n return error(\"missing '}'\");\n }\n return decls;\n }\n\n /**\n * Parse keyframe.\n */\n function keyframe() {\n let m;\n const vals = [];\n const pos = position();\n\n while ((m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/))) {\n vals.push(m[1]);\n match(/^,\\s*/);\n }\n\n if (!vals.length) {\n return;\n }\n\n return pos({\n type: CssTypes.keyframe,\n values: vals,\n declarations: declarations() || [],\n });\n }\n\n /**\n * Parse keyframes.\n */\n function atkeyframes(): CssKeyframesAST | void {\n const pos = position();\n const m1 = match(/^@([-\\w]+)?keyframes\\s*/);\n\n if (!m1) {\n return;\n }\n const vendor = m1[1];\n\n // identifier\n const m2 = match(/^([-\\w]+)\\s*/);\n if (!m2) {\n return error('@keyframes missing name');\n }\n const name = m2[1];\n\n if (!open()) {\n return error(\"@keyframes missing '{'\");\n }\n\n let frame;\n let frames: Array = comments();\n while ((frame = keyframe())) {\n frames.push(frame);\n frames = frames.concat(comments());\n }\n\n if (!close()) {\n return error(\"@keyframes missing '}'\");\n }\n\n return pos({\n type: CssTypes.keyframes,\n name: name,\n vendor: vendor,\n keyframes: frames,\n });\n }\n\n /**\n * Parse supports.\n */\n function atsupports(): CssSupportsAST | void {\n const pos = position();\n const m = match(/^@supports *([^{]+)/);\n\n if (!m) {\n return;\n }\n const supports = trim(m[1]);\n\n if (!open()) {\n return error(\"@supports missing '{'\");\n }\n\n const style = comments().concat(rules());\n\n if (!close()) {\n return error(\"@supports missing '}'\");\n }\n\n return pos({\n type: CssTypes.supports,\n supports: supports,\n rules: style,\n });\n }\n\n /**\n * Parse host.\n */\n function athost() {\n const pos = position();\n const m = match(/^@host\\s*/);\n\n if (!m) {\n return;\n }\n\n if (!open()) {\n return error(\"@host missing '{'\");\n }\n\n const style = comments().concat(rules());\n\n if (!close()) {\n return error(\"@host missing '}'\");\n }\n\n return pos({\n type: CssTypes.host,\n rules: style,\n });\n }\n\n /**\n * Parse container.\n */\n function atcontainer(): CssContainerAST | void {\n const pos = position();\n const m = match(/^@container *([^{]+)/);\n\n if (!m) {\n return;\n }\n const container = trim(m[1]);\n\n if (!open()) {\n return error(\"@container missing '{'\");\n }\n\n const style = comments().concat(rules());\n\n if (!close()) {\n return error(\"@container missing '}'\");\n }\n\n return pos({\n type: CssTypes.container,\n container: container,\n rules: style,\n });\n }\n\n /**\n * Parse container.\n */\n function atlayer(): CssLayerAST | void {\n const pos = position();\n const m = match(/^@layer *([^{;@]+)/);\n\n if (!m) {\n return;\n }\n const layer = trim(m[1]);\n\n if (!open()) {\n match(/^[;\\s]*/);\n return pos({\n type: CssTypes.layer,\n layer: layer,\n });\n }\n\n const style = comments().concat(rules());\n\n if (!close()) {\n return error(\"@layer missing '}'\");\n }\n\n return pos({\n type: CssTypes.layer,\n layer: layer,\n rules: style,\n });\n }\n\n /**\n * Parse media.\n */\n function atmedia(): CssMediaAST | void {\n const pos = position();\n const m = match(/^@media *([^{]+)/);\n\n if (!m) {\n return;\n }\n const media = trim(m[1]);\n\n if (!open()) {\n return error(\"@media missing '{'\");\n }\n\n const style = comments().concat(rules());\n\n if (!close()) {\n return error(\"@media missing '}'\");\n }\n\n return pos({\n type: CssTypes.media,\n media: media,\n rules: style,\n });\n }\n\n /**\n * Parse custom-media.\n */\n function atcustommedia(): CssCustomMediaAST | void {\n const pos = position();\n const m = match(/^@custom-media\\s+(--\\S+)\\s*([^{;\\s][^{;]*);/);\n if (!m) {\n return;\n }\n\n return pos({\n type: CssTypes.customMedia,\n name: trim(m[1]),\n media: trim(m[2]),\n });\n }\n\n /**\n * Parse paged media.\n */\n function atpage(): CssPageAST | void {\n const pos = position();\n const m = match(/^@page */);\n if (!m) {\n return;\n }\n\n const sel = selector() || [];\n\n if (!open()) {\n return error(\"@page missing '{'\");\n }\n let decls = comments();\n\n // declarations\n let decl;\n while ((decl = declaration())) {\n decls.push(decl);\n decls = decls.concat(comments());\n }\n\n if (!close()) {\n return error(\"@page missing '}'\");\n }\n\n return pos({\n type: CssTypes.page,\n selectors: sel,\n declarations: decls,\n });\n }\n\n /**\n * Parse document.\n */\n function atdocument(): CssDocumentAST | void {\n const pos = position();\n const m = match(/^@([-\\w]+)?document *([^{]+)/);\n if (!m) {\n return;\n }\n\n const vendor = trim(m[1]);\n const doc = trim(m[2]);\n\n if (!open()) {\n return error(\"@document missing '{'\");\n }\n\n const style = comments().concat(rules());\n\n if (!close()) {\n return error(\"@document missing '}'\");\n }\n\n return pos({\n type: CssTypes.document,\n document: doc,\n vendor: vendor,\n rules: style,\n });\n }\n\n /**\n * Parse font-face.\n */\n function atfontface(): CssFontFaceAST | void {\n const pos = position();\n const m = match(/^@font-face\\s*/);\n if (!m) {\n return;\n }\n\n if (!open()) {\n return error(\"@font-face missing '{'\");\n }\n let decls = comments();\n\n // declarations\n let decl;\n while ((decl = declaration())) {\n decls.push(decl);\n decls = decls.concat(comments());\n }\n\n if (!close()) {\n return error(\"@font-face missing '}'\");\n }\n\n return pos({\n type: CssTypes.fontFace,\n declarations: decls,\n });\n }\n\n /**\n * Parse import\n */\n const atimport = _compileAtrule('import');\n\n /**\n * Parse charset\n */\n const atcharset = _compileAtrule('charset');\n\n /**\n * Parse namespace\n */\n const atnamespace = _compileAtrule('namespace');\n\n /**\n * Parse non-block at-rules\n */\n function _compileAtrule(\n name: string\n ): () => T1 | void {\n const re = new RegExp(\n '^@' +\n name +\n '\\\\s*((?::?[^;\\'\"]|\"(?:\\\\\\\\\"|[^\"])*?\"|\\'(?:\\\\\\\\\\'|[^\\'])*?\\')+)(?:;|$)'\n );\n\n // ^@import\\s*([^;\"']|(\"|')(?:\\\\\\2|.)*?\\2)+(;|$)\n\n return function (): T1 | void {\n const pos = position();\n const m = match(re);\n if (!m) {\n return;\n }\n const ret: Record = {type: name};\n ret[name] = m[1].trim();\n return pos(ret as unknown as T1) as T1;\n };\n }\n\n /**\n * Parse at rule.\n */\n function atrule(): CssAtRuleAST | void {\n if (css[0] !== '@') {\n return;\n }\n\n return (\n atkeyframes() ||\n atmedia() ||\n atcustommedia() ||\n atsupports() ||\n atimport() ||\n atcharset() ||\n atnamespace() ||\n atdocument() ||\n atpage() ||\n athost() ||\n atfontface() ||\n atcontainer() ||\n atlayer()\n );\n }\n\n /**\n * Parse rule.\n */\n function rule() {\n const pos = position();\n const sel = selector();\n\n if (!sel) {\n return error('selector missing');\n }\n comments();\n\n return pos({\n type: CssTypes.rule,\n selectors: sel,\n declarations: declarations() || [],\n });\n }\n\n return addParent(stylesheet());\n};\n\n/**\n * Trim `str`.\n */\nfunction trim(str: string) {\n return str ? str.trim() : '';\n}\n\n/**\n * Adds non-enumerable parent node reference to each node.\n */\nfunction addParent(obj: T1, parent?: unknown): T1 {\n const isNode = obj && typeof obj.type === 'string';\n const childParent = isNode ? obj : parent;\n\n for (const k in obj) {\n const value = obj[k];\n if (Array.isArray(value)) {\n value.forEach(v => {\n addParent(v, childParent);\n });\n } else if (value && typeof value === 'object') {\n addParent(value, childParent);\n }\n }\n\n if (isNode) {\n Object.defineProperty(obj, 'parent', {\n configurable: true,\n writable: true,\n enumerable: false,\n value: parent || null,\n });\n }\n\n return obj;\n}\n\nexport default parse;\n","export default class CssParseError extends Error {\n readonly reason: string;\n readonly filename?: string;\n readonly line: number;\n readonly column: number;\n readonly source: string;\n\n constructor(\n filename: string,\n msg: string,\n lineno: number,\n column: number,\n css: string\n ) {\n super(filename + ':' + lineno + ':' + column + ': ' + msg);\n this.reason = msg;\n this.filename = filename;\n this.line = lineno;\n this.column = column;\n this.source = css;\n }\n}\n","/**\n * Store position information for a node\n */\nexport default class Position {\n start: {line: number; column: number};\n end: {line: number; column: number};\n source?: string;\n\n constructor(\n start: {line: number; column: number},\n end: {line: number; column: number},\n source: string\n ) {\n this.start = start;\n this.end = end;\n this.source = source;\n }\n}\n","import CssParseError from './CssParseError';\nimport Position from './CssPosition';\n\nexport enum CssTypes {\n stylesheet = 'stylesheet',\n rule = 'rule',\n declaration = 'declaration',\n comment = 'comment',\n container = 'container',\n charset = 'charset',\n document = 'document',\n customMedia = 'custom-media',\n fontFace = 'font-face',\n host = 'host',\n import = 'import',\n keyframes = 'keyframes',\n keyframe = 'keyframe',\n layer = 'layer',\n media = 'media',\n namespace = 'namespace',\n page = 'page',\n supports = 'supports',\n}\n\nexport type CssCommonAST = {\n type: CssTypes;\n};\n\nexport type CssCommonPositionAST = CssCommonAST & {\n position?: Position;\n parent?: unknown;\n};\n\nexport type CssStylesheetAST = CssCommonAST & {\n type: CssTypes.stylesheet;\n stylesheet: {\n source?: string;\n rules: Array;\n parsingErrors?: Array;\n };\n};\n\nexport type CssRuleAST = CssCommonPositionAST & {\n type: CssTypes.rule;\n selectors: Array;\n declarations: Array;\n};\n\nexport type CssDeclarationAST = CssCommonPositionAST & {\n type: CssTypes.declaration;\n property: string;\n value: string;\n};\n\nexport type CssCommentAST = CssCommonPositionAST & {\n type: CssTypes.comment;\n comment: string;\n};\nexport type CssContainerAST = CssCommonPositionAST & {\n type: CssTypes.container;\n container: string;\n rules: Array;\n};\n\nexport type CssCharsetAST = CssCommonPositionAST & {\n type: CssTypes.charset;\n charset: string;\n};\nexport type CssCustomMediaAST = CssCommonPositionAST & {\n type: CssTypes.customMedia;\n name: string;\n media: string;\n};\nexport type CssDocumentAST = CssCommonPositionAST & {\n type: CssTypes.document;\n document: string;\n vendor?: string;\n rules: Array;\n};\nexport type CssFontFaceAST = CssCommonPositionAST & {\n type: CssTypes.fontFace;\n declarations: Array;\n};\nexport type CssHostAST = CssCommonPositionAST & {\n type: CssTypes.host;\n rules: Array;\n};\nexport type CssImportAST = CssCommonPositionAST & {\n type: CssTypes.import;\n import: string;\n};\nexport type CssKeyframesAST = CssCommonPositionAST & {\n type: CssTypes.keyframes;\n name: string;\n vendor?: string;\n keyframes: Array;\n};\nexport type CssKeyframeAST = CssCommonPositionAST & {\n type: CssTypes.keyframe;\n values: Array;\n declarations: Array;\n};\nexport type CssLayerAST = CssCommonPositionAST & {\n type: CssTypes.layer;\n layer: string;\n rules?: Array;\n};\nexport type CssMediaAST = CssCommonPositionAST & {\n type: CssTypes.media;\n media: string;\n rules: Array;\n};\nexport type CssNamespaceAST = CssCommonPositionAST & {\n type: CssTypes.namespace;\n namespace: string;\n};\nexport type CssPageAST = CssCommonPositionAST & {\n type: CssTypes.page;\n selectors: Array;\n declarations: Array;\n};\nexport type CssSupportsAST = CssCommonPositionAST & {\n type: CssTypes.supports;\n supports: string;\n rules: Array;\n};\n\nexport type CssAtRuleAST =\n | CssRuleAST\n | CssCommentAST\n | CssContainerAST\n | CssCharsetAST\n | CssCustomMediaAST\n | CssDocumentAST\n | CssFontFaceAST\n | CssHostAST\n | CssImportAST\n | CssKeyframesAST\n | CssLayerAST\n | CssMediaAST\n | CssNamespaceAST\n | CssPageAST\n | CssSupportsAST;\n\nexport type CssAllNodesAST =\n | CssAtRuleAST\n | CssStylesheetAST\n | CssDeclarationAST\n | CssKeyframeAST;\n","import {CssStylesheetAST} from '../type';\nimport Compiler from './compiler';\n\nexport default (\n node: CssStylesheetAST,\n options?: ConstructorParameters[0]\n) => {\n const compiler = new Compiler(options || {});\n return compiler.compile(node);\n};\n","import {\n CssAllNodesAST,\n CssCharsetAST,\n CssCommentAST,\n CssCommonPositionAST,\n CssContainerAST,\n CssCustomMediaAST,\n CssDeclarationAST,\n CssDocumentAST,\n CssFontFaceAST,\n CssHostAST,\n CssImportAST,\n CssKeyframeAST,\n CssKeyframesAST,\n CssLayerAST,\n CssMediaAST,\n CssNamespaceAST,\n CssPageAST,\n CssRuleAST,\n CssStylesheetAST,\n CssSupportsAST,\n CssTypes,\n} from '../type';\n\nclass Compiler {\n level = 0;\n indentation = ' ';\n compress = false;\n\n constructor(options?: {indent?: string; compress?: boolean}) {\n if (typeof options?.indent === 'string') {\n this.indentation = options?.indent;\n }\n if (options?.compress) {\n this.compress = true;\n }\n }\n\n // We disable no-unused-vars for _position. We keep position for potential reintroduction of source-map\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n emit(str: string, _position?: CssCommonPositionAST['position']) {\n return str;\n }\n\n /**\n * Increase, decrease or return current indentation.\n */\n indent(level?: number) {\n this.level = this.level || 1;\n\n if (level) {\n this.level += level;\n return '';\n }\n\n return Array(this.level).join(this.indentation);\n }\n\n visit(node: CssAllNodesAST): string {\n switch (node.type) {\n case CssTypes.stylesheet:\n return this.stylesheet(node);\n case CssTypes.rule:\n return this.rule(node);\n case CssTypes.declaration:\n return this.declaration(node);\n case CssTypes.comment:\n return this.comment(node);\n case CssTypes.container:\n return this.container(node);\n case CssTypes.charset:\n return this.charset(node);\n case CssTypes.document:\n return this.document(node);\n case CssTypes.customMedia:\n return this.customMedia(node);\n case CssTypes.fontFace:\n return this.fontFace(node);\n case CssTypes.host:\n return this.host(node);\n case CssTypes.import:\n return this.import(node);\n case CssTypes.keyframes:\n return this.keyframes(node);\n case CssTypes.keyframe:\n return this.keyframe(node);\n case CssTypes.layer:\n return this.layer(node);\n case CssTypes.media:\n return this.media(node);\n case CssTypes.namespace:\n return this.namespace(node);\n case CssTypes.page:\n return this.page(node);\n case CssTypes.supports:\n return this.supports(node);\n }\n }\n\n mapVisit(nodes: Array, delim?: string) {\n let buf = '';\n delim = delim || '';\n\n for (let i = 0, length = nodes.length; i < length; i++) {\n buf += this.visit(nodes[i]);\n if (delim && i < length - 1) {\n buf += this.emit(delim);\n }\n }\n\n return buf;\n }\n\n compile(node: CssStylesheetAST) {\n if (this.compress) {\n return node.stylesheet.rules.map(this.visit, this).join('');\n }\n\n return this.stylesheet(node);\n }\n\n /**\n * Visit stylesheet node.\n */\n stylesheet(node: CssStylesheetAST) {\n return this.mapVisit(node.stylesheet.rules, '\\n\\n');\n }\n\n /**\n * Visit comment node.\n */\n comment(node: CssCommentAST) {\n if (this.compress) {\n return this.emit('', node.position);\n }\n return this.emit(this.indent() + '/*' + node.comment + '*/', node.position);\n }\n\n /**\n * Visit container node.\n */\n container(node: CssContainerAST) {\n if (this.compress) {\n return (\n this.emit('@container ' + node.container, node.position) +\n this.emit('{') +\n this.mapVisit(node.rules) +\n this.emit('}')\n );\n }\n return (\n this.emit(this.indent() + '@container ' + node.container, node.position) +\n this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(node.rules, '\\n\\n') +\n this.emit('\\n' + this.indent(-1) + this.indent() + '}')\n );\n }\n\n /**\n * Visit container node.\n */\n layer(node: CssLayerAST) {\n if (this.compress) {\n return (\n this.emit('@layer ' + node.layer, node.position) +\n (node.rules\n ? this.emit('{') +\n this.mapVisit(node.rules) +\n this.emit('}')\n : ';')\n );\n }\n return (\n this.emit(this.indent() + '@layer ' + node.layer, node.position) +\n (node.rules\n ? this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(node.rules, '\\n\\n') +\n this.emit('\\n' + this.indent(-1) + this.indent() + '}')\n : ';')\n );\n }\n\n /**\n * Visit import node.\n */\n import(node: CssImportAST) {\n return this.emit('@import ' + node.import + ';', node.position);\n }\n\n /**\n * Visit media node.\n */\n media(node: CssMediaAST) {\n if (this.compress) {\n return (\n this.emit('@media ' + node.media, node.position) +\n this.emit('{') +\n this.mapVisit(node.rules) +\n this.emit('}')\n );\n }\n return (\n this.emit(this.indent() + '@media ' + node.media, node.position) +\n this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(node.rules, '\\n\\n') +\n this.emit('\\n' + this.indent(-1) + this.indent() + '}')\n );\n }\n\n /**\n * Visit document node.\n */\n document(node: CssDocumentAST) {\n const doc = '@' + (node.vendor || '') + 'document ' + node.document;\n if (this.compress) {\n return (\n this.emit(doc, node.position) +\n this.emit('{') +\n this.mapVisit(node.rules) +\n this.emit('}')\n );\n }\n return (\n this.emit(doc, node.position) +\n this.emit(' ' + ' {\\n' + this.indent(1)) +\n this.mapVisit(node.rules, '\\n\\n') +\n this.emit(this.indent(-1) + '\\n}')\n );\n }\n\n /**\n * Visit charset node.\n */\n charset(node: CssCharsetAST) {\n return this.emit('@charset ' + node.charset + ';', node.position);\n }\n\n /**\n * Visit namespace node.\n */\n namespace(node: CssNamespaceAST) {\n return this.emit('@namespace ' + node.namespace + ';', node.position);\n }\n\n /**\n * Visit supports node.\n */\n supports(node: CssSupportsAST) {\n if (this.compress) {\n return (\n this.emit('@supports ' + node.supports, node.position) +\n this.emit('{') +\n this.mapVisit(node.rules) +\n this.emit('}')\n );\n }\n return (\n this.emit(this.indent() + '@supports ' + node.supports, node.position) +\n this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(node.rules, '\\n\\n') +\n this.emit('\\n' + this.indent(-1) + this.indent() + '}')\n );\n }\n\n /**\n * Visit keyframes node.\n */\n keyframes(node: CssKeyframesAST) {\n if (this.compress) {\n return (\n this.emit(\n '@' + (node.vendor || '') + 'keyframes ' + node.name,\n node.position\n ) +\n this.emit('{') +\n this.mapVisit(node.keyframes) +\n this.emit('}')\n );\n }\n return (\n this.emit(\n '@' + (node.vendor || '') + 'keyframes ' + node.name,\n node.position\n ) +\n this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(node.keyframes, '\\n') +\n this.emit(this.indent(-1) + '}')\n );\n }\n\n /**\n * Visit keyframe node.\n */\n keyframe(node: CssKeyframeAST) {\n const decls = node.declarations;\n if (this.compress) {\n return (\n this.emit(node.values.join(','), node.position) +\n this.emit('{') +\n this.mapVisit(decls) +\n this.emit('}')\n );\n }\n\n return (\n this.emit(this.indent()) +\n this.emit(node.values.join(', '), node.position) +\n this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(decls, '\\n') +\n this.emit(this.indent(-1) + '\\n' + this.indent() + '}\\n')\n );\n }\n\n /**\n * Visit page node.\n */\n page(node: CssPageAST) {\n if (this.compress) {\n const sel = node.selectors.length ? node.selectors.join(', ') : '';\n\n return (\n this.emit('@page ' + sel, node.position) +\n this.emit('{') +\n this.mapVisit(node.declarations) +\n this.emit('}')\n );\n }\n const sel = node.selectors.length ? node.selectors.join(', ') + ' ' : '';\n\n return (\n this.emit('@page ' + sel, node.position) +\n this.emit('{\\n') +\n this.emit(this.indent(1)) +\n this.mapVisit(node.declarations, '\\n') +\n this.emit(this.indent(-1)) +\n this.emit('\\n}')\n );\n }\n\n /**\n * Visit font-face node.\n */\n fontFace(node: CssFontFaceAST) {\n if (this.compress) {\n return (\n this.emit('@font-face', node.position) +\n this.emit('{') +\n this.mapVisit(node.declarations) +\n this.emit('}')\n );\n }\n return (\n this.emit('@font-face ', node.position) +\n this.emit('{\\n') +\n this.emit(this.indent(1)) +\n this.mapVisit(node.declarations, '\\n') +\n this.emit(this.indent(-1)) +\n this.emit('\\n}')\n );\n }\n\n /**\n * Visit host node.\n */\n host(node: CssHostAST) {\n if (this.compress) {\n return (\n this.emit('@host', node.position) +\n this.emit('{') +\n this.mapVisit(node.rules) +\n this.emit('}')\n );\n }\n return (\n this.emit('@host', node.position) +\n this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(node.rules, '\\n\\n') +\n this.emit(this.indent(-1) + '\\n}')\n );\n }\n\n /**\n * Visit custom-media node.\n */\n customMedia(node: CssCustomMediaAST) {\n return this.emit(\n '@custom-media ' + node.name + ' ' + node.media + ';',\n node.position\n );\n }\n\n /**\n * Visit rule node.\n */\n rule(node: CssRuleAST) {\n const decls = node.declarations;\n if (!decls.length) {\n return '';\n }\n\n if (this.compress) {\n return (\n this.emit(node.selectors.join(','), node.position) +\n this.emit('{') +\n this.mapVisit(decls) +\n this.emit('}')\n );\n }\n const indent = this.indent();\n\n return (\n this.emit(\n node.selectors\n .map(s => {\n return indent + s;\n })\n .join(',\\n'),\n node.position\n ) +\n this.emit(' {\\n') +\n this.emit(this.indent(1)) +\n this.mapVisit(decls, '\\n') +\n this.emit(this.indent(-1)) +\n this.emit('\\n' + this.indent() + '}')\n );\n }\n\n /**\n * Visit declaration node.\n */\n declaration(node: CssDeclarationAST) {\n if (this.compress) {\n return (\n this.emit(node.property + ':' + node.value, node.position) +\n this.emit(';')\n );\n }\n return (\n this.emit(this.indent()) +\n this.emit(node.property + ': ' + node.value, node.position) +\n this.emit(';')\n );\n }\n}\n\nexport default Compiler;\n"],"names":[],"version":3,"file":"index.cjs.map"} \ No newline at end of file diff --git a/node_modules/@adobe/css-tools/dist/index.mjs b/node_modules/@adobe/css-tools/dist/index.mjs new file mode 100644 index 0000000..488f3d7 --- /dev/null +++ b/node_modules/@adobe/css-tools/dist/index.mjs @@ -0,0 +1,765 @@ + +function $parcel$defineInteropFlag(a) { + Object.defineProperty(a, '__esModule', {value: true, configurable: true}); +} + +function $parcel$export(e, n, v, s) { + Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true}); +} +var $009ddb00d3ec72b8$exports = {}; + +$parcel$defineInteropFlag($009ddb00d3ec72b8$exports); + +$parcel$export($009ddb00d3ec72b8$exports, "default", () => $009ddb00d3ec72b8$export$2e2bcd8739ae039); +class $009ddb00d3ec72b8$export$2e2bcd8739ae039 extends Error { + constructor(filename, msg, lineno, column, css){ + super(filename + ":" + lineno + ":" + column + ": " + msg); + this.reason = msg; + this.filename = filename; + this.line = lineno; + this.column = column; + this.source = css; + } +} + + +var $0865a9fb4cc365fe$exports = {}; + +$parcel$defineInteropFlag($0865a9fb4cc365fe$exports); + +$parcel$export($0865a9fb4cc365fe$exports, "default", () => $0865a9fb4cc365fe$export$2e2bcd8739ae039); +/** + * Store position information for a node + */ class $0865a9fb4cc365fe$export$2e2bcd8739ae039 { + constructor(start, end, source){ + this.start = start; + this.end = end; + this.source = source; + } +} + + +var $b2e137848b48cf4f$exports = {}; + +$parcel$export($b2e137848b48cf4f$exports, "CssTypes", () => $b2e137848b48cf4f$export$9be5dd6e61d5d73a); +var $b2e137848b48cf4f$export$9be5dd6e61d5d73a; +(function(CssTypes) { + CssTypes["stylesheet"] = "stylesheet"; + CssTypes["rule"] = "rule"; + CssTypes["declaration"] = "declaration"; + CssTypes["comment"] = "comment"; + CssTypes["container"] = "container"; + CssTypes["charset"] = "charset"; + CssTypes["document"] = "document"; + CssTypes["customMedia"] = "custom-media"; + CssTypes["fontFace"] = "font-face"; + CssTypes["host"] = "host"; + CssTypes["import"] = "import"; + CssTypes["keyframes"] = "keyframes"; + CssTypes["keyframe"] = "keyframe"; + CssTypes["layer"] = "layer"; + CssTypes["media"] = "media"; + CssTypes["namespace"] = "namespace"; + CssTypes["page"] = "page"; + CssTypes["supports"] = "supports"; +})($b2e137848b48cf4f$export$9be5dd6e61d5d73a || ($b2e137848b48cf4f$export$9be5dd6e61d5d73a = {})); + + +// http://www.w3.org/TR/CSS21/grammar.html +// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027 +// New rule => https://www.w3.org/TR/CSS22/syndata.html#comments +// [^] is equivalent to [.\n\r] +const $d708735ed1303b43$var$commentre = /\/\*[^]*?(?:\*\/|$)/g; +const $d708735ed1303b43$export$98e6a39c04603d36 = (css, options)=>{ + options = options || {}; + /** + * Positional. + */ let lineno = 1; + let column = 1; + /** + * Update lineno and column based on `str`. + */ function updatePosition(str) { + const lines = str.match(/\n/g); + if (lines) lineno += lines.length; + const i = str.lastIndexOf("\n"); + column = ~i ? str.length - i : column + str.length; + } + /** + * Mark position and patch `node.position`. + */ function position() { + const start = { + line: lineno, + column: column + }; + return function(node) { + node.position = new (0, $0865a9fb4cc365fe$export$2e2bcd8739ae039)(start, { + line: lineno, + column: column + }, options?.source || ""); + whitespace(); + return node; + }; + } + /** + * Error `msg`. + */ const errorsList = []; + function error(msg) { + const err = new (0, $009ddb00d3ec72b8$export$2e2bcd8739ae039)(options?.source || "", msg, lineno, column, css); + if (options?.silent) errorsList.push(err); + else throw err; + } + /** + * Parse stylesheet. + */ function stylesheet() { + const rulesList = rules(); + const result = { + type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).stylesheet, + stylesheet: { + source: options?.source, + rules: rulesList, + parsingErrors: errorsList + } + }; + return result; + } + /** + * Opening brace. + */ function open() { + return match(/^{\s*/); + } + /** + * Closing brace. + */ function close() { + return match(/^}/); + } + /** + * Parse ruleset. + */ function rules() { + let node; + const rules = []; + whitespace(); + comments(rules); + while(css.length && css.charAt(0) !== "}" && (node = atrule() || rule()))if (node) { + rules.push(node); + comments(rules); + } + return rules; + } + /** + * Match `re` and return captures. + */ function match(re) { + const m = re.exec(css); + if (!m) return; + const str = m[0]; + updatePosition(str); + css = css.slice(str.length); + return m; + } + /** + * Parse whitespace. + */ function whitespace() { + match(/^\s*/); + } + /** + * Parse comments; + */ function comments(rules) { + let c; + rules = rules || []; + while(c = comment())if (c) rules.push(c); + return rules; + } + /** + * Parse comment. + */ function comment() { + const pos = position(); + if ("/" !== css.charAt(0) || "*" !== css.charAt(1)) return; + const m = match(/^\/\*[^]*?\*\//); + if (!m) return error("End of comment missing"); + return pos({ + type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).comment, + comment: m[0].slice(2, -2) + }); + } + function findClosingParenthese(str, start, depth) { + let ptr = start + 1; + let found = false; + let closeParentheses = str.indexOf(")", ptr); + while(!found && closeParentheses !== -1){ + const nextParentheses = str.indexOf("(", ptr); + if (nextParentheses !== -1 && nextParentheses < closeParentheses) { + const nextSearch = findClosingParenthese(str, nextParentheses + 1, depth + 1); + ptr = nextSearch + 1; + closeParentheses = str.indexOf(")", ptr); + } else found = true; + } + if (found && closeParentheses !== -1) return closeParentheses; + else return -1; + } + /** + * Parse selector. + */ function selector() { + const m = match(/^([^{]+)/); + if (!m) return; + // remove comment in selector; + let res = $d708735ed1303b43$var$trim(m[0]).replace($d708735ed1303b43$var$commentre, ""); + // Optimisation: If there is no ',' no need to split or post-process (this is less costly) + if (res.indexOf(",") === -1) return [ + res + ]; + // Replace all the , in the parentheses by \u200C + let ptr = 0; + let startParentheses = res.indexOf("(", ptr); + while(startParentheses !== -1){ + const closeParentheses = findClosingParenthese(res, startParentheses, 0); + if (closeParentheses === -1) break; + ptr = closeParentheses + 1; + res = res.substring(0, startParentheses) + res.substring(startParentheses, closeParentheses).replace(/,/g, "\u200C") + res.substring(closeParentheses); + startParentheses = res.indexOf("(", ptr); + } + // Replace all the , in ' and " by \u200C + res = res/** + * replace ',' by \u200C for data selector (div[data-lang="fr,de,us"]) + * + * Examples: + * div[data-lang="fr,\"de,us"] + * div[data-lang='fr,\'de,us'] + * + * Regex logic: + * ("|')(?:\\\1|.)*?\1 => Handle the " and ' + * + * Optimization 1: + * No greedy capture (see docs about the difference between .* and .*?) + * + * Optimization 2: + * ("|')(?:\\\1|.)*?\1 this use reference to capture group, it work faster. + */ .replace(/("|')(?:\\\1|.)*?\1/g, (m)=>m.replace(/,/g, "\u200C")); + // Split all the left , and replace all the \u200C by , + return res// Split the selector by ',' + .split(",")// Replace back \u200C by ',' + .map((s)=>{ + return $d708735ed1303b43$var$trim(s.replace(/\u200C/g, ",")); + }); + } + /** + * Parse declaration. + */ function declaration() { + const pos = position(); + // prop + const propMatch = match(/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/); + if (!propMatch) return; + const propValue = $d708735ed1303b43$var$trim(propMatch[0]); + // : + if (!match(/^:\s*/)) return error("property missing ':'"); + // val + const val = match(/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/); + const ret = pos({ + type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).declaration, + property: propValue.replace($d708735ed1303b43$var$commentre, ""), + value: val ? $d708735ed1303b43$var$trim(val[0]).replace($d708735ed1303b43$var$commentre, "") : "" + }); + // ; + match(/^[;\s]*/); + return ret; + } + /** + * Parse declarations. + */ function declarations() { + const decls = []; + if (!open()) return error("missing '{'"); + comments(decls); + // declarations + let decl; + while(decl = declaration())if (decl) { + decls.push(decl); + comments(decls); + } + if (!close()) return error("missing '}'"); + return decls; + } + /** + * Parse keyframe. + */ function keyframe() { + let m; + const vals = []; + const pos = position(); + while(m = match(/^((\d+\.\d+|\.\d+|\d+)%?|[a-z]+)\s*/)){ + vals.push(m[1]); + match(/^,\s*/); + } + if (!vals.length) return; + return pos({ + type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).keyframe, + values: vals, + declarations: declarations() || [] + }); + } + /** + * Parse keyframes. + */ function atkeyframes() { + const pos = position(); + const m1 = match(/^@([-\w]+)?keyframes\s*/); + if (!m1) return; + const vendor = m1[1]; + // identifier + const m2 = match(/^([-\w]+)\s*/); + if (!m2) return error("@keyframes missing name"); + const name = m2[1]; + if (!open()) return error("@keyframes missing '{'"); + let frame; + let frames = comments(); + while(frame = keyframe()){ + frames.push(frame); + frames = frames.concat(comments()); + } + if (!close()) return error("@keyframes missing '}'"); + return pos({ + type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).keyframes, + name: name, + vendor: vendor, + keyframes: frames + }); + } + /** + * Parse supports. + */ function atsupports() { + const pos = position(); + const m = match(/^@supports *([^{]+)/); + if (!m) return; + const supports = $d708735ed1303b43$var$trim(m[1]); + if (!open()) return error("@supports missing '{'"); + const style = comments().concat(rules()); + if (!close()) return error("@supports missing '}'"); + return pos({ + type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).supports, + supports: supports, + rules: style + }); + } + /** + * Parse host. + */ function athost() { + const pos = position(); + const m = match(/^@host\s*/); + if (!m) return; + if (!open()) return error("@host missing '{'"); + const style = comments().concat(rules()); + if (!close()) return error("@host missing '}'"); + return pos({ + type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).host, + rules: style + }); + } + /** + * Parse container. + */ function atcontainer() { + const pos = position(); + const m = match(/^@container *([^{]+)/); + if (!m) return; + const container = $d708735ed1303b43$var$trim(m[1]); + if (!open()) return error("@container missing '{'"); + const style = comments().concat(rules()); + if (!close()) return error("@container missing '}'"); + return pos({ + type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).container, + container: container, + rules: style + }); + } + /** + * Parse container. + */ function atlayer() { + const pos = position(); + const m = match(/^@layer *([^{;@]+)/); + if (!m) return; + const layer = $d708735ed1303b43$var$trim(m[1]); + if (!open()) { + match(/^[;\s]*/); + return pos({ + type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).layer, + layer: layer + }); + } + const style = comments().concat(rules()); + if (!close()) return error("@layer missing '}'"); + return pos({ + type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).layer, + layer: layer, + rules: style + }); + } + /** + * Parse media. + */ function atmedia() { + const pos = position(); + const m = match(/^@media *([^{]+)/); + if (!m) return; + const media = $d708735ed1303b43$var$trim(m[1]); + if (!open()) return error("@media missing '{'"); + const style = comments().concat(rules()); + if (!close()) return error("@media missing '}'"); + return pos({ + type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).media, + media: media, + rules: style + }); + } + /** + * Parse custom-media. + */ function atcustommedia() { + const pos = position(); + const m = match(/^@custom-media\s+(--\S+)\s*([^{;\s][^{;]*);/); + if (!m) return; + return pos({ + type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).customMedia, + name: $d708735ed1303b43$var$trim(m[1]), + media: $d708735ed1303b43$var$trim(m[2]) + }); + } + /** + * Parse paged media. + */ function atpage() { + const pos = position(); + const m = match(/^@page */); + if (!m) return; + const sel = selector() || []; + if (!open()) return error("@page missing '{'"); + let decls = comments(); + // declarations + let decl; + while(decl = declaration()){ + decls.push(decl); + decls = decls.concat(comments()); + } + if (!close()) return error("@page missing '}'"); + return pos({ + type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).page, + selectors: sel, + declarations: decls + }); + } + /** + * Parse document. + */ function atdocument() { + const pos = position(); + const m = match(/^@([-\w]+)?document *([^{]+)/); + if (!m) return; + const vendor = $d708735ed1303b43$var$trim(m[1]); + const doc = $d708735ed1303b43$var$trim(m[2]); + if (!open()) return error("@document missing '{'"); + const style = comments().concat(rules()); + if (!close()) return error("@document missing '}'"); + return pos({ + type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).document, + document: doc, + vendor: vendor, + rules: style + }); + } + /** + * Parse font-face. + */ function atfontface() { + const pos = position(); + const m = match(/^@font-face\s*/); + if (!m) return; + if (!open()) return error("@font-face missing '{'"); + let decls = comments(); + // declarations + let decl; + while(decl = declaration()){ + decls.push(decl); + decls = decls.concat(comments()); + } + if (!close()) return error("@font-face missing '}'"); + return pos({ + type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).fontFace, + declarations: decls + }); + } + /** + * Parse import + */ const atimport = _compileAtrule("import"); + /** + * Parse charset + */ const atcharset = _compileAtrule("charset"); + /** + * Parse namespace + */ const atnamespace = _compileAtrule("namespace"); + /** + * Parse non-block at-rules + */ function _compileAtrule(name) { + const re = new RegExp("^@" + name + "\\s*((?::?[^;'\"]|\"(?:\\\\\"|[^\"])*?\"|'(?:\\\\'|[^'])*?')+)(?:;|$)"); + // ^@import\s*([^;"']|("|')(?:\\\2|.)*?\2)+(;|$) + return function() { + const pos = position(); + const m = match(re); + if (!m) return; + const ret = { + type: name + }; + ret[name] = m[1].trim(); + return pos(ret); + }; + } + /** + * Parse at rule. + */ function atrule() { + if (css[0] !== "@") return; + return atkeyframes() || atmedia() || atcustommedia() || atsupports() || atimport() || atcharset() || atnamespace() || atdocument() || atpage() || athost() || atfontface() || atcontainer() || atlayer(); + } + /** + * Parse rule. + */ function rule() { + const pos = position(); + const sel = selector(); + if (!sel) return error("selector missing"); + comments(); + return pos({ + type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).rule, + selectors: sel, + declarations: declarations() || [] + }); + } + return $d708735ed1303b43$var$addParent(stylesheet()); +}; +/** + * Trim `str`. + */ function $d708735ed1303b43$var$trim(str) { + return str ? str.trim() : ""; +} +/** + * Adds non-enumerable parent node reference to each node. + */ function $d708735ed1303b43$var$addParent(obj, parent) { + const isNode = obj && typeof obj.type === "string"; + const childParent = isNode ? obj : parent; + for(const k in obj){ + const value = obj[k]; + if (Array.isArray(value)) value.forEach((v)=>{ + $d708735ed1303b43$var$addParent(v, childParent); + }); + else if (value && typeof value === "object") $d708735ed1303b43$var$addParent(value, childParent); + } + if (isNode) Object.defineProperty(obj, "parent", { + configurable: true, + writable: true, + enumerable: false, + value: parent || null + }); + return obj; +} +var $d708735ed1303b43$export$2e2bcd8739ae039 = $d708735ed1303b43$export$98e6a39c04603d36; + + + +class $de9540138ed1fd01$var$Compiler { + constructor(options){ + this.level = 0; + this.indentation = " "; + this.compress = false; + if (typeof options?.indent === "string") this.indentation = options?.indent; + if (options?.compress) this.compress = true; + } + // We disable no-unused-vars for _position. We keep position for potential reintroduction of source-map + // eslint-disable-next-line @typescript-eslint/no-unused-vars + emit(str, _position) { + return str; + } + /** + * Increase, decrease or return current indentation. + */ indent(level) { + this.level = this.level || 1; + if (level) { + this.level += level; + return ""; + } + return Array(this.level).join(this.indentation); + } + visit(node) { + switch(node.type){ + case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).stylesheet: + return this.stylesheet(node); + case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).rule: + return this.rule(node); + case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).declaration: + return this.declaration(node); + case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).comment: + return this.comment(node); + case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).container: + return this.container(node); + case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).charset: + return this.charset(node); + case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).document: + return this.document(node); + case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).customMedia: + return this.customMedia(node); + case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).fontFace: + return this.fontFace(node); + case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).host: + return this.host(node); + case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).import: + return this.import(node); + case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).keyframes: + return this.keyframes(node); + case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).keyframe: + return this.keyframe(node); + case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).layer: + return this.layer(node); + case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).media: + return this.media(node); + case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).namespace: + return this.namespace(node); + case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).page: + return this.page(node); + case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).supports: + return this.supports(node); + } + } + mapVisit(nodes, delim) { + let buf = ""; + delim = delim || ""; + for(let i = 0, length = nodes.length; i < length; i++){ + buf += this.visit(nodes[i]); + if (delim && i < length - 1) buf += this.emit(delim); + } + return buf; + } + compile(node) { + if (this.compress) return node.stylesheet.rules.map(this.visit, this).join(""); + return this.stylesheet(node); + } + /** + * Visit stylesheet node. + */ stylesheet(node) { + return this.mapVisit(node.stylesheet.rules, "\n\n"); + } + /** + * Visit comment node. + */ comment(node) { + if (this.compress) return this.emit("", node.position); + return this.emit(this.indent() + "/*" + node.comment + "*/", node.position); + } + /** + * Visit container node. + */ container(node) { + if (this.compress) return this.emit("@container " + node.container, node.position) + this.emit("{") + this.mapVisit(node.rules) + this.emit("}"); + return this.emit(this.indent() + "@container " + node.container, node.position) + this.emit(" {\n" + this.indent(1)) + this.mapVisit(node.rules, "\n\n") + this.emit("\n" + this.indent(-1) + this.indent() + "}"); + } + /** + * Visit container node. + */ layer(node) { + if (this.compress) return this.emit("@layer " + node.layer, node.position) + (node.rules ? this.emit("{") + this.mapVisit(node.rules) + this.emit("}") : ";"); + return this.emit(this.indent() + "@layer " + node.layer, node.position) + (node.rules ? this.emit(" {\n" + this.indent(1)) + this.mapVisit(node.rules, "\n\n") + this.emit("\n" + this.indent(-1) + this.indent() + "}") : ";"); + } + /** + * Visit import node. + */ import(node) { + return this.emit("@import " + node.import + ";", node.position); + } + /** + * Visit media node. + */ media(node) { + if (this.compress) return this.emit("@media " + node.media, node.position) + this.emit("{") + this.mapVisit(node.rules) + this.emit("}"); + return this.emit(this.indent() + "@media " + node.media, node.position) + this.emit(" {\n" + this.indent(1)) + this.mapVisit(node.rules, "\n\n") + this.emit("\n" + this.indent(-1) + this.indent() + "}"); + } + /** + * Visit document node. + */ document(node) { + const doc = "@" + (node.vendor || "") + "document " + node.document; + if (this.compress) return this.emit(doc, node.position) + this.emit("{") + this.mapVisit(node.rules) + this.emit("}"); + return this.emit(doc, node.position) + this.emit(" {\n" + this.indent(1)) + this.mapVisit(node.rules, "\n\n") + this.emit(this.indent(-1) + "\n}"); + } + /** + * Visit charset node. + */ charset(node) { + return this.emit("@charset " + node.charset + ";", node.position); + } + /** + * Visit namespace node. + */ namespace(node) { + return this.emit("@namespace " + node.namespace + ";", node.position); + } + /** + * Visit supports node. + */ supports(node) { + if (this.compress) return this.emit("@supports " + node.supports, node.position) + this.emit("{") + this.mapVisit(node.rules) + this.emit("}"); + return this.emit(this.indent() + "@supports " + node.supports, node.position) + this.emit(" {\n" + this.indent(1)) + this.mapVisit(node.rules, "\n\n") + this.emit("\n" + this.indent(-1) + this.indent() + "}"); + } + /** + * Visit keyframes node. + */ keyframes(node) { + if (this.compress) return this.emit("@" + (node.vendor || "") + "keyframes " + node.name, node.position) + this.emit("{") + this.mapVisit(node.keyframes) + this.emit("}"); + return this.emit("@" + (node.vendor || "") + "keyframes " + node.name, node.position) + this.emit(" {\n" + this.indent(1)) + this.mapVisit(node.keyframes, "\n") + this.emit(this.indent(-1) + "}"); + } + /** + * Visit keyframe node. + */ keyframe(node) { + const decls = node.declarations; + if (this.compress) return this.emit(node.values.join(","), node.position) + this.emit("{") + this.mapVisit(decls) + this.emit("}"); + return this.emit(this.indent()) + this.emit(node.values.join(", "), node.position) + this.emit(" {\n" + this.indent(1)) + this.mapVisit(decls, "\n") + this.emit(this.indent(-1) + "\n" + this.indent() + "}\n"); + } + /** + * Visit page node. + */ page(node) { + if (this.compress) { + const sel = node.selectors.length ? node.selectors.join(", ") : ""; + return this.emit("@page " + sel, node.position) + this.emit("{") + this.mapVisit(node.declarations) + this.emit("}"); + } + const sel = node.selectors.length ? node.selectors.join(", ") + " " : ""; + return this.emit("@page " + sel, node.position) + this.emit("{\n") + this.emit(this.indent(1)) + this.mapVisit(node.declarations, "\n") + this.emit(this.indent(-1)) + this.emit("\n}"); + } + /** + * Visit font-face node. + */ fontFace(node) { + if (this.compress) return this.emit("@font-face", node.position) + this.emit("{") + this.mapVisit(node.declarations) + this.emit("}"); + return this.emit("@font-face ", node.position) + this.emit("{\n") + this.emit(this.indent(1)) + this.mapVisit(node.declarations, "\n") + this.emit(this.indent(-1)) + this.emit("\n}"); + } + /** + * Visit host node. + */ host(node) { + if (this.compress) return this.emit("@host", node.position) + this.emit("{") + this.mapVisit(node.rules) + this.emit("}"); + return this.emit("@host", node.position) + this.emit(" {\n" + this.indent(1)) + this.mapVisit(node.rules, "\n\n") + this.emit(this.indent(-1) + "\n}"); + } + /** + * Visit custom-media node. + */ customMedia(node) { + return this.emit("@custom-media " + node.name + " " + node.media + ";", node.position); + } + /** + * Visit rule node. + */ rule(node) { + const decls = node.declarations; + if (!decls.length) return ""; + if (this.compress) return this.emit(node.selectors.join(","), node.position) + this.emit("{") + this.mapVisit(decls) + this.emit("}"); + const indent = this.indent(); + return this.emit(node.selectors.map((s)=>{ + return indent + s; + }).join(",\n"), node.position) + this.emit(" {\n") + this.emit(this.indent(1)) + this.mapVisit(decls, "\n") + this.emit(this.indent(-1)) + this.emit("\n" + this.indent() + "}"); + } + /** + * Visit declaration node. + */ declaration(node) { + if (this.compress) return this.emit(node.property + ":" + node.value, node.position) + this.emit(";"); + return this.emit(this.indent()) + this.emit(node.property + ": " + node.value, node.position) + this.emit(";"); + } +} +var $de9540138ed1fd01$export$2e2bcd8739ae039 = $de9540138ed1fd01$var$Compiler; + + +var $fdf773ab87e20450$export$2e2bcd8739ae039 = (node, options)=>{ + const compiler = new (0, $de9540138ed1fd01$export$2e2bcd8739ae039)(options || {}); + return compiler.compile(node); +}; + + + + + +const $149c1bd638913645$export$98e6a39c04603d36 = (0, $d708735ed1303b43$export$2e2bcd8739ae039); +const $149c1bd638913645$export$fac44ee5b035f737 = (0, $fdf773ab87e20450$export$2e2bcd8739ae039); +var $149c1bd638913645$export$2e2bcd8739ae039 = { + parse: $149c1bd638913645$export$98e6a39c04603d36, + stringify: $149c1bd638913645$export$fac44ee5b035f737 +}; + + +export {$149c1bd638913645$export$98e6a39c04603d36 as parse, $149c1bd638913645$export$fac44ee5b035f737 as stringify, $149c1bd638913645$export$2e2bcd8739ae039 as default, $b2e137848b48cf4f$export$9be5dd6e61d5d73a as CssTypes}; +//# sourceMappingURL=index.mjs.map diff --git a/node_modules/@adobe/css-tools/dist/index.mjs.map b/node_modules/@adobe/css-tools/dist/index.mjs.map new file mode 100644 index 0000000..bcaaee2 --- /dev/null +++ b/node_modules/@adobe/css-tools/dist/index.mjs.map @@ -0,0 +1 @@ +{"mappings":";;;;;;;;;;;;;AEAe,uDAA4B;IAOzC,YACE,QAAgB,EAChB,GAAW,EACX,MAAc,EACd,MAAc,EACd,GAAW,CACX;QACA,KAAK,CAAC,WAAW,MAAM,SAAS,MAAM,SAAS,OAAO;QACtD,IAAI,CAAC,MAAM,GAAG;QACd,IAAI,CAAC,QAAQ,GAAG;QAChB,IAAI,CAAC,IAAI,GAAG;QACZ,IAAI,CAAC,MAAM,GAAG;QACd,IAAI,CAAC,MAAM,GAAG;IAChB;AACF;;;;;;;;ACrBA;;CAEC,GACc;IAKb,YACE,KAAqC,EACrC,GAAmC,EACnC,MAAc,CACd;QACA,IAAI,CAAC,KAAK,GAAG;QACb,IAAI,CAAC,GAAG,GAAG;QACX,IAAI,CAAC,MAAM,GAAG;IAChB;AACF;;;;;;;UCdY;;;;;;;;;;;;;;;;;;;GAAA,8CAAA;;;AHuBZ,0CAA0C;AAC1C,yEAAyE;AACzE,gEAAgE;AAChE,+BAA+B;AAC/B,MAAM,kCAAY;AAEX,MAAM,4CAAQ,CACnB,KACA;IAEA,UAAU,WAAW,CAAC;IAEtB;;GAEC,GACD,IAAI,SAAS;IACb,IAAI,SAAS;IAEb;;GAEC,GACD,SAAS,eAAe,GAAW;QACjC,MAAM,QAAQ,IAAI,KAAK,CAAC;QACxB,IAAI,OAAO,UAAU,MAAM,MAAM;QACjC,MAAM,IAAI,IAAI,WAAW,CAAC;QAC1B,SAAS,CAAC,IAAI,IAAI,MAAM,GAAG,IAAI,SAAS,IAAI,MAAM;IACpD;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,QAAQ;YAAC,MAAM;YAAQ,QAAQ;QAAM;QAC3C,OAAO,SACL,IAA0B;YAEzB,KAAY,QAAQ,GAAG,IAAI,CAAA,GAAA,wCAAO,EACjC,OACA;gBAAC,MAAM;gBAAQ,QAAQ;YAAM,GAC7B,SAAS,UAAU;YAErB;YACA,OAAO;QACT;IACF;IAEA;;GAEC,GACD,MAAM,aAAmC,EAAE;IAE3C,SAAS,MAAM,GAAW;QACxB,MAAM,MAAM,IAAI,CAAA,GAAA,wCAAY,EAC1B,SAAS,UAAU,IACnB,KACA,QACA,QACA;QAGF,IAAI,SAAS,QACX,WAAW,IAAI,CAAC;aAEhB,MAAM;IAEV;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,YAAY;QAElB,MAAM,SAA2B;YAC/B,MAAM,CAAA,GAAA,yCAAO,EAAE,UAAU;YACzB,YAAY;gBACV,QAAQ,SAAS;gBACjB,OAAO;gBACP,eAAe;YACjB;QACF;QAEA,OAAO;IACT;IAEA;;GAEC,GACD,SAAS;QACP,OAAO,MAAM;IACf;IAEA;;GAEC,GACD,SAAS;QACP,OAAO,MAAM;IACf;IAEA;;GAEC,GACD,SAAS;QACP,IAAI;QACJ,MAAM,QAA0C,EAAE;QAClD;QACA,SAAS;QACT,MAAO,IAAI,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,OAAQ,CAAA,OAAO,YAAY,MAAK,EACrE,IAAI,MAAM;YACR,MAAM,IAAI,CAAC;YACX,SAAS;QACX;QAEF,OAAO;IACT;IAEA;;GAEC,GACD,SAAS,MAAM,EAAU;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,GACH;QAEF,MAAM,MAAM,CAAC,CAAC,EAAE;QAChB,eAAe;QACf,MAAM,IAAI,KAAK,CAAC,IAAI,MAAM;QAC1B,OAAO;IACT;IAEA;;GAEC,GACD,SAAS;QACP,MAAM;IACR;IAEA;;GAEC,GACD,SAAS,SACP,KAAiC;QAEjC,IAAI;QACJ,QAAQ,SAAS,EAAE;QACnB,MAAQ,IAAI,UACV,IAAI,GACF,MAAM,IAAI,CAAC;QAGf,OAAO;IACT;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,QAAQ,IAAI,MAAM,CAAC,IAC9C;QAGF,MAAM,IAAI,MAAM;QAChB,IAAI,CAAC,GACH,OAAO,MAAM;QAGf,OAAO,IAAmB;YACxB,MAAM,CAAA,GAAA,yCAAO,EAAE,OAAO;YACtB,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG;QACzB;IACF;IAEA,SAAS,sBACP,GAAW,EACX,KAAa,EACb,KAAa;QAEb,IAAI,MAAM,QAAQ;QAClB,IAAI,QAAQ;QACZ,IAAI,mBAAmB,IAAI,OAAO,CAAC,KAAK;QACxC,MAAO,CAAC,SAAS,qBAAqB,GAAI;YACxC,MAAM,kBAAkB,IAAI,OAAO,CAAC,KAAK;YACzC,IAAI,oBAAoB,MAAM,kBAAkB,kBAAkB;gBAChE,MAAM,aAAa,sBACjB,KACA,kBAAkB,GAClB,QAAQ;gBAEV,MAAM,aAAa;gBACnB,mBAAmB,IAAI,OAAO,CAAC,KAAK;YACtC,OACE,QAAQ;QAEZ;QACA,IAAI,SAAS,qBAAqB,IAChC,OAAO;aAEP,OAAO;IAEX;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,IAAI,MAAM;QAChB,IAAI,CAAC,GACH;QAGF,8BAA8B;QAC9B,IAAI,MAAM,2BAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,iCAAW;QAExC,0FAA0F;QAC1F,IAAI,IAAI,OAAO,CAAC,SAAS,IACvB,OAAO;YAAC;SAAI;QAGd,iDAAiD;QACjD,IAAI,MAAM;QACV,IAAI,mBAAmB,IAAI,OAAO,CAAC,KAAK;QACxC,MAAO,qBAAqB,GAAI;YAC9B,MAAM,mBAAmB,sBAAsB,KAAK,kBAAkB;YACtE,IAAI,qBAAqB,IACvB;YAEF,MAAM,mBAAmB;YACzB,MACE,IAAI,SAAS,CAAC,GAAG,oBACjB,IACG,SAAS,CAAC,kBAAkB,kBAC5B,OAAO,CAAC,MAAM,YACjB,IAAI,SAAS,CAAC;YAChB,mBAAmB,IAAI,OAAO,CAAC,KAAK;QACtC;QAEA,yCAAyC;QACzC,MAAM,GACJ;;;;;;;;;;;;;;;OAeC,IACA,OAAO,CAAC,wBAAwB,CAAA,IAAK,EAAE,OAAO,CAAC,MAAM;QAExD,uDAAuD;QACvD,OACE,GACE,4BAA4B;SAC3B,KAAK,CAAC,IACP,6BAA6B;SAC5B,GAAG,CAAC,CAAA;YACH,OAAO,2BAAK,EAAE,OAAO,CAAC,WAAW;QACnC;IAEN;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QAEZ,OAAO;QACP,MAAM,YAAY,MAAM;QACxB,IAAI,CAAC,WACH;QAEF,MAAM,YAAY,2BAAK,SAAS,CAAC,EAAE;QAEnC,IAAI;QACJ,IAAI,CAAC,MAAM,UACT,OAAO,MAAM;QAGf,MAAM;QACN,MAAM,MAAM,MAAM;QAElB,MAAM,MAAM,IAAuB;YACjC,MAAM,CAAA,GAAA,yCAAO,EAAE,WAAW;YAC1B,UAAU,UAAU,OAAO,CAAC,iCAAW;YACvC,OAAO,MAAM,2BAAK,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,iCAAW,MAAM;QACrD;QAEA,IAAI;QACJ,MAAM;QAEN,OAAO;IACT;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,QAAkD,EAAE;QAE1D,IAAI,CAAC,QACH,OAAO,MAAM;QAEf,SAAS;QAET,eAAe;QACf,IAAI;QACJ,MAAQ,OAAO,cACb,IAAI,MAAM;YACR,MAAM,IAAI,CAAC;YACX,SAAS;QACX;QAGF,IAAI,CAAC,SACH,OAAO,MAAM;QAEf,OAAO;IACT;IAEA;;GAEC,GACD,SAAS;QACP,IAAI;QACJ,MAAM,OAAO,EAAE;QACf,MAAM,MAAM;QAEZ,MAAQ,IAAI,MAAM,uCAAyC;YACzD,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE;YACd,MAAM;QACR;QAEA,IAAI,CAAC,KAAK,MAAM,EACd;QAGF,OAAO,IAAoB;YACzB,MAAM,CAAA,GAAA,yCAAO,EAAE,QAAQ;YACvB,QAAQ;YACR,cAAc,kBAAkB,EAAE;QACpC;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,KAAK,MAAM;QAEjB,IAAI,CAAC,IACH;QAEF,MAAM,SAAS,EAAE,CAAC,EAAE;QAEpB,aAAa;QACb,MAAM,KAAK,MAAM;QACjB,IAAI,CAAC,IACH,OAAO,MAAM;QAEf,MAAM,OAAO,EAAE,CAAC,EAAE;QAElB,IAAI,CAAC,QACH,OAAO,MAAM;QAGf,IAAI;QACJ,IAAI,SAAgD;QACpD,MAAQ,QAAQ,WAAa;YAC3B,OAAO,IAAI,CAAC;YACZ,SAAS,OAAO,MAAM,CAAC;QACzB;QAEA,IAAI,CAAC,SACH,OAAO,MAAM;QAGf,OAAO,IAAqB;YAC1B,MAAM,CAAA,GAAA,yCAAO,EAAE,SAAS;YACxB,MAAM;YACN,QAAQ;YACR,WAAW;QACb;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,IAAI,MAAM;QAEhB,IAAI,CAAC,GACH;QAEF,MAAM,WAAW,2BAAK,CAAC,CAAC,EAAE;QAE1B,IAAI,CAAC,QACH,OAAO,MAAM;QAGf,MAAM,QAAQ,WAAyB,MAAM,CAAC;QAE9C,IAAI,CAAC,SACH,OAAO,MAAM;QAGf,OAAO,IAAoB;YACzB,MAAM,CAAA,GAAA,yCAAO,EAAE,QAAQ;YACvB,UAAU;YACV,OAAO;QACT;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,IAAI,MAAM;QAEhB,IAAI,CAAC,GACH;QAGF,IAAI,CAAC,QACH,OAAO,MAAM;QAGf,MAAM,QAAQ,WAAyB,MAAM,CAAC;QAE9C,IAAI,CAAC,SACH,OAAO,MAAM;QAGf,OAAO,IAAgB;YACrB,MAAM,CAAA,GAAA,yCAAO,EAAE,IAAI;YACnB,OAAO;QACT;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,IAAI,MAAM;QAEhB,IAAI,CAAC,GACH;QAEF,MAAM,YAAY,2BAAK,CAAC,CAAC,EAAE;QAE3B,IAAI,CAAC,QACH,OAAO,MAAM;QAGf,MAAM,QAAQ,WAAyB,MAAM,CAAC;QAE9C,IAAI,CAAC,SACH,OAAO,MAAM;QAGf,OAAO,IAAqB;YAC1B,MAAM,CAAA,GAAA,yCAAO,EAAE,SAAS;YACxB,WAAW;YACX,OAAO;QACT;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,IAAI,MAAM;QAEhB,IAAI,CAAC,GACH;QAEF,MAAM,QAAQ,2BAAK,CAAC,CAAC,EAAE;QAEvB,IAAI,CAAC,QAAQ;YACX,MAAM;YACN,OAAO,IAAiB;gBACtB,MAAM,CAAA,GAAA,yCAAO,EAAE,KAAK;gBACpB,OAAO;YACT;QACF;QAEA,MAAM,QAAQ,WAAyB,MAAM,CAAC;QAE9C,IAAI,CAAC,SACH,OAAO,MAAM;QAGf,OAAO,IAAiB;YACtB,MAAM,CAAA,GAAA,yCAAO,EAAE,KAAK;YACpB,OAAO;YACP,OAAO;QACT;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,IAAI,MAAM;QAEhB,IAAI,CAAC,GACH;QAEF,MAAM,QAAQ,2BAAK,CAAC,CAAC,EAAE;QAEvB,IAAI,CAAC,QACH,OAAO,MAAM;QAGf,MAAM,QAAQ,WAAyB,MAAM,CAAC;QAE9C,IAAI,CAAC,SACH,OAAO,MAAM;QAGf,OAAO,IAAiB;YACtB,MAAM,CAAA,GAAA,yCAAO,EAAE,KAAK;YACpB,OAAO;YACP,OAAO;QACT;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,IAAI,MAAM;QAChB,IAAI,CAAC,GACH;QAGF,OAAO,IAAuB;YAC5B,MAAM,CAAA,GAAA,yCAAO,EAAE,WAAW;YAC1B,MAAM,2BAAK,CAAC,CAAC,EAAE;YACf,OAAO,2BAAK,CAAC,CAAC,EAAE;QAClB;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,IAAI,MAAM;QAChB,IAAI,CAAC,GACH;QAGF,MAAM,MAAM,cAAc,EAAE;QAE5B,IAAI,CAAC,QACH,OAAO,MAAM;QAEf,IAAI,QAAQ;QAEZ,eAAe;QACf,IAAI;QACJ,MAAQ,OAAO,cAAgB;YAC7B,MAAM,IAAI,CAAC;YACX,QAAQ,MAAM,MAAM,CAAC;QACvB;QAEA,IAAI,CAAC,SACH,OAAO,MAAM;QAGf,OAAO,IAAgB;YACrB,MAAM,CAAA,GAAA,yCAAO,EAAE,IAAI;YACnB,WAAW;YACX,cAAc;QAChB;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,IAAI,MAAM;QAChB,IAAI,CAAC,GACH;QAGF,MAAM,SAAS,2BAAK,CAAC,CAAC,EAAE;QACxB,MAAM,MAAM,2BAAK,CAAC,CAAC,EAAE;QAErB,IAAI,CAAC,QACH,OAAO,MAAM;QAGf,MAAM,QAAQ,WAAyB,MAAM,CAAC;QAE9C,IAAI,CAAC,SACH,OAAO,MAAM;QAGf,OAAO,IAAoB;YACzB,MAAM,CAAA,GAAA,yCAAO,EAAE,QAAQ;YACvB,UAAU;YACV,QAAQ;YACR,OAAO;QACT;IACF;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,IAAI,MAAM;QAChB,IAAI,CAAC,GACH;QAGF,IAAI,CAAC,QACH,OAAO,MAAM;QAEf,IAAI,QAAQ;QAEZ,eAAe;QACf,IAAI;QACJ,MAAQ,OAAO,cAAgB;YAC7B,MAAM,IAAI,CAAC;YACX,QAAQ,MAAM,MAAM,CAAC;QACvB;QAEA,IAAI,CAAC,SACH,OAAO,MAAM;QAGf,OAAO,IAAoB;YACzB,MAAM,CAAA,GAAA,yCAAO,EAAE,QAAQ;YACvB,cAAc;QAChB;IACF;IAEA;;GAEC,GACD,MAAM,WAAW,eAA6B;IAE9C;;GAEC,GACD,MAAM,YAAY,eAA8B;IAEhD;;GAEC,GACD,MAAM,cAAc,eAAgC;IAEpD;;GAEC,GACD,SAAS,eACP,IAAY;QAEZ,MAAM,KAAK,IAAI,OACb,OACE,OACA;QAGJ,gDAAgD;QAEhD,OAAO;YACL,MAAM,MAAM;YACZ,MAAM,IAAI,MAAM;YAChB,IAAI,CAAC,GACH;YAEF,MAAM,MAA8B;gBAAC,MAAM;YAAI;YAC/C,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI;YACrB,OAAO,IAAQ;QACjB;IACF;IAEA;;GAEC,GACD,SAAS;QACP,IAAI,GAAG,CAAC,EAAE,KAAK,KACb;QAGF,OACE,iBACA,aACA,mBACA,gBACA,cACA,eACA,iBACA,gBACA,YACA,YACA,gBACA,iBACA;IAEJ;IAEA;;GAEC,GACD,SAAS;QACP,MAAM,MAAM;QACZ,MAAM,MAAM;QAEZ,IAAI,CAAC,KACH,OAAO,MAAM;QAEf;QAEA,OAAO,IAAgB;YACrB,MAAM,CAAA,GAAA,yCAAO,EAAE,IAAI;YACnB,WAAW;YACX,cAAc,kBAAkB,EAAE;QACpC;IACF;IAEA,OAAO,gCAAU;AACnB;AAEA;;CAEC,GACD,SAAS,2BAAK,GAAW;IACvB,OAAO,MAAM,IAAI,IAAI,KAAK;AAC5B;AAEA;;CAEC,GACD,SAAS,gCAAsC,GAAO,EAAE,MAAgB;IACtE,MAAM,SAAS,OAAO,OAAO,IAAI,IAAI,KAAK;IAC1C,MAAM,cAAc,SAAS,MAAM;IAEnC,IAAK,MAAM,KAAK,IAAK;QACnB,MAAM,QAAQ,GAAG,CAAC,EAAE;QACpB,IAAI,MAAM,OAAO,CAAC,QAChB,MAAM,OAAO,CAAC,CAAA;YACZ,gCAAU,GAAG;QACf;aACK,IAAI,SAAS,OAAO,UAAU,UACnC,gCAAU,OAAO;IAErB;IAEA,IAAI,QACF,OAAO,cAAc,CAAC,KAAK,UAAU;QACnC,cAAc;QACd,UAAU;QACV,YAAY;QACZ,OAAO,UAAU;IACnB;IAGF,OAAO;AACT;IAEA,2CAAe;;;;AK/wBf,MAAM;IAKJ,YAAY,OAA+C,CAAE;aAJ7D,QAAQ;aACR,cAAc;aACd,WAAW;QAGT,IAAI,OAAO,SAAS,WAAW,UAC7B,IAAI,CAAC,WAAW,GAAG,SAAS;QAE9B,IAAI,SAAS,UACX,IAAI,CAAC,QAAQ,GAAG;IAEpB;IAEA,uGAAuG;IACvG,6DAA6D;IAC7D,KAAK,GAAW,EAAE,SAA4C,EAAE;QAC9D,OAAO;IACT;IAEA;;GAEC,GACD,OAAO,KAAc,EAAE;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI;QAE3B,IAAI,OAAO;YACT,IAAI,CAAC,KAAK,IAAI;YACd,OAAO;QACT;QAEA,OAAO,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;IAChD;IAEA,MAAM,IAAoB,EAAU;QAClC,OAAQ,KAAK,IAAI;YACf,KAAK,CAAA,GAAA,yCAAO,EAAE,UAAU;gBACtB,OAAO,IAAI,CAAC,UAAU,CAAC;YACzB,KAAK,CAAA,GAAA,yCAAO,EAAE,IAAI;gBAChB,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,KAAK,CAAA,GAAA,yCAAO,EAAE,WAAW;gBACvB,OAAO,IAAI,CAAC,WAAW,CAAC;YAC1B,KAAK,CAAA,GAAA,yCAAO,EAAE,OAAO;gBACnB,OAAO,IAAI,CAAC,OAAO,CAAC;YACtB,KAAK,CAAA,GAAA,yCAAO,EAAE,SAAS;gBACrB,OAAO,IAAI,CAAC,SAAS,CAAC;YACxB,KAAK,CAAA,GAAA,yCAAO,EAAE,OAAO;gBACnB,OAAO,IAAI,CAAC,OAAO,CAAC;YACtB,KAAK,CAAA,GAAA,yCAAO,EAAE,QAAQ;gBACpB,OAAO,IAAI,CAAC,QAAQ,CAAC;YACvB,KAAK,CAAA,GAAA,yCAAO,EAAE,WAAW;gBACvB,OAAO,IAAI,CAAC,WAAW,CAAC;YAC1B,KAAK,CAAA,GAAA,yCAAO,EAAE,QAAQ;gBACpB,OAAO,IAAI,CAAC,QAAQ,CAAC;YACvB,KAAK,CAAA,GAAA,yCAAO,EAAE,IAAI;gBAChB,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,KAAK,CAAA,GAAA,yCAAO,EAAE,MAAM;gBAClB,OAAO,IAAI,CAAC,MAAM,CAAC;YACrB,KAAK,CAAA,GAAA,yCAAO,EAAE,SAAS;gBACrB,OAAO,IAAI,CAAC,SAAS,CAAC;YACxB,KAAK,CAAA,GAAA,yCAAO,EAAE,QAAQ;gBACpB,OAAO,IAAI,CAAC,QAAQ,CAAC;YACvB,KAAK,CAAA,GAAA,yCAAO,EAAE,KAAK;gBACjB,OAAO,IAAI,CAAC,KAAK,CAAC;YACpB,KAAK,CAAA,GAAA,yCAAO,EAAE,KAAK;gBACjB,OAAO,IAAI,CAAC,KAAK,CAAC;YACpB,KAAK,CAAA,GAAA,yCAAO,EAAE,SAAS;gBACrB,OAAO,IAAI,CAAC,SAAS,CAAC;YACxB,KAAK,CAAA,GAAA,yCAAO,EAAE,IAAI;gBAChB,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,KAAK,CAAA,GAAA,yCAAO,EAAE,QAAQ;gBACpB,OAAO,IAAI,CAAC,QAAQ,CAAC;QACzB;IACF;IAEA,SAAS,KAA4B,EAAE,KAAc,EAAE;QACrD,IAAI,MAAM;QACV,QAAQ,SAAS;QAEjB,IAAK,IAAI,IAAI,GAAG,SAAS,MAAM,MAAM,EAAE,IAAI,QAAQ,IAAK;YACtD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,SAAS,IAAI,SAAS,GACxB,OAAO,IAAI,CAAC,IAAI,CAAC;QAErB;QAEA,OAAO;IACT;IAEA,QAAQ,IAAsB,EAAE;QAC9B,IAAI,IAAI,CAAC,QAAQ,EACf,OAAO,KAAK,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;QAG1D,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB;IAEA;;GAEC,GACD,WAAW,IAAsB,EAAE;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC,KAAK,EAAE;IAC9C;IAEA;;GAEC,GACD,QAAQ,IAAmB,EAAE;QAC3B,IAAI,IAAI,CAAC,QAAQ,EACf,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;QAEpC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,KAAK,OAAO,GAAG,MAAM,KAAK,QAAQ;IAC5E;IAEA;;GAEC,GACD,UAAU,IAAqB,EAAE;QAC/B,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE,KAAK,QAAQ,IACvD,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,IACxB,IAAI,CAAC,IAAI,CAAC;QAGd,OACE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,gBAAgB,KAAK,SAAS,EAAE,KAAK,QAAQ,IACvE,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,UAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,KAAK;IAEvD;IAEA;;GAEC,GACD,MAAM,IAAiB,EAAE;QACvB,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE,KAAK,QAAQ,IAC9C,CAAA,KAAK,KAAK,GACP,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAmB,KAAK,KAAK,IAC1C,IAAI,CAAC,IAAI,CAAC,OACV,GAAE;QAGV,OACE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,YAAY,KAAK,KAAK,EAAE,KAAK,QAAQ,IAC9D,CAAA,KAAK,KAAK,GACP,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAC/B,IAAI,CAAC,QAAQ,CAAmB,KAAK,KAAK,EAAE,UAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,KAAK,OACnD,GAAE;IAEV;IAEA;;GAEC,GACD,OAAO,IAAkB,EAAE;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,KAAK,MAAM,GAAG,KAAK,KAAK,QAAQ;IAChE;IAEA;;GAEC,GACD,MAAM,IAAiB,EAAE;QACvB,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE,KAAK,QAAQ,IAC/C,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,IACxB,IAAI,CAAC,IAAI,CAAC;QAGd,OACE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,YAAY,KAAK,KAAK,EAAE,KAAK,QAAQ,IAC/D,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,UAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,KAAK;IAEvD;IAEA;;GAEC,GACD,SAAS,IAAoB,EAAE;QAC7B,MAAM,MAAM,MAAO,CAAA,KAAK,MAAM,IAAI,EAAC,IAAK,cAAc,KAAK,QAAQ;QACnE,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,IAC5B,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,IACxB,IAAI,CAAC,IAAI,CAAC;QAGd,OACE,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,IAC5B,IAAI,CAAC,IAAI,CAAC,UAAe,IAAI,CAAC,MAAM,CAAC,MACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,UAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;IAEhC;IAEA;;GAEC,GACD,QAAQ,IAAmB,EAAE;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,OAAO,GAAG,KAAK,KAAK,QAAQ;IAClE;IAEA;;GAEC,GACD,UAAU,IAAqB,EAAE;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,KAAK,SAAS,GAAG,KAAK,KAAK,QAAQ;IACtE;IAEA;;GAEC,GACD,SAAS,IAAoB,EAAE;QAC7B,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE,KAAK,QAAQ,IACrD,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,IACxB,IAAI,CAAC,IAAI,CAAC;QAGd,OACE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,eAAe,KAAK,QAAQ,EAAE,KAAK,QAAQ,IACrE,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,UAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,KAAK;IAEvD;IAEA;;GAEC,GACD,UAAU,IAAqB,EAAE;QAC/B,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CACP,MAAO,CAAA,KAAK,MAAM,IAAI,EAAC,IAAK,eAAe,KAAK,IAAI,EACpD,KAAK,QAAQ,IAEf,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,KAAK,SAAS,IAC5B,IAAI,CAAC,IAAI,CAAC;QAGd,OACE,IAAI,CAAC,IAAI,CACP,MAAO,CAAA,KAAK,MAAM,IAAI,EAAC,IAAK,eAAe,KAAK,IAAI,EACpD,KAAK,QAAQ,IAEf,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;IAEhC;IAEA;;GAEC,GACD,SAAS,IAAoB,EAAE;QAC7B,MAAM,QAAQ,KAAK,YAAY;QAC/B,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAC9C,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,SACd,IAAI,CAAC,IAAI,CAAC;QAId,OACE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,MACrB,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,IAC/C,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAC/B,IAAI,CAAC,QAAQ,CAAC,OAAO,QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,OAAO,IAAI,CAAC,MAAM,KAAK;IAEvD;IAEA;;GAEC,GACD,KAAK,IAAgB,EAAE;QACrB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,MAAM,KAAK,SAAS,CAAC,MAAM,GAAG,KAAK,SAAS,CAAC,IAAI,CAAC,QAAQ;YAEhE,OACE,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,QAAQ,IACvC,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,KAAK,YAAY,IAC/B,IAAI,CAAC,IAAI,CAAC;QAEd;QACA,MAAM,MAAM,KAAK,SAAS,CAAC,MAAM,GAAG,KAAK,SAAS,CAAC,IAAI,CAAC,QAAQ,MAAM;QAEtE,OACE,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,QAAQ,IACvC,IAAI,CAAC,IAAI,CAAC,SACV,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,YAAY,EAAE,QACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OACtB,IAAI,CAAC,IAAI,CAAC;IAEd;IAEA;;GAEC,GACD,SAAS,IAAoB,EAAE;QAC7B,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,QAAQ,IACrC,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,KAAK,YAAY,IAC/B,IAAI,CAAC,IAAI,CAAC;QAGd,OACE,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,QAAQ,IACtC,IAAI,CAAC,IAAI,CAAC,SACV,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,YAAY,EAAE,QACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OACtB,IAAI,CAAC,IAAI,CAAC;IAEd;IAEA;;GAEC,GACD,KAAK,IAAgB,EAAE;QACrB,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,IAChC,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,IACxB,IAAI,CAAC,IAAI,CAAC;QAGd,OACE,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,IAChC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,UAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;IAEhC;IAEA;;GAEC,GACD,YAAY,IAAuB,EAAE;QACnC,OAAO,IAAI,CAAC,IAAI,CACd,mBAAmB,KAAK,IAAI,GAAG,MAAM,KAAK,KAAK,GAAG,KAClD,KAAK,QAAQ;IAEjB;IAEA;;GAEC,GACD,KAAK,IAAgB,EAAE;QACrB,MAAM,QAAQ,KAAK,YAAY;QAC/B,IAAI,CAAC,MAAM,MAAM,EACf,OAAO;QAGT,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IACjD,IAAI,CAAC,IAAI,CAAC,OACV,IAAI,CAAC,QAAQ,CAAC,SACd,IAAI,CAAC,IAAI,CAAC;QAGd,MAAM,SAAS,IAAI,CAAC,MAAM;QAE1B,OACE,IAAI,CAAC,IAAI,CACP,KAAK,SAAS,CACX,GAAG,CAAC,CAAA;YACH,OAAO,SAAS;QAClB,GACC,IAAI,CAAC,QACR,KAAK,QAAQ,IAEf,IAAI,CAAC,IAAI,CAAC,UACV,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OACtB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK;IAErC;IAEA;;GAEC,GACD,YAAY,IAAuB,EAAE;QACnC,IAAI,IAAI,CAAC,QAAQ,EACf,OACE,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,GAAG,MAAM,KAAK,KAAK,EAAE,KAAK,QAAQ,IACzD,IAAI,CAAC,IAAI,CAAC;QAGd,OACE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,MACrB,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,GAAG,OAAO,KAAK,KAAK,EAAE,KAAK,QAAQ,IAC1D,IAAI,CAAC,IAAI,CAAC;IAEd;AACF;IAEA,2CAAe;;;ID1bf,2CAAe,CACb,MACA;IAEA,MAAM,WAAW,IAAI,CAAA,GAAA,wCAAO,EAAE,WAAW,CAAC;IAC1C,OAAO,SAAS,OAAO,CAAC;AAC1B;;;;;;ALPO,MAAM,4CAAQ,CAAA,GAAA,wCAAM;AACpB,MAAM,4CAAY,CAAA,GAAA,wCAAU;IAInC,2CAAe;WAAC;eAAO;AAAS","sources":["src/index.ts","src/parse/index.ts","src/CssParseError.ts","src/CssPosition.ts","src/type.ts","src/stringify/index.ts","src/stringify/compiler.ts"],"sourcesContent":["import {default as parseFn} from './parse';\nimport {default as stringifyFn} from './stringify';\nexport const parse = parseFn;\nexport const stringify = stringifyFn;\nexport * from './type';\nexport * from './CssParseError';\nexport * from './CssPosition';\nexport default {parse, stringify};\n","import CssParseError from '../CssParseError';\nimport Position from '../CssPosition';\nimport {\n CssAtRuleAST,\n CssCharsetAST,\n CssCommentAST,\n CssCommonPositionAST,\n CssContainerAST,\n CssCustomMediaAST,\n CssDeclarationAST,\n CssDocumentAST,\n CssFontFaceAST,\n CssHostAST,\n CssImportAST,\n CssKeyframeAST,\n CssKeyframesAST,\n CssLayerAST,\n CssMediaAST,\n CssNamespaceAST,\n CssPageAST,\n CssRuleAST,\n CssStylesheetAST,\n CssSupportsAST,\n CssTypes,\n} from '../type';\n\n// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\n// New rule => https://www.w3.org/TR/CSS22/syndata.html#comments\n// [^] is equivalent to [.\\n\\r]\nconst commentre = /\\/\\*[^]*?(?:\\*\\/|$)/g;\n\nexport const parse = (\n css: string,\n options?: {source?: string; silent?: boolean}\n): CssStylesheetAST => {\n options = options || {};\n\n /**\n * Positional.\n */\n let lineno = 1;\n let column = 1;\n\n /**\n * Update lineno and column based on `str`.\n */\n function updatePosition(str: string) {\n const lines = str.match(/\\n/g);\n if (lines) lineno += lines.length;\n const i = str.lastIndexOf('\\n');\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n */\n function position() {\n const start = {line: lineno, column: column};\n return function (\n node: Omit\n ): T1 {\n (node as T1).position = new Position(\n start,\n {line: lineno, column: column},\n options?.source || ''\n );\n whitespace();\n return node as T1;\n };\n }\n\n /**\n * Error `msg`.\n */\n const errorsList: Array = [];\n\n function error(msg: string) {\n const err = new CssParseError(\n options?.source || '',\n msg,\n lineno,\n column,\n css\n );\n\n if (options?.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Parse stylesheet.\n */\n function stylesheet(): CssStylesheetAST {\n const rulesList = rules();\n\n const result: CssStylesheetAST = {\n type: CssTypes.stylesheet,\n stylesheet: {\n source: options?.source,\n rules: rulesList,\n parsingErrors: errorsList,\n },\n };\n\n return result;\n }\n\n /**\n * Opening brace.\n */\n function open() {\n return match(/^{\\s*/);\n }\n\n /**\n * Closing brace.\n */\n function close() {\n return match(/^}/);\n }\n\n /**\n * Parse ruleset.\n */\n function rules() {\n let node: CssRuleAST | CssAtRuleAST | void;\n const rules: Array = [];\n whitespace();\n comments(rules);\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\n if (node) {\n rules.push(node);\n comments(rules);\n }\n }\n return rules;\n }\n\n /**\n * Match `re` and return captures.\n */\n function match(re: RegExp) {\n const m = re.exec(css);\n if (!m) {\n return;\n }\n const str = m[0];\n updatePosition(str);\n css = css.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(/^\\s*/);\n }\n\n /**\n * Parse comments;\n */\n function comments(\n rules?: Array\n ) {\n let c;\n rules = rules || [];\n while ((c = comment())) {\n if (c) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n */\n function comment(): CssCommentAST | void {\n const pos = position();\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\n return;\n }\n\n const m = match(/^\\/\\*[^]*?\\*\\//);\n if (!m) {\n return error('End of comment missing');\n }\n\n return pos({\n type: CssTypes.comment,\n comment: m[0].slice(2, -2),\n });\n }\n\n function findClosingParenthese(\n str: string,\n start: number,\n depth: number\n ): number {\n let ptr = start + 1;\n let found = false;\n let closeParentheses = str.indexOf(')', ptr);\n while (!found && closeParentheses !== -1) {\n const nextParentheses = str.indexOf('(', ptr);\n if (nextParentheses !== -1 && nextParentheses < closeParentheses) {\n const nextSearch = findClosingParenthese(\n str,\n nextParentheses + 1,\n depth + 1\n );\n ptr = nextSearch + 1;\n closeParentheses = str.indexOf(')', ptr);\n } else {\n found = true;\n }\n }\n if (found && closeParentheses !== -1) {\n return closeParentheses;\n } else {\n return -1;\n }\n }\n\n /**\n * Parse selector.\n */\n function selector() {\n const m = match(/^([^{]+)/);\n if (!m) {\n return;\n }\n\n // remove comment in selector;\n let res = trim(m[0]).replace(commentre, '');\n\n // Optimisation: If there is no ',' no need to split or post-process (this is less costly)\n if (res.indexOf(',') === -1) {\n return [res];\n }\n\n // Replace all the , in the parentheses by \\u200C\n let ptr = 0;\n let startParentheses = res.indexOf('(', ptr);\n while (startParentheses !== -1) {\n const closeParentheses = findClosingParenthese(res, startParentheses, 0);\n if (closeParentheses === -1) {\n break;\n }\n ptr = closeParentheses + 1;\n res =\n res.substring(0, startParentheses) +\n res\n .substring(startParentheses, closeParentheses)\n .replace(/,/g, '\\u200C') +\n res.substring(closeParentheses);\n startParentheses = res.indexOf('(', ptr);\n }\n\n // Replace all the , in ' and \" by \\u200C\n res = res\n /**\n * replace ',' by \\u200C for data selector (div[data-lang=\"fr,de,us\"])\n *\n * Examples:\n * div[data-lang=\"fr,\\\"de,us\"]\n * div[data-lang='fr,\\'de,us']\n *\n * Regex logic:\n * (\"|')(?:\\\\\\1|.)*?\\1 => Handle the \" and '\n *\n * Optimization 1:\n * No greedy capture (see docs about the difference between .* and .*?)\n *\n * Optimization 2:\n * (\"|')(?:\\\\\\1|.)*?\\1 this use reference to capture group, it work faster.\n */\n .replace(/(\"|')(?:\\\\\\1|.)*?\\1/g, m => m.replace(/,/g, '\\u200C'));\n\n // Split all the left , and replace all the \\u200C by ,\n return (\n res\n // Split the selector by ','\n .split(',')\n // Replace back \\u200C by ','\n .map(s => {\n return trim(s.replace(/\\u200C/g, ','));\n })\n );\n }\n\n /**\n * Parse declaration.\n */\n function declaration(): CssDeclarationAST | void {\n const pos = position();\n\n // prop\n const propMatch = match(/^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\n if (!propMatch) {\n return;\n }\n const propValue = trim(propMatch[0]);\n\n // :\n if (!match(/^:\\s*/)) {\n return error(\"property missing ':'\");\n }\n\n // val\n const val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/);\n\n const ret = pos({\n type: CssTypes.declaration,\n property: propValue.replace(commentre, ''),\n value: val ? trim(val[0]).replace(commentre, '') : '',\n });\n\n // ;\n match(/^[;\\s]*/);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n */\n function declarations() {\n const decls: Array = [];\n\n if (!open()) {\n return error(\"missing '{'\");\n }\n comments(decls);\n\n // declarations\n let decl;\n while ((decl = declaration())) {\n if (decl) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n if (!close()) {\n return error(\"missing '}'\");\n }\n return decls;\n }\n\n /**\n * Parse keyframe.\n */\n function keyframe() {\n let m;\n const vals = [];\n const pos = position();\n\n while ((m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/))) {\n vals.push(m[1]);\n match(/^,\\s*/);\n }\n\n if (!vals.length) {\n return;\n }\n\n return pos({\n type: CssTypes.keyframe,\n values: vals,\n declarations: declarations() || [],\n });\n }\n\n /**\n * Parse keyframes.\n */\n function atkeyframes(): CssKeyframesAST | void {\n const pos = position();\n const m1 = match(/^@([-\\w]+)?keyframes\\s*/);\n\n if (!m1) {\n return;\n }\n const vendor = m1[1];\n\n // identifier\n const m2 = match(/^([-\\w]+)\\s*/);\n if (!m2) {\n return error('@keyframes missing name');\n }\n const name = m2[1];\n\n if (!open()) {\n return error(\"@keyframes missing '{'\");\n }\n\n let frame;\n let frames: Array = comments();\n while ((frame = keyframe())) {\n frames.push(frame);\n frames = frames.concat(comments());\n }\n\n if (!close()) {\n return error(\"@keyframes missing '}'\");\n }\n\n return pos({\n type: CssTypes.keyframes,\n name: name,\n vendor: vendor,\n keyframes: frames,\n });\n }\n\n /**\n * Parse supports.\n */\n function atsupports(): CssSupportsAST | void {\n const pos = position();\n const m = match(/^@supports *([^{]+)/);\n\n if (!m) {\n return;\n }\n const supports = trim(m[1]);\n\n if (!open()) {\n return error(\"@supports missing '{'\");\n }\n\n const style = comments().concat(rules());\n\n if (!close()) {\n return error(\"@supports missing '}'\");\n }\n\n return pos({\n type: CssTypes.supports,\n supports: supports,\n rules: style,\n });\n }\n\n /**\n * Parse host.\n */\n function athost() {\n const pos = position();\n const m = match(/^@host\\s*/);\n\n if (!m) {\n return;\n }\n\n if (!open()) {\n return error(\"@host missing '{'\");\n }\n\n const style = comments().concat(rules());\n\n if (!close()) {\n return error(\"@host missing '}'\");\n }\n\n return pos({\n type: CssTypes.host,\n rules: style,\n });\n }\n\n /**\n * Parse container.\n */\n function atcontainer(): CssContainerAST | void {\n const pos = position();\n const m = match(/^@container *([^{]+)/);\n\n if (!m) {\n return;\n }\n const container = trim(m[1]);\n\n if (!open()) {\n return error(\"@container missing '{'\");\n }\n\n const style = comments().concat(rules());\n\n if (!close()) {\n return error(\"@container missing '}'\");\n }\n\n return pos({\n type: CssTypes.container,\n container: container,\n rules: style,\n });\n }\n\n /**\n * Parse container.\n */\n function atlayer(): CssLayerAST | void {\n const pos = position();\n const m = match(/^@layer *([^{;@]+)/);\n\n if (!m) {\n return;\n }\n const layer = trim(m[1]);\n\n if (!open()) {\n match(/^[;\\s]*/);\n return pos({\n type: CssTypes.layer,\n layer: layer,\n });\n }\n\n const style = comments().concat(rules());\n\n if (!close()) {\n return error(\"@layer missing '}'\");\n }\n\n return pos({\n type: CssTypes.layer,\n layer: layer,\n rules: style,\n });\n }\n\n /**\n * Parse media.\n */\n function atmedia(): CssMediaAST | void {\n const pos = position();\n const m = match(/^@media *([^{]+)/);\n\n if (!m) {\n return;\n }\n const media = trim(m[1]);\n\n if (!open()) {\n return error(\"@media missing '{'\");\n }\n\n const style = comments().concat(rules());\n\n if (!close()) {\n return error(\"@media missing '}'\");\n }\n\n return pos({\n type: CssTypes.media,\n media: media,\n rules: style,\n });\n }\n\n /**\n * Parse custom-media.\n */\n function atcustommedia(): CssCustomMediaAST | void {\n const pos = position();\n const m = match(/^@custom-media\\s+(--\\S+)\\s*([^{;\\s][^{;]*);/);\n if (!m) {\n return;\n }\n\n return pos({\n type: CssTypes.customMedia,\n name: trim(m[1]),\n media: trim(m[2]),\n });\n }\n\n /**\n * Parse paged media.\n */\n function atpage(): CssPageAST | void {\n const pos = position();\n const m = match(/^@page */);\n if (!m) {\n return;\n }\n\n const sel = selector() || [];\n\n if (!open()) {\n return error(\"@page missing '{'\");\n }\n let decls = comments();\n\n // declarations\n let decl;\n while ((decl = declaration())) {\n decls.push(decl);\n decls = decls.concat(comments());\n }\n\n if (!close()) {\n return error(\"@page missing '}'\");\n }\n\n return pos({\n type: CssTypes.page,\n selectors: sel,\n declarations: decls,\n });\n }\n\n /**\n * Parse document.\n */\n function atdocument(): CssDocumentAST | void {\n const pos = position();\n const m = match(/^@([-\\w]+)?document *([^{]+)/);\n if (!m) {\n return;\n }\n\n const vendor = trim(m[1]);\n const doc = trim(m[2]);\n\n if (!open()) {\n return error(\"@document missing '{'\");\n }\n\n const style = comments().concat(rules());\n\n if (!close()) {\n return error(\"@document missing '}'\");\n }\n\n return pos({\n type: CssTypes.document,\n document: doc,\n vendor: vendor,\n rules: style,\n });\n }\n\n /**\n * Parse font-face.\n */\n function atfontface(): CssFontFaceAST | void {\n const pos = position();\n const m = match(/^@font-face\\s*/);\n if (!m) {\n return;\n }\n\n if (!open()) {\n return error(\"@font-face missing '{'\");\n }\n let decls = comments();\n\n // declarations\n let decl;\n while ((decl = declaration())) {\n decls.push(decl);\n decls = decls.concat(comments());\n }\n\n if (!close()) {\n return error(\"@font-face missing '}'\");\n }\n\n return pos({\n type: CssTypes.fontFace,\n declarations: decls,\n });\n }\n\n /**\n * Parse import\n */\n const atimport = _compileAtrule('import');\n\n /**\n * Parse charset\n */\n const atcharset = _compileAtrule('charset');\n\n /**\n * Parse namespace\n */\n const atnamespace = _compileAtrule('namespace');\n\n /**\n * Parse non-block at-rules\n */\n function _compileAtrule(\n name: string\n ): () => T1 | void {\n const re = new RegExp(\n '^@' +\n name +\n '\\\\s*((?::?[^;\\'\"]|\"(?:\\\\\\\\\"|[^\"])*?\"|\\'(?:\\\\\\\\\\'|[^\\'])*?\\')+)(?:;|$)'\n );\n\n // ^@import\\s*([^;\"']|(\"|')(?:\\\\\\2|.)*?\\2)+(;|$)\n\n return function (): T1 | void {\n const pos = position();\n const m = match(re);\n if (!m) {\n return;\n }\n const ret: Record = {type: name};\n ret[name] = m[1].trim();\n return pos(ret as unknown as T1) as T1;\n };\n }\n\n /**\n * Parse at rule.\n */\n function atrule(): CssAtRuleAST | void {\n if (css[0] !== '@') {\n return;\n }\n\n return (\n atkeyframes() ||\n atmedia() ||\n atcustommedia() ||\n atsupports() ||\n atimport() ||\n atcharset() ||\n atnamespace() ||\n atdocument() ||\n atpage() ||\n athost() ||\n atfontface() ||\n atcontainer() ||\n atlayer()\n );\n }\n\n /**\n * Parse rule.\n */\n function rule() {\n const pos = position();\n const sel = selector();\n\n if (!sel) {\n return error('selector missing');\n }\n comments();\n\n return pos({\n type: CssTypes.rule,\n selectors: sel,\n declarations: declarations() || [],\n });\n }\n\n return addParent(stylesheet());\n};\n\n/**\n * Trim `str`.\n */\nfunction trim(str: string) {\n return str ? str.trim() : '';\n}\n\n/**\n * Adds non-enumerable parent node reference to each node.\n */\nfunction addParent(obj: T1, parent?: unknown): T1 {\n const isNode = obj && typeof obj.type === 'string';\n const childParent = isNode ? obj : parent;\n\n for (const k in obj) {\n const value = obj[k];\n if (Array.isArray(value)) {\n value.forEach(v => {\n addParent(v, childParent);\n });\n } else if (value && typeof value === 'object') {\n addParent(value, childParent);\n }\n }\n\n if (isNode) {\n Object.defineProperty(obj, 'parent', {\n configurable: true,\n writable: true,\n enumerable: false,\n value: parent || null,\n });\n }\n\n return obj;\n}\n\nexport default parse;\n","export default class CssParseError extends Error {\n readonly reason: string;\n readonly filename?: string;\n readonly line: number;\n readonly column: number;\n readonly source: string;\n\n constructor(\n filename: string,\n msg: string,\n lineno: number,\n column: number,\n css: string\n ) {\n super(filename + ':' + lineno + ':' + column + ': ' + msg);\n this.reason = msg;\n this.filename = filename;\n this.line = lineno;\n this.column = column;\n this.source = css;\n }\n}\n","/**\n * Store position information for a node\n */\nexport default class Position {\n start: {line: number; column: number};\n end: {line: number; column: number};\n source?: string;\n\n constructor(\n start: {line: number; column: number},\n end: {line: number; column: number},\n source: string\n ) {\n this.start = start;\n this.end = end;\n this.source = source;\n }\n}\n","import CssParseError from './CssParseError';\nimport Position from './CssPosition';\n\nexport enum CssTypes {\n stylesheet = 'stylesheet',\n rule = 'rule',\n declaration = 'declaration',\n comment = 'comment',\n container = 'container',\n charset = 'charset',\n document = 'document',\n customMedia = 'custom-media',\n fontFace = 'font-face',\n host = 'host',\n import = 'import',\n keyframes = 'keyframes',\n keyframe = 'keyframe',\n layer = 'layer',\n media = 'media',\n namespace = 'namespace',\n page = 'page',\n supports = 'supports',\n}\n\nexport type CssCommonAST = {\n type: CssTypes;\n};\n\nexport type CssCommonPositionAST = CssCommonAST & {\n position?: Position;\n parent?: unknown;\n};\n\nexport type CssStylesheetAST = CssCommonAST & {\n type: CssTypes.stylesheet;\n stylesheet: {\n source?: string;\n rules: Array;\n parsingErrors?: Array;\n };\n};\n\nexport type CssRuleAST = CssCommonPositionAST & {\n type: CssTypes.rule;\n selectors: Array;\n declarations: Array;\n};\n\nexport type CssDeclarationAST = CssCommonPositionAST & {\n type: CssTypes.declaration;\n property: string;\n value: string;\n};\n\nexport type CssCommentAST = CssCommonPositionAST & {\n type: CssTypes.comment;\n comment: string;\n};\nexport type CssContainerAST = CssCommonPositionAST & {\n type: CssTypes.container;\n container: string;\n rules: Array;\n};\n\nexport type CssCharsetAST = CssCommonPositionAST & {\n type: CssTypes.charset;\n charset: string;\n};\nexport type CssCustomMediaAST = CssCommonPositionAST & {\n type: CssTypes.customMedia;\n name: string;\n media: string;\n};\nexport type CssDocumentAST = CssCommonPositionAST & {\n type: CssTypes.document;\n document: string;\n vendor?: string;\n rules: Array;\n};\nexport type CssFontFaceAST = CssCommonPositionAST & {\n type: CssTypes.fontFace;\n declarations: Array;\n};\nexport type CssHostAST = CssCommonPositionAST & {\n type: CssTypes.host;\n rules: Array;\n};\nexport type CssImportAST = CssCommonPositionAST & {\n type: CssTypes.import;\n import: string;\n};\nexport type CssKeyframesAST = CssCommonPositionAST & {\n type: CssTypes.keyframes;\n name: string;\n vendor?: string;\n keyframes: Array;\n};\nexport type CssKeyframeAST = CssCommonPositionAST & {\n type: CssTypes.keyframe;\n values: Array;\n declarations: Array;\n};\nexport type CssLayerAST = CssCommonPositionAST & {\n type: CssTypes.layer;\n layer: string;\n rules?: Array;\n};\nexport type CssMediaAST = CssCommonPositionAST & {\n type: CssTypes.media;\n media: string;\n rules: Array;\n};\nexport type CssNamespaceAST = CssCommonPositionAST & {\n type: CssTypes.namespace;\n namespace: string;\n};\nexport type CssPageAST = CssCommonPositionAST & {\n type: CssTypes.page;\n selectors: Array;\n declarations: Array;\n};\nexport type CssSupportsAST = CssCommonPositionAST & {\n type: CssTypes.supports;\n supports: string;\n rules: Array;\n};\n\nexport type CssAtRuleAST =\n | CssRuleAST\n | CssCommentAST\n | CssContainerAST\n | CssCharsetAST\n | CssCustomMediaAST\n | CssDocumentAST\n | CssFontFaceAST\n | CssHostAST\n | CssImportAST\n | CssKeyframesAST\n | CssLayerAST\n | CssMediaAST\n | CssNamespaceAST\n | CssPageAST\n | CssSupportsAST;\n\nexport type CssAllNodesAST =\n | CssAtRuleAST\n | CssStylesheetAST\n | CssDeclarationAST\n | CssKeyframeAST;\n","import {CssStylesheetAST} from '../type';\nimport Compiler from './compiler';\n\nexport default (\n node: CssStylesheetAST,\n options?: ConstructorParameters[0]\n) => {\n const compiler = new Compiler(options || {});\n return compiler.compile(node);\n};\n","import {\n CssAllNodesAST,\n CssCharsetAST,\n CssCommentAST,\n CssCommonPositionAST,\n CssContainerAST,\n CssCustomMediaAST,\n CssDeclarationAST,\n CssDocumentAST,\n CssFontFaceAST,\n CssHostAST,\n CssImportAST,\n CssKeyframeAST,\n CssKeyframesAST,\n CssLayerAST,\n CssMediaAST,\n CssNamespaceAST,\n CssPageAST,\n CssRuleAST,\n CssStylesheetAST,\n CssSupportsAST,\n CssTypes,\n} from '../type';\n\nclass Compiler {\n level = 0;\n indentation = ' ';\n compress = false;\n\n constructor(options?: {indent?: string; compress?: boolean}) {\n if (typeof options?.indent === 'string') {\n this.indentation = options?.indent;\n }\n if (options?.compress) {\n this.compress = true;\n }\n }\n\n // We disable no-unused-vars for _position. We keep position for potential reintroduction of source-map\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n emit(str: string, _position?: CssCommonPositionAST['position']) {\n return str;\n }\n\n /**\n * Increase, decrease or return current indentation.\n */\n indent(level?: number) {\n this.level = this.level || 1;\n\n if (level) {\n this.level += level;\n return '';\n }\n\n return Array(this.level).join(this.indentation);\n }\n\n visit(node: CssAllNodesAST): string {\n switch (node.type) {\n case CssTypes.stylesheet:\n return this.stylesheet(node);\n case CssTypes.rule:\n return this.rule(node);\n case CssTypes.declaration:\n return this.declaration(node);\n case CssTypes.comment:\n return this.comment(node);\n case CssTypes.container:\n return this.container(node);\n case CssTypes.charset:\n return this.charset(node);\n case CssTypes.document:\n return this.document(node);\n case CssTypes.customMedia:\n return this.customMedia(node);\n case CssTypes.fontFace:\n return this.fontFace(node);\n case CssTypes.host:\n return this.host(node);\n case CssTypes.import:\n return this.import(node);\n case CssTypes.keyframes:\n return this.keyframes(node);\n case CssTypes.keyframe:\n return this.keyframe(node);\n case CssTypes.layer:\n return this.layer(node);\n case CssTypes.media:\n return this.media(node);\n case CssTypes.namespace:\n return this.namespace(node);\n case CssTypes.page:\n return this.page(node);\n case CssTypes.supports:\n return this.supports(node);\n }\n }\n\n mapVisit(nodes: Array, delim?: string) {\n let buf = '';\n delim = delim || '';\n\n for (let i = 0, length = nodes.length; i < length; i++) {\n buf += this.visit(nodes[i]);\n if (delim && i < length - 1) {\n buf += this.emit(delim);\n }\n }\n\n return buf;\n }\n\n compile(node: CssStylesheetAST) {\n if (this.compress) {\n return node.stylesheet.rules.map(this.visit, this).join('');\n }\n\n return this.stylesheet(node);\n }\n\n /**\n * Visit stylesheet node.\n */\n stylesheet(node: CssStylesheetAST) {\n return this.mapVisit(node.stylesheet.rules, '\\n\\n');\n }\n\n /**\n * Visit comment node.\n */\n comment(node: CssCommentAST) {\n if (this.compress) {\n return this.emit('', node.position);\n }\n return this.emit(this.indent() + '/*' + node.comment + '*/', node.position);\n }\n\n /**\n * Visit container node.\n */\n container(node: CssContainerAST) {\n if (this.compress) {\n return (\n this.emit('@container ' + node.container, node.position) +\n this.emit('{') +\n this.mapVisit(node.rules) +\n this.emit('}')\n );\n }\n return (\n this.emit(this.indent() + '@container ' + node.container, node.position) +\n this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(node.rules, '\\n\\n') +\n this.emit('\\n' + this.indent(-1) + this.indent() + '}')\n );\n }\n\n /**\n * Visit container node.\n */\n layer(node: CssLayerAST) {\n if (this.compress) {\n return (\n this.emit('@layer ' + node.layer, node.position) +\n (node.rules\n ? this.emit('{') +\n this.mapVisit(node.rules) +\n this.emit('}')\n : ';')\n );\n }\n return (\n this.emit(this.indent() + '@layer ' + node.layer, node.position) +\n (node.rules\n ? this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(node.rules, '\\n\\n') +\n this.emit('\\n' + this.indent(-1) + this.indent() + '}')\n : ';')\n );\n }\n\n /**\n * Visit import node.\n */\n import(node: CssImportAST) {\n return this.emit('@import ' + node.import + ';', node.position);\n }\n\n /**\n * Visit media node.\n */\n media(node: CssMediaAST) {\n if (this.compress) {\n return (\n this.emit('@media ' + node.media, node.position) +\n this.emit('{') +\n this.mapVisit(node.rules) +\n this.emit('}')\n );\n }\n return (\n this.emit(this.indent() + '@media ' + node.media, node.position) +\n this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(node.rules, '\\n\\n') +\n this.emit('\\n' + this.indent(-1) + this.indent() + '}')\n );\n }\n\n /**\n * Visit document node.\n */\n document(node: CssDocumentAST) {\n const doc = '@' + (node.vendor || '') + 'document ' + node.document;\n if (this.compress) {\n return (\n this.emit(doc, node.position) +\n this.emit('{') +\n this.mapVisit(node.rules) +\n this.emit('}')\n );\n }\n return (\n this.emit(doc, node.position) +\n this.emit(' ' + ' {\\n' + this.indent(1)) +\n this.mapVisit(node.rules, '\\n\\n') +\n this.emit(this.indent(-1) + '\\n}')\n );\n }\n\n /**\n * Visit charset node.\n */\n charset(node: CssCharsetAST) {\n return this.emit('@charset ' + node.charset + ';', node.position);\n }\n\n /**\n * Visit namespace node.\n */\n namespace(node: CssNamespaceAST) {\n return this.emit('@namespace ' + node.namespace + ';', node.position);\n }\n\n /**\n * Visit supports node.\n */\n supports(node: CssSupportsAST) {\n if (this.compress) {\n return (\n this.emit('@supports ' + node.supports, node.position) +\n this.emit('{') +\n this.mapVisit(node.rules) +\n this.emit('}')\n );\n }\n return (\n this.emit(this.indent() + '@supports ' + node.supports, node.position) +\n this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(node.rules, '\\n\\n') +\n this.emit('\\n' + this.indent(-1) + this.indent() + '}')\n );\n }\n\n /**\n * Visit keyframes node.\n */\n keyframes(node: CssKeyframesAST) {\n if (this.compress) {\n return (\n this.emit(\n '@' + (node.vendor || '') + 'keyframes ' + node.name,\n node.position\n ) +\n this.emit('{') +\n this.mapVisit(node.keyframes) +\n this.emit('}')\n );\n }\n return (\n this.emit(\n '@' + (node.vendor || '') + 'keyframes ' + node.name,\n node.position\n ) +\n this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(node.keyframes, '\\n') +\n this.emit(this.indent(-1) + '}')\n );\n }\n\n /**\n * Visit keyframe node.\n */\n keyframe(node: CssKeyframeAST) {\n const decls = node.declarations;\n if (this.compress) {\n return (\n this.emit(node.values.join(','), node.position) +\n this.emit('{') +\n this.mapVisit(decls) +\n this.emit('}')\n );\n }\n\n return (\n this.emit(this.indent()) +\n this.emit(node.values.join(', '), node.position) +\n this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(decls, '\\n') +\n this.emit(this.indent(-1) + '\\n' + this.indent() + '}\\n')\n );\n }\n\n /**\n * Visit page node.\n */\n page(node: CssPageAST) {\n if (this.compress) {\n const sel = node.selectors.length ? node.selectors.join(', ') : '';\n\n return (\n this.emit('@page ' + sel, node.position) +\n this.emit('{') +\n this.mapVisit(node.declarations) +\n this.emit('}')\n );\n }\n const sel = node.selectors.length ? node.selectors.join(', ') + ' ' : '';\n\n return (\n this.emit('@page ' + sel, node.position) +\n this.emit('{\\n') +\n this.emit(this.indent(1)) +\n this.mapVisit(node.declarations, '\\n') +\n this.emit(this.indent(-1)) +\n this.emit('\\n}')\n );\n }\n\n /**\n * Visit font-face node.\n */\n fontFace(node: CssFontFaceAST) {\n if (this.compress) {\n return (\n this.emit('@font-face', node.position) +\n this.emit('{') +\n this.mapVisit(node.declarations) +\n this.emit('}')\n );\n }\n return (\n this.emit('@font-face ', node.position) +\n this.emit('{\\n') +\n this.emit(this.indent(1)) +\n this.mapVisit(node.declarations, '\\n') +\n this.emit(this.indent(-1)) +\n this.emit('\\n}')\n );\n }\n\n /**\n * Visit host node.\n */\n host(node: CssHostAST) {\n if (this.compress) {\n return (\n this.emit('@host', node.position) +\n this.emit('{') +\n this.mapVisit(node.rules) +\n this.emit('}')\n );\n }\n return (\n this.emit('@host', node.position) +\n this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(node.rules, '\\n\\n') +\n this.emit(this.indent(-1) + '\\n}')\n );\n }\n\n /**\n * Visit custom-media node.\n */\n customMedia(node: CssCustomMediaAST) {\n return this.emit(\n '@custom-media ' + node.name + ' ' + node.media + ';',\n node.position\n );\n }\n\n /**\n * Visit rule node.\n */\n rule(node: CssRuleAST) {\n const decls = node.declarations;\n if (!decls.length) {\n return '';\n }\n\n if (this.compress) {\n return (\n this.emit(node.selectors.join(','), node.position) +\n this.emit('{') +\n this.mapVisit(decls) +\n this.emit('}')\n );\n }\n const indent = this.indent();\n\n return (\n this.emit(\n node.selectors\n .map(s => {\n return indent + s;\n })\n .join(',\\n'),\n node.position\n ) +\n this.emit(' {\\n') +\n this.emit(this.indent(1)) +\n this.mapVisit(decls, '\\n') +\n this.emit(this.indent(-1)) +\n this.emit('\\n' + this.indent() + '}')\n );\n }\n\n /**\n * Visit declaration node.\n */\n declaration(node: CssDeclarationAST) {\n if (this.compress) {\n return (\n this.emit(node.property + ':' + node.value, node.position) +\n this.emit(';')\n );\n }\n return (\n this.emit(this.indent()) +\n this.emit(node.property + ': ' + node.value, node.position) +\n this.emit(';')\n );\n }\n}\n\nexport default Compiler;\n"],"names":[],"version":3,"file":"index.mjs.map"} \ No newline at end of file diff --git a/node_modules/@adobe/css-tools/dist/types.d.ts b/node_modules/@adobe/css-tools/dist/types.d.ts new file mode 100644 index 0000000..d3bf39e --- /dev/null +++ b/node_modules/@adobe/css-tools/dist/types.d.ts @@ -0,0 +1,168 @@ +declare class CssParseError extends Error { + readonly reason: string; + readonly filename?: string; + readonly line: number; + readonly column: number; + readonly source: string; + constructor(filename: string, msg: string, lineno: number, column: number, css: string); +} +/** + * Store position information for a node + */ +declare class Position { + start: { + line: number; + column: number; + }; + end: { + line: number; + column: number; + }; + source?: string; + constructor(start: { + line: number; + column: number; + }, end: { + line: number; + column: number; + }, source: string); +} +export enum CssTypes { + stylesheet = "stylesheet", + rule = "rule", + declaration = "declaration", + comment = "comment", + container = "container", + charset = "charset", + document = "document", + customMedia = "custom-media", + fontFace = "font-face", + host = "host", + import = "import", + keyframes = "keyframes", + keyframe = "keyframe", + layer = "layer", + media = "media", + namespace = "namespace", + page = "page", + supports = "supports" +} +export type CssCommonAST = { + type: CssTypes; +}; +export type CssCommonPositionAST = CssCommonAST & { + position?: Position; + parent?: unknown; +}; +export type CssStylesheetAST = CssCommonAST & { + type: CssTypes.stylesheet; + stylesheet: { + source?: string; + rules: Array; + parsingErrors?: Array; + }; +}; +export type CssRuleAST = CssCommonPositionAST & { + type: CssTypes.rule; + selectors: Array; + declarations: Array; +}; +export type CssDeclarationAST = CssCommonPositionAST & { + type: CssTypes.declaration; + property: string; + value: string; +}; +export type CssCommentAST = CssCommonPositionAST & { + type: CssTypes.comment; + comment: string; +}; +export type CssContainerAST = CssCommonPositionAST & { + type: CssTypes.container; + container: string; + rules: Array; +}; +export type CssCharsetAST = CssCommonPositionAST & { + type: CssTypes.charset; + charset: string; +}; +export type CssCustomMediaAST = CssCommonPositionAST & { + type: CssTypes.customMedia; + name: string; + media: string; +}; +export type CssDocumentAST = CssCommonPositionAST & { + type: CssTypes.document; + document: string; + vendor?: string; + rules: Array; +}; +export type CssFontFaceAST = CssCommonPositionAST & { + type: CssTypes.fontFace; + declarations: Array; +}; +export type CssHostAST = CssCommonPositionAST & { + type: CssTypes.host; + rules: Array; +}; +export type CssImportAST = CssCommonPositionAST & { + type: CssTypes.import; + import: string; +}; +export type CssKeyframesAST = CssCommonPositionAST & { + type: CssTypes.keyframes; + name: string; + vendor?: string; + keyframes: Array; +}; +export type CssKeyframeAST = CssCommonPositionAST & { + type: CssTypes.keyframe; + values: Array; + declarations: Array; +}; +export type CssLayerAST = CssCommonPositionAST & { + type: CssTypes.layer; + layer: string; + rules?: Array; +}; +export type CssMediaAST = CssCommonPositionAST & { + type: CssTypes.media; + media: string; + rules: Array; +}; +export type CssNamespaceAST = CssCommonPositionAST & { + type: CssTypes.namespace; + namespace: string; +}; +export type CssPageAST = CssCommonPositionAST & { + type: CssTypes.page; + selectors: Array; + declarations: Array; +}; +export type CssSupportsAST = CssCommonPositionAST & { + type: CssTypes.supports; + supports: string; + rules: Array; +}; +export type CssAtRuleAST = CssRuleAST | CssCommentAST | CssContainerAST | CssCharsetAST | CssCustomMediaAST | CssDocumentAST | CssFontFaceAST | CssHostAST | CssImportAST | CssKeyframesAST | CssLayerAST | CssMediaAST | CssNamespaceAST | CssPageAST | CssSupportsAST; +export type CssAllNodesAST = CssAtRuleAST | CssStylesheetAST | CssDeclarationAST | CssKeyframeAST; +export const parse: (css: string, options?: { + source?: string | undefined; + silent?: boolean | undefined; +} | undefined) => CssStylesheetAST; +export const stringify: (node: CssStylesheetAST, options?: { + indent?: string | undefined; + compress?: boolean | undefined; +} | undefined) => string; +declare const _default: { + parse: (css: string, options?: { + source?: string | undefined; + silent?: boolean | undefined; + } | undefined) => CssStylesheetAST; + stringify: (node: CssStylesheetAST, options?: { + indent?: string | undefined; + compress?: boolean | undefined; + } | undefined) => string; +}; +export default _default; + +//# sourceMappingURL=types.d.ts.map diff --git a/node_modules/@adobe/css-tools/dist/types.d.ts.map b/node_modules/@adobe/css-tools/dist/types.d.ts.map new file mode 100644 index 0000000..292ae8c --- /dev/null +++ b/node_modules/@adobe/css-tools/dist/types.d.ts.map @@ -0,0 +1 @@ +{"mappings":"AAAA,2BAAmC,SAAQ,KAAK;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAGtB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM;CASd;ACrBD;;GAEG;AACH;IACE,KAAK,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC;IACtC,GAAG,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;gBAGd,KAAK,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,EACrC,GAAG,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,EACnC,MAAM,EAAE,MAAM;CAMjB;ACdD;IACE,UAAU,eAAe;IACzB,IAAI,SAAS;IACb,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,WAAW,iBAAiB;IAC5B,QAAQ,cAAc;IACtB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED,2BAA2B;IACzB,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEF,mCAAmC,YAAY,GAAG;IAChD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,+BAA+B,YAAY,GAAG;IAC5C,IAAI,EAAE,SAAS,UAAU,CAAC;IAC1B,UAAU,EAAE;QACV,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3B,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;KACtC,CAAC;CACH,CAAC;AAEF,yBAAyB,oBAAoB,GAAG;IAC9C,IAAI,EAAE,SAAS,IAAI,CAAC;IACpB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,YAAY,EAAE,KAAK,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC;CACxD,CAAC;AAEF,gCAAgC,oBAAoB,GAAG;IACrD,IAAI,EAAE,SAAS,WAAW,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,4BAA4B,oBAAoB,GAAG;IACjD,IAAI,EAAE,SAAS,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,8BAA8B,oBAAoB,GAAG;IACnD,IAAI,EAAE,SAAS,SAAS,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CAC5B,CAAC;AAEF,4BAA4B,oBAAoB,GAAG;IACjD,IAAI,EAAE,SAAS,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,gCAAgC,oBAAoB,GAAG;IACrD,IAAI,EAAE,SAAS,WAAW,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AACF,6BAA6B,oBAAoB,GAAG;IAClD,IAAI,EAAE,SAAS,QAAQ,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CAC5B,CAAC;AACF,6BAA6B,oBAAoB,GAAG;IAClD,IAAI,EAAE,SAAS,QAAQ,CAAC;IACxB,YAAY,EAAE,KAAK,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC;CACxD,CAAC;AACF,yBAAyB,oBAAoB,GAAG;IAC9C,IAAI,EAAE,SAAS,IAAI,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CAC5B,CAAC;AACF,2BAA2B,oBAAoB,GAAG;IAChD,IAAI,EAAE,SAAS,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,8BAA8B,oBAAoB,GAAG;IACnD,IAAI,EAAE,SAAS,SAAS,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,KAAK,CAAC,cAAc,GAAG,aAAa,CAAC,CAAC;CAClD,CAAC;AACF,6BAA6B,oBAAoB,GAAG;IAClD,IAAI,EAAE,SAAS,QAAQ,CAAC;IACxB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,YAAY,EAAE,KAAK,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC;CACxD,CAAC;AACF,0BAA0B,oBAAoB,GAAG;IAC/C,IAAI,EAAE,SAAS,KAAK,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CAC7B,CAAC;AACF,0BAA0B,oBAAoB,GAAG;IAC/C,IAAI,EAAE,SAAS,KAAK,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CAC5B,CAAC;AACF,8BAA8B,oBAAoB,GAAG;IACnD,IAAI,EAAE,SAAS,SAAS,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,yBAAyB,oBAAoB,GAAG;IAC9C,IAAI,EAAE,SAAS,IAAI,CAAC;IACpB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,YAAY,EAAE,KAAK,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC;CACxD,CAAC;AACF,6BAA6B,oBAAoB,GAAG;IAClD,IAAI,EAAE,SAAS,QAAQ,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CAC5B,CAAC;AAEF,2BACI,UAAU,GACV,aAAa,GACb,eAAe,GACf,aAAa,GACb,iBAAiB,GACjB,cAAc,GACd,cAAc,GACd,UAAU,GACV,YAAY,GACZ,eAAe,GACf,WAAW,GACX,WAAW,GACX,eAAe,GACf,UAAU,GACV,cAAc,CAAC;AAEnB,6BACI,YAAY,GACZ,gBAAgB,GAChB,iBAAiB,GACjB,cAAc,CAAC;AIlJnB,OAAO,MAAM;;;qDAAe,CAAC;AAC7B,OAAO,MAAM;;;wBAAuB,CAAC;;;;;;;;;;;AAIrC,wBAAkC","sources":["src/src/CssParseError.ts","src/src/CssPosition.ts","src/src/type.ts","src/src/parse/index.ts","src/src/stringify/compiler.ts","src/src/stringify/index.ts","src/src/index.ts","src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,"import {default as parseFn} from './parse';\nimport {default as stringifyFn} from './stringify';\nexport const parse = parseFn;\nexport const stringify = stringifyFn;\nexport * from './type';\nexport * from './CssParseError';\nexport * from './CssPosition';\nexport default {parse, stringify};\n"],"names":[],"version":3,"file":"types.d.ts.map"} \ No newline at end of file diff --git a/node_modules/@adobe/css-tools/package.json b/node_modules/@adobe/css-tools/package.json new file mode 100644 index 0000000..cc37004 --- /dev/null +++ b/node_modules/@adobe/css-tools/package.json @@ -0,0 +1,61 @@ +{ + "name": "@adobe/css-tools", + "version": "4.3.3", + "description": "CSS parser / stringifier", + "source": "src/index.ts", + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "exports": { + "import": "./dist/index.mjs", + "types": "./dist/types.d.ts", + "require": "./dist/index.cjs" + }, + "types": "./dist/types.d.ts", + "type": "module", + "files": [ + "dist", + "Readme.md" + ], + "devDependencies": { + "@parcel/packager-ts": "2.11.0", + "@parcel/transformer-typescript-types": "2.11.0", + "@types/benchmark": "^2.1.1", + "@types/bytes": "^3.1.1", + "@types/jest": "^29.5.3", + "@types/node": "^20.4.5", + "benchmark": "^2.1.4", + "bytes": "^3.1.0", + "gts": "^5.0.0", + "jest": "^29.6.2", + "parcel": "^2.11.0", + "ts-jest": "^29.1.1", + "typescript": "^5.0.2" + }, + "scripts": { + "benchmark": "node benchmark/index.mjs", + "test": "jest", + "clean": "gts clean && rm -rf ./dist", + "build": "parcel build && node ./utils/fix-type-generation.cjs", + "fix": "gts fix", + "lint": "gts lint", + "prepack": "npm run build", + "prepare": "npm run build", + "pretest": "npm run build", + "posttest": "npm run lint" + }, + "author": "TJ Holowaychuk ", + "contributors": [ + "Jean-Philippe Zolesio " + ], + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/adobe/css-tools.git" + }, + "keywords": [ + "css", + "parser", + "stringifier", + "stylesheet" + ] +} diff --git a/node_modules/@spotify/web-api-ts-sdk/.env.template b/node_modules/@spotify/web-api-ts-sdk/.env.template new file mode 100644 index 0000000..a0e3ff5 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/.env.template @@ -0,0 +1,6 @@ +INTEGRATION_TESTS_SPOTIFY_CLIENT_ID=your_spotify_client_id_for_tests +INTEGRATION_TESTS_SPOTIFY_CLIENT_SECRET=your_spotify_client_secret_for_tests +INTEGRATION_TESTS_USER_EMAIL=some@validuser.co.uk +INTEGRATION_TESTS_USER_PASSWORD=some-valid-password +VITE_SPOTIFY_CLIENT_ID=your_spotify_client_id_for_tests +VITE_REDIRECT_TARGET=http://localhost:3000 \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/.github/workflows/release.yml b/node_modules/@spotify/web-api-ts-sdk/.github/workflows/release.yml new file mode 100644 index 0000000..910bcb0 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/.github/workflows/release.yml @@ -0,0 +1,38 @@ +name: Release +on: + push: + branches: + - main + +permissions: + contents: read # for checkout + +jobs: + release: + name: Release + runs-on: ubuntu-latest + permissions: + contents: write # to be able to publish a GitHub release + issues: write # to be able to comment on released issues + pull-requests: write # to be able to comment on released pull requests + id-token: write # to enable use of OIDC for npm provenance + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: "lts/*" + - name: Install dependencies + run: npm clean-install + - name: Verify the integrity of provenance attestations and registry signatures for installed dependencies + run: npm audit signatures + - name: Build + run: npm run ci + - name: Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npx semantic-release diff --git a/node_modules/@spotify/web-api-ts-sdk/.nvmrc b/node_modules/@spotify/web-api-ts-sdk/.nvmrc new file mode 100644 index 0000000..2edeafb --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/.nvmrc @@ -0,0 +1 @@ +20 \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/.releaserc b/node_modules/@spotify/web-api-ts-sdk/.releaserc new file mode 100644 index 0000000..1ff4763 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/.releaserc @@ -0,0 +1,13 @@ +{ + "branches": [ + "main" + ], + "plugins": [ + "@semantic-release/commit-analyzer", + "@semantic-release/release-notes-generator", + "@semantic-release/changelog", + "@semantic-release/npm", + "@semantic-release/git", + "@semantic-release/github" + ] +} diff --git a/node_modules/@spotify/web-api-ts-sdk/CHANGELOG.md b/node_modules/@spotify/web-api-ts-sdk/CHANGELOG.md new file mode 100644 index 0000000..59e4b5f --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/CHANGELOG.md @@ -0,0 +1,12 @@ +# [1.2.0](https://github.com/spotify/spotify-web-api-ts-sdk/compare/v1.1.2...v1.2.0) (2024-01-17) + + +### Bug Fixes + +* **.releaserc:** add default plugins ([01317ac](https://github.com/spotify/spotify-web-api-ts-sdk/commit/01317ac5703340c7683a283a41647aa710a4cd4a)) + + +### Features + +* **.github/workflows:** replace npm-publish workflow with release workflow ([6b6ce72](https://github.com/spotify/spotify-web-api-ts-sdk/commit/6b6ce721e6be031fa27410fc2b78e4f8b45c4c4b)) +* **semantic-release:** install semantic release ([39a06d7](https://github.com/spotify/spotify-web-api-ts-sdk/commit/39a06d7fcf8ab0d0de1a5b01dbc576c8ef0bd49b)) diff --git a/node_modules/@spotify/web-api-ts-sdk/CODE_OF_CONDUCT.md b/node_modules/@spotify/web-api-ts-sdk/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..47ec1b9 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/CODE_OF_CONDUCT.md @@ -0,0 +1,69 @@ +# Code of Conduct + +This code of conduct outlines our expectations for participants within the **Spotify FOSS** community, as well as steps to reporting unacceptable behavior. We are committed to providing a welcoming and inspiring community for all and expect our code of conduct to be honored. Anyone who violates this code of conduct may be banned from the community. + +Our open source community strives to: + +- **Be friendly and patient.** +- **Be welcoming**: We strive to be a community that welcomes and supports people of all backgrounds and identities. This includes, but is not limited to members of any race, ethnicity, culture, national origin, colour, immigration status, social and economic class, educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief, religion, and mental and physical ability. +- **Be considerate**: Your work will be used by other people, and you in turn will depend on the work of others. Any decision you take will affect users and colleagues, and you should take those consequences into account when making decisions. Remember that we're a world-wide community, so you might not be communicating in someone else's primary language. +- **Be respectful**: Not all of us will agree all the time, but disagreement is no excuse for poor behavior and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It’s important to remember that a community where people feel uncomfortable or threatened is not a productive one. +- **Be careful in the words that we choose**: we are a community of professionals, and we conduct ourselves professionally. Be kind to others. Do not insult or put down other participants. Harassment and other exclusionary behavior aren't acceptable. +- **Try to understand why we disagree**: Disagreements, both social and technical, happen all the time. It is important that we resolve disagreements and differing views constructively. Remember that we’re different. The strength of our community comes from its diversity, people from a wide range of backgrounds. Different people have different perspectives on issues. Being unable to understand why someone holds a viewpoint doesn’t mean that they’re wrong. Don’t forget that it is human to err and blaming each other doesn’t get us anywhere. Instead, focus on helping to resolve issues and learning from mistakes. + +## Definitions + +Harassment includes, but is not limited to: + +- Offensive comments related to gender, gender identity and expression, sexual orientation, disability, mental illness, neuro(a)typicality, physical appearance, body size, race, age, regional discrimination, political or religious affiliation +- Unwelcome comments regarding a person’s lifestyle choices and practices, including those related to food, health, parenting, drugs, and employment +- Deliberate misgendering. This includes deadnaming or persistently using a pronoun that does not correctly reflect a person's gender identity. You must address people by the name they give you when not addressing them by their username or handle +- Physical contact and simulated physical contact (eg, textual descriptions like “_hug_” or “_backrub_”) without consent or after a request to stop +- Threats of violence, both physical and psychological +- Incitement of violence towards any individual, including encouraging a person to commit suicide or to engage in self-harm +- Deliberate intimidation +- Stalking or following +- Harassing photography or recording, including logging online activity for harassment purposes +- Sustained disruption of discussion +- Unwelcome sexual attention, including gratuitous or off-topic sexual images or behaviour +- Pattern of inappropriate social contact, such as requesting/assuming inappropriate levels of intimacy with others +- Continued one-on-one communication after requests to cease +- Deliberate “outing” of any aspect of a person’s identity without their consent except as necessary to protect others from intentional abuse +- Publication of non-harassing private communication + +Our open source community prioritizes marginalized people’s safety over privileged people’s comfort. We will not act on complaints regarding: + +- â€Reverse’ -isms, including â€reverse racism,’ â€reverse sexism,’ and â€cisphobia’ +- Reasonable communication of boundaries, such as “leave me alone,” “go away,” or “I’m not discussing this with you” +- Refusal to explain or debate social justice concepts +- Communicating in a â€tone’ you don’t find congenial +- Criticizing racist, sexist, cissexist, or otherwise oppressive behavior or assumptions + +### Diversity Statement + +We encourage everyone to participate and are committed to building a community for all. Although we will fail at times, we seek to treat everyone both as fairly and equally as possible. Whenever a participant has made a mistake, we expect them to take responsibility for it. If someone has been harmed or offended, it is our responsibility to listen carefully and respectfully, and do our best to right the wrong. + +Although this list cannot be exhaustive, we explicitly honor diversity in age, gender, gender identity or expression, culture, ethnicity, language, national origin, political beliefs, profession, race, religion, sexual orientation, socioeconomic status, and technical ability. We will not tolerate discrimination based on any of the protected +characteristics above, including participants with disabilities. + +### Reporting Issues + +If you experience or witness unacceptable behavior—or have any other concerns—please report it by contacting us via **fossboard@spotify.com**. All reports will be handled with discretion. In your report please include: + +- Your contact information. +- Names (real, nicknames, or pseudonyms) of any individuals involved. If there are additional witnesses, please + include them as well. Your account of what occurred, and if you believe the incident is ongoing. If there is a publicly available record (e.g. a mailing list archive or a public IRC logger), please include a link. +- Any additional information that may be helpful. + +After filing a report, a representative will contact you personally, review the incident, follow up with any additional questions, and make a decision as to how to respond. If the person who is harassing you is part of the response team, they will recuse themselves from handling your incident. If the complaint originates from a member of the response team, it will be handled by a different member of the response team. We will respect confidentiality requests for the purpose of protecting victims of abuse. + +### Attribution & Acknowledgements + +We all stand on the shoulders of giants across many open source communities. We'd like to thank the communities and projects that established codes of conduct and diversity statements as our inspiration: + +- [Django](https://www.djangoproject.com/conduct/reporting/) +- [Python](https://www.python.org/community/diversity/) +- [Ubuntu](http://www.ubuntu.com/about/about-ubuntu/conduct) +- [Contributor Covenant](http://contributor-covenant.org/) +- [Geek Feminism](http://geekfeminism.org/about/code-of-conduct/) +- [Citizen Code of Conduct](http://citizencodeofconduct.org/) diff --git a/node_modules/@spotify/web-api-ts-sdk/CONTRIBUTING.md b/node_modules/@spotify/web-api-ts-sdk/CONTRIBUTING.md new file mode 100644 index 0000000..0f543cc --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/CONTRIBUTING.md @@ -0,0 +1,155 @@ +# How to Contribute + +We'd love to get patches from you! + +## Getting Started + +If you find a bug, please open an issue, create a PR or [chat to the team on our forum](https://community.spotify.com/t5/Spotify-for-Developers/bd-p/Spotify_Developer). + +## Building dependencies + +Because this SDK uses `fetch` both in Node and the Browser, and ESM, it requires the following: + +- Node 18.0.0 or higher +- A modern, version infinite, browser + +To install the project, cd into the project and run + +```bash +npm install +``` + +## Building the Project + +To run the project, cd into the project and run + +```bash +npm run start +``` + +## Tests + +To run the tests, you need to have a Spotify account. + +You will need to create a new app in the Spotify Developer portal, and add a redirect URI of `http://localhost:3000`. + +Add the following environment variables: + +- `INTEGRATION_TESTS_SPOTIFY_CLIENT_ID` +- `INTEGRATION_TESTS_SPOTIFY_CLIENT_SECRET` +- `INTEGRATION_TESTS_USER_EMAIL` +- `INTEGRATION_TESTS_USER_PASSWORD` + +The latter two credentials are used to run integration tests in the scope of a *real user account*. This is required to test endpoints that require a user's authorization, such as `followPlaylist`. You need to make sure that your user has access to whichever Spotify app your client credentials and secret are for. + +You can run the tests with `npm run test`, or using a plugin like [Wallaby](https://wallabyjs.com/). + +We support `dotenv`, so you can add these to a `.env` file in the root of the repository. + +To run the embedded example app, you will need to add the following environment variables: + +- `VITE_SPOTIFY_CLIENT_ID`=the same value as set in INTEGRATION_TESTS_SPOTIFY_CLIENT_ID +- `VITE_REDIRECT_TARGET`=http://localhost:3000 + +For the example app to work, this .env file needs to be in the ./example folder. + +## Workflow + +We follow the [GitHub Flow Workflow](https://guides.github.com/introduction/flow/) + +### TODO: Below is an Example + +1. Fork the project +2. Check out the `main` branch +3. Create a feature branch +4. Write code and tests for your change +5. From your branch, make a pull request +6. Work with repo maintainers to get your change reviewed +7. Wait for your change to be pulled +8. Delete your feature branch + +## Testing + +To run the tests, you need to have a Spotify account. + +You will need to create a new app in the Spotify Developer portal, and add a redirect URI of `http://localhost:3000`. + +You will need to add the following environment variables: + +- `INTEGRATION_TESTS_SPOTIFY_CLIENT_ID` +- `INTEGRATION_TESTS_SPOTIFY_CLIENT_SECRET` +- `INTEGRATION_TESTS_USER_EMAIL` +- `INTEGRATION_TESTS_USER_PASSWORD` + +The latter two credentials are used to run integration tests in the scope of a *real user account*. This is required to test endpoints that require a user's authorization, such as `followPlaylist`. You need to make sure that your user has access to whichever Spotify app your client credentials and secret are for. + +You can run the tests with `npm run test`, or using a plugin like [Wallaby](https://wallabyjs.com/). + +We support `dotenv`, so you can add these to a `.env` file in the root of the repository. + +To run the embedded example app, you will need to add the following environment variables: + +```bash +VITE_SPOTIFY_CLIENT_ID=the same value as set in INTEGRATION_TESTS_SPOTIFY_CLIENT_ID +VITE_REDIRECT_TARGET=http://localhost:3000 +``` + +For the example app to work, this .env file needs to be in the ./example folder. + +## Issues + +When creating an issue please try to adhere to the following format: + + module-name: One line summary of the issue (less than 72 characters) + + ### Expected behavior + + As concisely as possible, describe the expected behavior. + + ### Actual behavior + + As concisely as possible, describe the observed behavior. + + ### Steps to reproduce the behavior + + List all relevant steps to reproduce the observed behavior. + +## Pull Requests + +We adhere to a specific format for commit messages. Please write your commit +messages along these guidelines: + + module-name: One line description of your change (less than 72 characters) + + Problem + + Explain the context and why you're making that change. What is the problem + you're trying to solve? In some cases there is not a problem and this can be + thought of being the motivation for your change. + + Solution + + Describe the modifications you've done. + + Result + + What will change as a result of your pull request? Note that sometimes this + section is unnecessary because it is self-explanatory based on the solution. + +Some important notes regarding the summary line: + +- Describe what was done; not the result +- Use the active voice +- Use the present tense +- Capitalize properly +- Do not end in a period — this is a title/subject +- Prefix the subject with its scope + +# License + +By contributing your code, you agree to license your contribution under the +terms of the [LICENSE](LICENSE) + +# Code of Conduct + +Read our [Code of Conduct](CODE_OF_CONDUCT.md) for the project. diff --git a/node_modules/@spotify/web-api-ts-sdk/LICENSE b/node_modules/@spotify/web-api-ts-sdk/LICENSE new file mode 100644 index 0000000..26b2995 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2023 Spotify, Inc. + +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/@spotify/web-api-ts-sdk/README.md b/node_modules/@spotify/web-api-ts-sdk/README.md new file mode 100644 index 0000000..4ec5def --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/README.md @@ -0,0 +1,313 @@ +# Spotify Web API SDK - TypeScript + +This is a JavaScript/TypeScript SDK for the [Spotify Web API](https://developer.spotify.com/web-api/). + +## Requirements + +Because this SDK uses `fetch` both in Node and the Browser, and ESM, we require the following: + +- Node 18.0.0 or higher +- A modern, version infinite, browser + +The package contains both an ESM and CommonJS build, so you can use it in both Node and the Browser. + +## Using this in your project + +```bash +npm install @spotify/web-api-ts-sdk +``` + +## Running the example app + +First install the dependencies: + +```bash +npm install +``` + +Create a `.env` file in the example directory with your `client_id` and redirect url: + +```bash .env +VITE_SPOTIFY_CLIENT_ID=your_spotify_client_id_for_tests +VITE_REDIRECT_TARGET=http://localhost:3000 +``` + +To run the app: + +```bash +npm run start +``` + +### Creating a client instance + +Creating an instance of the SDK is easy, and can be done in a number of ways depending on which form of authentication you want to use. + +```js +import { SpotifyApi } from '@spotify/web-api-ts-sdk'; + +// Choose one of the following: +const sdk = SpotifyApi.withUserAuthorization("client-id", "https://localhost:3000", ["scope1", "scope2"]); +const sdk = SpotifyApi.withClientCredentials("client-id", "secret", ["scope1", "scope2"]); +``` + +Each of these factory methods will return a `SpotifyApi` instance, which you can use to make requests to the Spotify Web API. + +Once you have an authenticated instance of the SDK, you can make requests to the Spotify Web API by using the methods exposed on the client instance of the API. Types are embedded in the package, so if you're using Visual Studio Code or other compatible IDEs, you should get intellisense and type checking by default. + +```js +const items = await sdk.search("The Beatles", ["artist"]); + +console.table(items.artists.items.map((item) => ({ + name: item.name, + followers: item.followers.total, + popularity: item.popularity, +}))); +``` + +### Authentication Methods + +- Authorization Code Flow with PKCE +- Client Credentials Flow +- Implicit Grant Flow +- Mixed Server and Client Side Authentication + +We do auto-token refresh when expired and a refresh token is available. + +### Picking an Authentication Method + +If you're building a browser based application, you should use Authorization Code Flow with PKCE. This is the most secure way to authenticate your users and handles the redirection from your app to Spotify and back. Your server side code will not have access to the Spotify API with user access scopes, but you can use the SDK to perform client side requests with the users access token. + +Calling any of the methods on the SDK will automatically perform any redirects/refreshes that are necessary. + +```js +const sdk = SpotifyApi.withUserAuthorization("client-id", "https://localhost:3000", ["scope1", "scope2"]); +const user = await sdk.currentUser.profile() +``` + + +If you're building a server side application, you should use Client Credentials Flow, and is the correct choice when you have both your Client ID and Client Secret available. This flow is not available in the browser (as you should not embed your Client Secret in Client Side web applications), so should only be used from Node.js. + +Mixed Server and Client Side Authentication is a special case, and is covered in the section below. This is useful if you want to perform requests with a users access token from your server side code. + +### Mixed Server and Client Side Authentication + +There's capabilities in the client if you want to interact with Spotify from your Node.js server, but perform a client side Authorization Code Flow with PKCE. +You might want to do this if you want your server side SDK instance to be authorized "as a specific user" to interact with user data. + +You'll need to do three things. + +1. Perform Authorization Code Flow with PKCE using some special helper functions +2. Expose a URL from your Node.js application that accepts a token post-back +3. Initilise an instance of the SDK with the posted-back token + +Setup: + +*Client Side* +```js +SpotifyApi.performUserAuthorization("client-id", "https://localhost:3000", ["scope1", "scope2"], "https://your-backend-server.com/accept-user-token"); +// Alternatively if you want to perform your own custom post-back +SpotifyApi.performUserAuthorization("client-id", "https://localhost:3000", ["scope1", "scope2"], (accessToken) => { /* do postback here */ }); +``` + +These functions will work as usual, triggering a client side redirect to grant permissions, along with verifying the response and performing token exchange. + +*Server Side* +```js +const { SpotifyApi } = require("@spotify/web-api-ts-sdk"); + +const express = require('express'); +const bodyParser = require('body-parser'); +const app = express(); + +app.use(bodyParser.json()); +app.use(bodyParser.urlencoded({ extended: false })); + +let sdk; + +app.post('/accept-user-token', (req, res) => { + let data = req.body; + sdk = SpotifyApi.withAccessToken("client-id", data); // SDK now authenticated as client-side user +}); + +app.listen(3000, () => { + console.log('Example app listening on port 3000!') +}); +``` + +[Check out our blog post for more examples using ES Modules or CommonJS](https://developer.spotify.com/blog/2023-07-03-typescript-sdk) + +### Extensibility + +All of the constructors support a configuration object that lets you override the default behavior of the SDK. + +Our defaults look like this, and each of the properties is optional, and can be overridden. + +```ts +const defaultConfig: SdkConfiguration = { + fetch: (req: RequestInfo | URL, init: RequestInit | undefined) => fetch(req, init), + beforeRequest: (_: string, __: RequestInit) => { }, + afterRequest: (_: string, __: RequestInit, ___: Response) => { }, + deserializer: new DefaultResponseDeserializer(), + responseValidator: new DefaultResponseValidator(), + errorHandler: new NoOpErrorHandler(), + redirectionStrategy: new DocumentLocationRedirectionStrategy(), + cachingStrategy: isBrowser + ? new LocalStorageCachingStrategy() + : new InMemoryCachingStrategy() +}; +``` + +As a general rule, this options should be overridden when you create your instance of the client, and you probably won't have to change any of them unless you have some very specific requirements. + +You can provide the options like this, to any of the constructors or static initilisation methods: + +```js +const opts = { + fetch: (req, init) => { + console.log("Called via my custom fetch!"); + return fetch(req, init); + } +} + +const sdk = SpotifyApi.withUserAuthorization("client-id", "https://callback", ["scope1"], opts); +``` + +All the below examples are in TypeScript, but the same method signatures all apply to JavaScript - just without the Type information. + +### Extensibility - fetch + +You can override the default Fetch implementation by passing in a function that takes a `RequestInfo` and `RequestInit` and returns a `Promise`. By default, we use the browser and nodes built in `fetch` implementation. + +```js +const opts = { + fetch: (req, init) => { + // Do something with the request + return fetch(req, init); + } +} +``` + +### Extensibility - beforeRequest and afterRequest + +You can override the default `beforeRequest` and `afterRequest` callbacks by passing in functions that take a `RequestInfo` and `RequestInit` and return nothing. By default, we do nothing. + +You can use these functions to implement custom instrumentation, logging, or other functionality. + +```js +const opts = { + beforeRequest: (req, init) => { + console.log("Called before the request is made"); + }, + afterRequest: (req, init, res) => { + console.log("Called after the request is made"); + } +} +``` + +### Extensibility - deserializer + +You can override the default deserializer by passing in a class that implements the `IResponseDeserializer` interface. By default, we use the `DefaultResponseDeserializer` class. + +To implement your own, you need to provide an object with the following method signature: + +```ts +async deserialize(response: Response): Promise { + // Implement your custom deserialization logic here +} +``` + +You'll probably never need to do this unless you feel the need to add custom logging around deserialization behaviour or wish to customise the default objects returned during serialization failures. + +### Extensibility - responseValidator + +You can override the default response validator by passing in a class that implements the `IValidateResponses` interface. By default, we use the `DefaultResponseValidator` class. + +Our default impelementation validates the following: + +- The response status code is in the 200 range +- Errors are thrown for 400 and 500 range status codes +- Non-200 response codes throw errors with the API response body inside of them + +If you need to customise this behaviour, replace the implementation like this: + +```ts +export default class MyResponseValidator implements IValidateResponses { + public async validateResponse(response: Response): Promise { + // Something here + } +} +``` + +### Extensibility - errorHandler + +You can override the default error handler by passing in a class that implements the `IHandleErrors` interface. By default, we use the `NoOpErrorHandler` class which... does nothing! + +If you need to customise this behaviour, replace the implementation like this: + +```ts +export default class MyErrorHandler implements IHandleErrors { + public async handleErrors(error: any): Promise { + return false; + } +} +``` + +If you return `true` from your error handler, the SDK will not throw an error, and treat it as handleed, returning null from the request that triggered it. Returning false will re-throw the original error after your handler has run. + +### Extensibility - redirectionStrategy + +You can override the default redirection strategy by passing in a class that implements the `IRedirect` interface. By default, we use the `DocumentLocationRedirectionStrategy` class. + +```ts +export default class DocumentLocationRedirectionStrategy implements IRedirectionStrategy { + public async redirect(targetUrl: string | URL): Promise { + document.location = targetUrl.toString(); + } + + public async onReturnFromRedirect(): Promise { + } +} +``` + +You might want to override this behaviour if you use a client side framework like React or Vue and you need to record some state, or trigger some operation before the redirect for oAuth / token exchange happens. For example - you might want to add something to localStorage that you can read back when the user returns to the application. + +### Extensibility - cachingStrategy + +You can override the default caching strategy by passing in a class that implements the `ICache` interface. By default, we use the `LocalStorageCachingStrategy` class. + +```ts +interface ICachingStrategy { + getOrCreate(cacheKey: string, createFunction: () => Promise): Promise; + get(cacheKey: string): T & ICachable | null; + setCacheItem(cacheKey: string, item: T & ICachable): void; + remove(cacheKey: string): void; +} +``` + +We provide a default browser (localStorage) caching strategy and (TODO) a node in-memory caching strategy. + +## Running the tests + +To run the tests, you need to have a Spotify account. + +You will need to create a new app in the Spotify Developer portal, and add a redirect URI of `http://localhost:3000`. + +You will need to add the following environment variables: + +- `INTEGRATION_TESTS_SPOTIFY_CLIENT_ID` +- `INTEGRATION_TESTS_SPOTIFY_CLIENT_SECRET` +- `INTEGRATION_TESTS_USER_EMAIL` +- `INTEGRATION_TESTS_USER_PASSWORD` + +The latter two credentials are used to run integration tests in the scope of a *real user account*. This is required to test endpoints that require a user's authorization, such as `followPlaylist`. You need to make sure that your user has access to whichever Spotify app your client credentials and secret are for. + +You can run the tests with `npm run test`, or using a plugin like [Wallaby](https://wallabyjs.com/). + +We support `dotenv`, so you can add these to a `.env` file in the root of the repository. + +To run the embedded example app, you will need to add the following environment variables: + +- `VITE_SPOTIFY_CLIENT_ID`=the same value as set in INTEGRATION_TESTS_SPOTIFY_CLIENT_ID +- `VITE_REDIRECT_TARGET`=http://localhost:3000 + +For the example app to work, this .env file needs to be in the ./example folder. diff --git a/node_modules/@spotify/web-api-ts-sdk/SECURITY.md b/node_modules/@spotify/web-api-ts-sdk/SECURITY.md new file mode 100644 index 0000000..89155ad --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/SECURITY.md @@ -0,0 +1,16 @@ +# Security Policy + +We're big believers in protecting your privacy and security. As a company, we not only have a vested interest, but also a deep desire to see the Internet remain as safe as possible for us all. + +So, needless to say, we take security issues very seriously. + +In our opinion, the practice of 'responsible disclosure' is the best way to safeguard the Internet. It allows individuals to notify companies like Spotify of any security threats before going public with the information. This gives us a fighting chance to resolve the problem before the criminally-minded become aware of it. + +Responsible disclosure is the industry best practice, and we recommend it as a procedure to anyone researching security vulnerabilities. + +## Reporting a Vulnerability + +If you have discovered a vulnerability in this open source project or another serious security issue, +please submit it to the Spotify bounty program hosted by HackerOne. + +https://hackerone.com/spotify diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/Scopes.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/Scopes.d.ts new file mode 100644 index 0000000..5bd60d8 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/Scopes.d.ts @@ -0,0 +1,17 @@ +export declare class Scopes { + static get playlist(): string[]; + static get playlistRead(): string[]; + static get playlistModify(): string[]; + static get userDetails(): string[]; + static get userLibrary(): string[]; + static get userLibraryRead(): string[]; + static get userLibraryModify(): string[]; + static get userRecents(): string[]; + static get userFollow(): string[]; + static get userFollowRead(): string[]; + static get userFollowModify(): string[]; + static get userPlayback(): string[]; + static get userPlaybackRead(): string[]; + static get userPlaybackModify(): string[]; + static get all(): string[]; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/Scopes.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/Scopes.js new file mode 100644 index 0000000..578794d --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/Scopes.js @@ -0,0 +1,100 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Scopes = void 0; +class Scopes { + static get playlist() { + return [ + ...Scopes.playlistRead, + ...Scopes.playlistModify + ]; + } + static get playlistRead() { + return [ + "playlist-read-private", + "playlist-read-collaborative", + ]; + } + static get playlistModify() { + return [ + "playlist-modify-public", + "playlist-modify-private", + "ugc-image-upload" + ]; + } + static get userDetails() { + return [ + "user-read-private", + "user-read-email", + ]; + } + static get userLibrary() { + return [ + ...Scopes.userLibraryRead, + ...Scopes.userLibraryModify + ]; + } + static get userLibraryRead() { + return [ + "user-library-read", + ]; + } + static get userLibraryModify() { + return [ + "user-library-modify", + ]; + } + static get userRecents() { + return [ + "user-top-read", + "user-read-recently-played", + ]; + } + static get userFollow() { + return [ + ...Scopes.userFollowRead, + ...Scopes.userFollowModify + ]; + } + static get userFollowRead() { + return [ + "user-follow-read", + ]; + } + static get userFollowModify() { + return [ + "user-follow-modify", + ]; + } + static get userPlayback() { + return [ + ...Scopes.userPlaybackRead, + ...Scopes.userPlaybackModify + ]; + } + static get userPlaybackRead() { + return [ + "user-read-playback-position", + "user-read-playback-state", + "user-read-currently-playing", + ]; + } + static get userPlaybackModify() { + return [ + "user-modify-playback-state", + "app-remote-control", + "streaming" + ]; + } + static get all() { + return [ + ...Scopes.userDetails, + ...Scopes.playlist, + ...Scopes.userLibrary, + ...Scopes.userRecents, + ...Scopes.userFollow, + ...Scopes.userPlayback, + ]; + } +} +exports.Scopes = Scopes; +//# sourceMappingURL=Scopes.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/Scopes.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/Scopes.js.map new file mode 100644 index 0000000..da76ae8 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/Scopes.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Scopes.js","sourceRoot":"","sources":["../../src/Scopes.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;IAER,MAAM,KAAK,QAAQ;QACtB,OAAO;YACH,GAAG,MAAM,CAAC,YAAY;YACtB,GAAG,MAAM,CAAC,cAAc;SAC3B,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,YAAY;QAC1B,OAAO;YACH,uBAAuB;YACvB,6BAA6B;SAChC,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,cAAc;QAC5B,OAAO;YACH,wBAAwB;YACxB,yBAAyB;YACzB,kBAAkB;SACrB,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,WAAW;QACzB,OAAO;YACH,mBAAmB;YACnB,iBAAiB;SACpB,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,WAAW;QACzB,OAAO;YACH,GAAG,MAAM,CAAC,eAAe;YACzB,GAAG,MAAM,CAAC,iBAAiB;SAC9B,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,eAAe;QAC7B,OAAO;YACH,mBAAmB;SACtB,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,iBAAiB;QAC/B,OAAO;YACH,qBAAqB;SACxB,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,WAAW;QACzB,OAAO;YACH,eAAe;YACf,2BAA2B;SAC9B,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,UAAU;QACxB,OAAO;YACH,GAAG,MAAM,CAAC,cAAc;YACxB,GAAG,MAAM,CAAC,gBAAgB;SAC7B,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,cAAc;QAC5B,OAAO;YACH,kBAAkB;SACrB,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,gBAAgB;QAC9B,OAAO;YACH,oBAAoB;SACvB,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,YAAY;QAC1B,OAAO;YACH,GAAG,MAAM,CAAC,gBAAgB;YAC1B,GAAG,MAAM,CAAC,kBAAkB;SAC/B,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,gBAAgB;QAC9B,OAAO;YACH,6BAA6B;YAC7B,0BAA0B;YAC1B,6BAA6B;SAChC,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,kBAAkB;QAChC,OAAO;YACH,4BAA4B;YAC5B,oBAAoB;YACpB,WAAW;SACd,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,GAAG;QACjB,OAAO;YACH,GAAG,MAAM,CAAC,WAAW;YACrB,GAAG,MAAM,CAAC,QAAQ;YAClB,GAAG,MAAM,CAAC,WAAW;YACrB,GAAG,MAAM,CAAC,WAAW;YACrB,GAAG,MAAM,CAAC,UAAU;YACpB,GAAG,MAAM,CAAC,YAAY;SACzB,CAAC;IACN,CAAC;CACJ;AA7GD,wBA6GC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/SpotifyApi.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/SpotifyApi.d.ts new file mode 100644 index 0000000..cf5eff3 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/SpotifyApi.d.ts @@ -0,0 +1,80 @@ +import AlbumsEndpoints from "./endpoints/AlbumsEndpoints.js"; +import ArtistsEndpoints from "./endpoints/ArtistsEndpoints.js"; +import AudiobooksEndpoints from "./endpoints/AudiobooksEndpoints.js"; +import BrowseEndpoints from "./endpoints/BrowseEndpoints.js"; +import ChaptersEndpoints from "./endpoints/ChaptersEndpoints.js"; +import EpisodesEndpoints from "./endpoints/EpisodesEndpoints.js"; +import RecommendationsEndpoints from "./endpoints/RecommendationsEndpoints.js"; +import MarketsEndpoints from "./endpoints/MarketsEndpoints.js"; +import PlayerEndpoints from "./endpoints/PlayerEndpoints.js"; +import PlaylistsEndpoints from "./endpoints/PlaylistsEndpoints.js"; +import { SearchExecutionFunction } from "./endpoints/SearchEndpoints.js"; +import ShowsEndpoints from "./endpoints/ShowsEndpoints.js"; +import TracksEndpoints from "./endpoints/TracksEndpoints.js"; +import IAuthStrategy from "./auth/IAuthStrategy.js"; +import UsersEndpoints from "./endpoints/UsersEndpoints.js"; +import CurrentUserEndpoints from "./endpoints/CurrentUserEndpoints.js"; +import type { AccessToken, SdkOptions, AuthenticationResponse } from "./types.js"; +export declare class SpotifyApi { + private sdkConfig; + private static rootUrl; + private authenticationStrategy; + albums: AlbumsEndpoints; + artists: ArtistsEndpoints; + audiobooks: AudiobooksEndpoints; + browse: BrowseEndpoints; + chapters: ChaptersEndpoints; + episodes: EpisodesEndpoints; + recommendations: RecommendationsEndpoints; + markets: MarketsEndpoints; + player: PlayerEndpoints; + playlists: PlaylistsEndpoints; + shows: ShowsEndpoints; + tracks: TracksEndpoints; + users: UsersEndpoints; + search: SearchExecutionFunction; + currentUser: CurrentUserEndpoints; + constructor(authentication: IAuthStrategy, config?: SdkOptions); + makeRequest(method: "GET" | "POST" | "PUT" | "DELETE", url: string, body?: any, contentType?: string | undefined): Promise; + private initializeSdk; + switchAuthenticationStrategy(authentication: IAuthStrategy): void; + /** + * Use this when you're running in a browser and you want to control when first authentication+redirect happens. + */ + authenticate(): Promise; + /** + * @returns the current access token. null implies the SpotifyApi is not yet authenticated. + */ + getAccessToken(): Promise; + /** + * Removes the access token if it exists. + */ + logOut(): void; + static withUserAuthorization(clientId: string, redirectUri: string, scopes?: string[], config?: SdkOptions): SpotifyApi; + static withClientCredentials(clientId: string, clientSecret: string, scopes?: string[], config?: SdkOptions): SpotifyApi; + static withImplicitGrant(clientId: string, redirectUri: string, scopes?: string[], config?: SdkOptions): SpotifyApi; + /** + * Use this when you're running in a Node environment, and accepting the access token from a client-side `performUserAuthorization` call. + * You can also use this method if you already have an access token and don't want to use the built-in authentication strategies. + */ + static withAccessToken(clientId: string, token: AccessToken, config?: SdkOptions): SpotifyApi; + /** + * Use this when you're running in the browser, and want to perform the user authorization flow to post back to your server with the access token. + * @param clientId Your Spotify client ID + * @param redirectUri The URI to redirect to after the user has authorized your app + * @param scopes The scopes to request + * @param postbackUrl The URL to post the access token to + * @param config Optional configuration + */ + static performUserAuthorization(clientId: string, redirectUri: string, scopes: string[], postbackUrl: string, config?: SdkOptions): Promise; + /** + * Use this when you're running in the browser, and want to perform the user authorization flow to post back to your server with the access token. + * This overload is provided for you to perform the postback yourself, if you want to do something other than a simple HTTP POST to a URL - for example, if you want to use a WebSocket, or provide custom authentication. + * @param clientId Your Spotify client ID + * @param redirectUri The URI to redirect to after the user has authorized your app + * @param scopes The scopes to request + * @param onAuthorization A function to call with the access token where YOU perform the server-side postback + * @param config Optional configuration + */ + static performUserAuthorization(clientId: string, redirectUri: string, scopes: string[], onAuthorization: (token: AccessToken) => Promise, config?: SdkOptions): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/SpotifyApi.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/SpotifyApi.js new file mode 100644 index 0000000..1c43f20 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/SpotifyApi.js @@ -0,0 +1,196 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SpotifyApi = void 0; +const AlbumsEndpoints_js_1 = __importDefault(require("./endpoints/AlbumsEndpoints.js")); +const ArtistsEndpoints_js_1 = __importDefault(require("./endpoints/ArtistsEndpoints.js")); +const AudiobooksEndpoints_js_1 = __importDefault(require("./endpoints/AudiobooksEndpoints.js")); +const BrowseEndpoints_js_1 = __importDefault(require("./endpoints/BrowseEndpoints.js")); +const ChaptersEndpoints_js_1 = __importDefault(require("./endpoints/ChaptersEndpoints.js")); +const EpisodesEndpoints_js_1 = __importDefault(require("./endpoints/EpisodesEndpoints.js")); +const RecommendationsEndpoints_js_1 = __importDefault(require("./endpoints/RecommendationsEndpoints.js")); +const MarketsEndpoints_js_1 = __importDefault(require("./endpoints/MarketsEndpoints.js")); +const PlayerEndpoints_js_1 = __importDefault(require("./endpoints/PlayerEndpoints.js")); +const PlaylistsEndpoints_js_1 = __importDefault(require("./endpoints/PlaylistsEndpoints.js")); +const SearchEndpoints_js_1 = __importDefault(require("./endpoints/SearchEndpoints.js")); +const ShowsEndpoints_js_1 = __importDefault(require("./endpoints/ShowsEndpoints.js")); +const TracksEndpoints_js_1 = __importDefault(require("./endpoints/TracksEndpoints.js")); +const IAuthStrategy_js_1 = require("./auth/IAuthStrategy.js"); +const UsersEndpoints_js_1 = __importDefault(require("./endpoints/UsersEndpoints.js")); +const CurrentUserEndpoints_js_1 = __importDefault(require("./endpoints/CurrentUserEndpoints.js")); +const ClientCredentialsStrategy_js_1 = __importDefault(require("./auth/ClientCredentialsStrategy.js")); +const ImplicitGrantStrategy_js_1 = __importDefault(require("./auth/ImplicitGrantStrategy.js")); +const AuthorizationCodeWithPKCEStrategy_js_1 = __importDefault(require("./auth/AuthorizationCodeWithPKCEStrategy.js")); +const DefaultResponseDeserializer_js_1 = __importDefault(require("./serialization/DefaultResponseDeserializer.js")); +const DefaultResponseValidator_js_1 = __importDefault(require("./responsevalidation/DefaultResponseValidator.js")); +const NoOpErrorHandler_js_1 = __importDefault(require("./errorhandling/NoOpErrorHandler.js")); +const DocumentLocationRedirectionStrategy_js_1 = __importDefault(require("./redirection/DocumentLocationRedirectionStrategy.js")); +const LocalStorageCachingStrategy_js_1 = __importDefault(require("./caching/LocalStorageCachingStrategy.js")); +const InMemoryCachingStrategy_js_1 = __importDefault(require("./caching/InMemoryCachingStrategy.js")); +const ProvidedAccessTokenStrategy_js_1 = __importDefault(require("./auth/ProvidedAccessTokenStrategy.js")); +class SpotifyApi { + sdkConfig; + static rootUrl = "https://api.spotify.com/v1/"; + authenticationStrategy; + albums; + artists; + audiobooks; + browse; + chapters; + episodes; + recommendations; + markets; + player; + playlists; + shows; + tracks; + users; + search; + currentUser; + constructor(authentication, config) { + this.sdkConfig = this.initializeSdk(config); + this.albums = new AlbumsEndpoints_js_1.default(this); + this.artists = new ArtistsEndpoints_js_1.default(this); + this.audiobooks = new AudiobooksEndpoints_js_1.default(this); + this.browse = new BrowseEndpoints_js_1.default(this); + this.chapters = new ChaptersEndpoints_js_1.default(this); + this.episodes = new EpisodesEndpoints_js_1.default(this); + this.recommendations = new RecommendationsEndpoints_js_1.default(this); + this.markets = new MarketsEndpoints_js_1.default(this); + this.player = new PlayerEndpoints_js_1.default(this); + this.playlists = new PlaylistsEndpoints_js_1.default(this); + this.shows = new ShowsEndpoints_js_1.default(this); + this.tracks = new TracksEndpoints_js_1.default(this); + this.users = new UsersEndpoints_js_1.default(this); + this.currentUser = new CurrentUserEndpoints_js_1.default(this); + const search = new SearchEndpoints_js_1.default(this); + this.search = search.execute.bind(search); + this.authenticationStrategy = authentication; + this.authenticationStrategy.setConfiguration(this.sdkConfig); + } + async makeRequest(method, url, body = undefined, contentType = undefined) { + try { + const accessToken = await this.authenticationStrategy.getOrCreateAccessToken(); + if ((0, IAuthStrategy_js_1.isEmptyAccessToken)(accessToken)) { + console.warn("No access token found, authenticating now."); + return null; + } + const token = accessToken?.access_token; + const fullUrl = SpotifyApi.rootUrl + url; + const opts = { + method: method, + headers: { + Authorization: `Bearer ${token}`, + "Content-Type": contentType ?? "application/json" + }, + body: body ? typeof body === "string" ? body : JSON.stringify(body) : undefined + }; + this.sdkConfig.beforeRequest(fullUrl, opts); + const result = await this.sdkConfig.fetch(fullUrl, opts); + this.sdkConfig.afterRequest(fullUrl, opts, result); + if (result.status === 204) { + return null; + } + await this.sdkConfig.responseValidator.validateResponse(result); + return this.sdkConfig.deserializer.deserialize(result); + } + catch (error) { + const handled = await this.sdkConfig.errorHandler.handleErrors(error); + if (!handled) { + throw error; + } + return null; + } + } + initializeSdk(config) { + const isBrowser = typeof window !== 'undefined'; + const defaultConfig = { + fetch: (req, init) => fetch(req, init), + beforeRequest: (_, __) => { }, + afterRequest: (_, __, ___) => { }, + deserializer: new DefaultResponseDeserializer_js_1.default(), + responseValidator: new DefaultResponseValidator_js_1.default(), + errorHandler: new NoOpErrorHandler_js_1.default(), + redirectionStrategy: new DocumentLocationRedirectionStrategy_js_1.default(), + cachingStrategy: isBrowser + ? new LocalStorageCachingStrategy_js_1.default() + : new InMemoryCachingStrategy_js_1.default() + }; + return { ...defaultConfig, ...config }; + } + switchAuthenticationStrategy(authentication) { + this.authenticationStrategy = authentication; + this.authenticationStrategy.setConfiguration(this.sdkConfig); + this.authenticationStrategy.getOrCreateAccessToken(); // trigger any redirects + } + /** + * Use this when you're running in a browser and you want to control when first authentication+redirect happens. + */ + async authenticate() { + const response = await this.authenticationStrategy.getOrCreateAccessToken(); // trigger any redirects + return { + authenticated: response.expires > Date.now() && !(0, IAuthStrategy_js_1.isEmptyAccessToken)(response), + accessToken: response + }; + } + /** + * @returns the current access token. null implies the SpotifyApi is not yet authenticated. + */ + async getAccessToken() { + return this.authenticationStrategy.getAccessToken(); + } + /** + * Removes the access token if it exists. + */ + logOut() { + this.authenticationStrategy.removeAccessToken(); + } + static withUserAuthorization(clientId, redirectUri, scopes = [], config) { + const strategy = new AuthorizationCodeWithPKCEStrategy_js_1.default(clientId, redirectUri, scopes); + return new SpotifyApi(strategy, config); + } + static withClientCredentials(clientId, clientSecret, scopes = [], config) { + const strategy = new ClientCredentialsStrategy_js_1.default(clientId, clientSecret, scopes); + return new SpotifyApi(strategy, config); + } + static withImplicitGrant(clientId, redirectUri, scopes = [], config) { + const strategy = new ImplicitGrantStrategy_js_1.default(clientId, redirectUri, scopes); + return new SpotifyApi(strategy, config); + } + /** + * Use this when you're running in a Node environment, and accepting the access token from a client-side `performUserAuthorization` call. + * You can also use this method if you already have an access token and don't want to use the built-in authentication strategies. + */ + static withAccessToken(clientId, token, config) { + const strategy = new ProvidedAccessTokenStrategy_js_1.default(clientId, token); + return new SpotifyApi(strategy, config); + } + static async performUserAuthorization(clientId, redirectUri, scopes, onAuthorizationOrUrl, config) { + const strategy = new AuthorizationCodeWithPKCEStrategy_js_1.default(clientId, redirectUri, scopes); + const client = new SpotifyApi(strategy, config); + const accessToken = await client.authenticationStrategy.getOrCreateAccessToken(); + if (!(0, IAuthStrategy_js_1.isEmptyAccessToken)(accessToken)) { + if (typeof onAuthorizationOrUrl === "string") { + console.log("Posting access token to postback URL."); + await fetch(onAuthorizationOrUrl, { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify(accessToken) + }); + } + else { + await onAuthorizationOrUrl(accessToken); + } + } + return { + authenticated: accessToken.expires > Date.now() && !(0, IAuthStrategy_js_1.isEmptyAccessToken)(accessToken), + accessToken + }; + } +} +exports.SpotifyApi = SpotifyApi; +//# sourceMappingURL=SpotifyApi.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/SpotifyApi.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/SpotifyApi.js.map new file mode 100644 index 0000000..2d356d4 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/SpotifyApi.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SpotifyApi.js","sourceRoot":"","sources":["../../src/SpotifyApi.ts"],"names":[],"mappings":";;;;;;AAAA,wFAA6D;AAC7D,0FAA+D;AAC/D,gGAAqE;AACrE,wFAA6D;AAC7D,4FAAiE;AACjE,4FAAiE;AACjE,0GAA+E;AAC/E,0FAA+D;AAC/D,wFAA6D;AAC7D,8FAAmE;AACnE,wFAA0F;AAC1F,sFAA2D;AAC3D,wFAA6D;AAC7D,8DAA4E;AAC5E,sFAA2D;AAC3D,kGAAuE;AACvE,uGAA4E;AAC5E,+FAAoE;AACpE,uHAA4F;AAC5F,oHAAyF;AACzF,mHAAwF;AACxF,8FAAmE;AACnE,kIAAuG;AACvG,8GAAmF;AACnF,sGAA2E;AAC3E,2GAAgF;AAGhF,MAAa,UAAU;IACX,SAAS,CAAmB;IAC5B,MAAM,CAAC,OAAO,GAAW,6BAA6B,CAAC;IAEvD,sBAAsB,CAAgB;IAEvC,MAAM,CAAkB;IACxB,OAAO,CAAmB;IAC1B,UAAU,CAAsB;IAChC,MAAM,CAAkB;IACxB,QAAQ,CAAoB;IAC5B,QAAQ,CAAoB;IAC5B,eAAe,CAA2B;IAC1C,OAAO,CAAmB;IAC1B,MAAM,CAAkB;IACxB,SAAS,CAAqB;IAC9B,KAAK,CAAiB;IACtB,MAAM,CAAkB;IACxB,KAAK,CAAiB;IACtB,MAAM,CAA0B;IAEhC,WAAW,CAAuB;IAEzC,YAAmB,cAA6B,EAAE,MAAmB;QACjE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,GAAG,IAAI,4BAAe,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,6BAAgB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,gCAAmB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,4BAAe,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,8BAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,8BAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,eAAe,GAAG,IAAI,qCAAwB,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,GAAG,IAAI,6BAAgB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,4BAAe,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,+BAAkB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,2BAAc,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,4BAAe,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,2BAAc,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,iCAAoB,CAAC,IAAI,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,IAAI,4BAAe,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE1C,IAAI,CAAC,sBAAsB,GAAG,cAAc,CAAC;QAC7C,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IAEM,KAAK,CAAC,WAAW,CAAc,MAAyC,EAAE,GAAW,EAAE,OAAY,SAAS,EAAE,cAAkC,SAAS;QAC5J,IAAI;YACA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,CAAC;YAC/E,IAAI,IAAA,qCAAkB,EAAC,WAAW,CAAC,EAAE;gBACjC,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;gBAC3D,OAAO,IAAmB,CAAC;aAC9B;YAED,MAAM,KAAK,GAAG,WAAW,EAAE,YAAY,CAAC;YAExC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC;YACzC,MAAM,IAAI,GAAgB;gBACtB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACL,aAAa,EAAE,UAAU,KAAK,EAAE;oBAChC,cAAc,EAAE,WAAW,IAAI,kBAAkB;iBACpD;gBACD,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aAClF,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAEnD,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE;gBACvB,OAAO,IAAmB,CAAC;aAC9B;YAED,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAc,MAAM,CAAC,CAAC;SACvE;QAAC,OAAO,KAAK,EAAE;YACZ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACtE,IAAI,CAAC,OAAO,EAAE;gBACV,MAAM,KAAK,CAAC;aACf;YACD,OAAO,IAAmB,CAAC;SAC9B;IACL,CAAC;IAEO,aAAa,CAAC,MAA8B;QAChD,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;QAEhD,MAAM,aAAa,GAAqB;YACpC,KAAK,EAAE,CAAC,GAAsB,EAAE,IAA6B,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;YAClF,aAAa,EAAE,CAAC,CAAS,EAAE,EAAe,EAAE,EAAE,GAAG,CAAC;YAClD,YAAY,EAAE,CAAC,CAAS,EAAE,EAAe,EAAE,GAAa,EAAE,EAAE,GAAG,CAAC;YAChE,YAAY,EAAE,IAAI,wCAA2B,EAAE;YAC/C,iBAAiB,EAAE,IAAI,qCAAwB,EAAE;YACjD,YAAY,EAAE,IAAI,6BAAgB,EAAE;YACpC,mBAAmB,EAAE,IAAI,gDAAmC,EAAE;YAC9D,eAAe,EAAE,SAAS;gBACtB,CAAC,CAAC,IAAI,wCAA2B,EAAE;gBACnC,CAAC,CAAC,IAAI,oCAAuB,EAAE;SACtC,CAAC;QAEF,OAAO,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;IAC3C,CAAC;IAEM,4BAA4B,CAAC,cAA6B;QAC7D,IAAI,CAAC,sBAAsB,GAAG,cAAc,CAAC;QAC7C,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,CAAC,CAAC,yBAAyB;IACnF,CAAC;IAED;;MAEE;IACK,KAAK,CAAC,YAAY;QACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,CAAC,CAAC,wBAAwB;QAErG,OAAO;YACH,aAAa,EAAE,QAAQ,CAAC,OAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAA,qCAAkB,EAAC,QAAQ,CAAC;YAC9E,WAAW,EAAE,QAAQ;SACxB,CAAC;IACN,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,cAAc;QACvB,OAAO,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE,CAAC;IACxD,CAAC;IAED;;OAEG;IACI,MAAM;QACT,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,CAAC;IACpD,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,QAAgB,EAAE,WAAmB,EAAE,SAAmB,EAAE,EAAE,MAAmB;QACjH,MAAM,QAAQ,GAAG,IAAI,8CAAiC,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACtF,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,QAAgB,EAAE,YAAoB,EAAE,SAAmB,EAAE,EAAE,MAAmB;QAClH,MAAM,QAAQ,GAAG,IAAI,sCAAyB,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAC/E,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,QAAgB,EAAE,WAAmB,EAAE,SAAmB,EAAE,EAAE,MAAmB;QAC7G,MAAM,QAAQ,GAAG,IAAI,kCAAqB,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC1E,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,eAAe,CAAC,QAAgB,EAAE,KAAkB,EAAE,MAAmB;QACnF,MAAM,QAAQ,GAAG,IAAI,wCAA2B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAClE,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAuBM,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,QAAgB,EAAE,WAAmB,EAAE,MAAgB,EAAE,oBAAsE,EAAE,MAAmB;QAC7L,MAAM,QAAQ,GAAG,IAAI,8CAAiC,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,CAAC;QAEjF,IAAI,CAAC,IAAA,qCAAkB,EAAC,WAAW,CAAC,EAAE;YAClC,IAAI,OAAO,oBAAoB,KAAK,QAAQ,EAAE;gBAC1C,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;gBACrD,MAAM,KAAK,CAAC,oBAAoB,EAAE;oBAC9B,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACL,cAAc,EAAE,kBAAkB;qBACrC;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;iBACpC,CAAC,CAAC;aACN;iBAAM;gBACH,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;aAC3C;SACJ;QAED,OAAO;YACH,aAAa,EAAE,WAAW,CAAC,OAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAA,qCAAkB,EAAC,WAAW,CAAC;YACpF,WAAW;SACd,CAAC;IACN,CAAC;;AA/ML,gCAgNC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AccessTokenHelpers.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AccessTokenHelpers.d.ts new file mode 100644 index 0000000..8561230 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AccessTokenHelpers.d.ts @@ -0,0 +1,9 @@ +import type { AccessToken, ICachable } from "../types.js"; +export default class AccessTokenHelpers { + static refreshCachedAccessToken(clientId: string, item: AccessToken): Promise; + static toCachable(item: AccessToken): ICachable & AccessToken; + static calculateExpiry(item: AccessToken): number; + private static refreshToken; + static generateCodeVerifier(length: number): string; + static generateCodeChallenge(codeVerifier: string): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AccessTokenHelpers.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AccessTokenHelpers.js new file mode 100644 index 0000000..bd77956 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AccessTokenHelpers.js @@ -0,0 +1,58 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const Crypto_js_1 = require("./Crypto.js"); +class AccessTokenHelpers { + static async refreshCachedAccessToken(clientId, item) { + const updated = await AccessTokenHelpers.refreshToken(clientId, item.refresh_token); + return AccessTokenHelpers.toCachable(updated); + } + static toCachable(item) { + if (item.expires && item.expires === -1) { + return item; + } + return { ...item, expires: this.calculateExpiry(item) }; + } + static calculateExpiry(item) { + return Date.now() + (item.expires_in * 1000); + } + static async refreshToken(clientId, refreshToken) { + const params = new URLSearchParams(); + params.append("client_id", clientId); + params.append("grant_type", "refresh_token"); + params.append("refresh_token", refreshToken); + const result = await fetch("https://accounts.spotify.com/api/token", { + method: "POST", + headers: { "Content-Type": "application/x-www-form-urlencoded" }, + body: params + }); + const text = await result.text(); + if (!result.ok) { + throw new Error(`Failed to refresh token: ${result.statusText}, ${text}`); + } + const json = JSON.parse(text); + return json; + } + static generateCodeVerifier(length) { + let text = ''; + let possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + for (let i = 0; i < length; i++) { + text += possible.charAt(Math.floor(Math.random() * possible.length)); + } + return text; + } + static async generateCodeChallenge(codeVerifier) { + const data = new TextEncoder().encode(codeVerifier); + const digest = await Crypto_js_1.Crypto.current.subtle.digest('SHA-256', data); + const digestBytes = [...new Uint8Array(digest)]; + const hasBuffer = typeof Buffer !== 'undefined'; + const digestAsBase64 = hasBuffer + ? Buffer.from(digest).toString('base64') + : btoa(String.fromCharCode.apply(null, digestBytes)); + return digestAsBase64 + .replace(/\+/g, '-') + .replace(/\//g, '_') + .replace(/=+$/, ''); + } +} +exports.default = AccessTokenHelpers; +//# sourceMappingURL=AccessTokenHelpers.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AccessTokenHelpers.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AccessTokenHelpers.js.map new file mode 100644 index 0000000..12a2dfc --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AccessTokenHelpers.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AccessTokenHelpers.js","sourceRoot":"","sources":["../../../src/auth/AccessTokenHelpers.ts"],"names":[],"mappings":";;AACA,2CAAqC;AAErC,MAAqB,kBAAkB;IAC5B,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,QAAgB,EAAE,IAAiB;QAC5E,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACpF,OAAO,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,IAAiB;QACtC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,EAAE;YACrC,OAAO,IAAI,CAAC;SACf;QAED,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5D,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,IAAiB;QAC3C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACjD,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,YAAoB;QACpE,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAE7C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,wCAAwC,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;YAChE,IAAI,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAEjC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC,CAAC;SAC7E;QAED,MAAM,IAAI,GAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,MAAc;QAC7C,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,QAAQ,GAAG,gEAAgE,CAAC;QAEhF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7B,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;SACxE;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,YAAoB;QAC1D,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,kBAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAEnE,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;QAEhD,MAAM,cAAc,GAAG,SAAS;YAC5B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACxC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;QAEzD,OAAO,cAAc;aAChB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;CACJ;AAlED,qCAkEC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AuthorizationCodeWithPKCEStrategy.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AuthorizationCodeWithPKCEStrategy.d.ts new file mode 100644 index 0000000..33a1e4f --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AuthorizationCodeWithPKCEStrategy.d.ts @@ -0,0 +1,21 @@ +import type { SdkConfiguration, AccessToken, ICachingStrategy } from "../types.js"; +import IAuthStrategy from "./IAuthStrategy.js"; +export default class AuthorizationCodeWithPKCEStrategy implements IAuthStrategy { + protected clientId: string; + protected redirectUri: string; + protected scopes: string[]; + private static readonly cacheKey; + private configuration; + protected get cache(): ICachingStrategy; + constructor(clientId: string, redirectUri: string, scopes: string[]); + setConfiguration(configuration: SdkConfiguration): void; + getOrCreateAccessToken(): Promise; + getAccessToken(): Promise; + removeAccessToken(): void; + private redirectOrVerifyToken; + private redirectToSpotify; + private verifyAndExchangeCode; + private removeCodeFromUrl; + protected generateRedirectUrlForUser(scopes: string[], challenge: string): Promise; + protected exchangeCodeForToken(code: string, verifier: string): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AuthorizationCodeWithPKCEStrategy.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AuthorizationCodeWithPKCEStrategy.js new file mode 100644 index 0000000..2f736ed --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AuthorizationCodeWithPKCEStrategy.js @@ -0,0 +1,105 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const AccessTokenHelpers_js_1 = __importDefault(require("./AccessTokenHelpers.js")); +const IAuthStrategy_js_1 = require("./IAuthStrategy.js"); +class AuthorizationCodeWithPKCEStrategy { + clientId; + redirectUri; + scopes; + static cacheKey = "spotify-sdk:AuthorizationCodeWithPKCEStrategy:token"; + configuration = null; + get cache() { return this.configuration.cachingStrategy; } + constructor(clientId, redirectUri, scopes) { + this.clientId = clientId; + this.redirectUri = redirectUri; + this.scopes = scopes; + } + setConfiguration(configuration) { + this.configuration = configuration; + } + async getOrCreateAccessToken() { + const token = await this.cache.getOrCreate(AuthorizationCodeWithPKCEStrategy.cacheKey, async () => { + const token = await this.redirectOrVerifyToken(); + return AccessTokenHelpers_js_1.default.toCachable(token); + }, async (expiring) => { + return AccessTokenHelpers_js_1.default.refreshCachedAccessToken(this.clientId, expiring); + }); + return token; + } + async getAccessToken() { + const token = await this.cache.get(AuthorizationCodeWithPKCEStrategy.cacheKey); + return token; + } + removeAccessToken() { + this.cache.remove(AuthorizationCodeWithPKCEStrategy.cacheKey); + } + async redirectOrVerifyToken() { + const hashParams = new URLSearchParams(window.location.search); + const code = hashParams.get("code"); + if (code) { + const token = await this.verifyAndExchangeCode(code); + this.removeCodeFromUrl(); + return token; + } + this.redirectToSpotify(); + return IAuthStrategy_js_1.emptyAccessToken; // Redirected away at this point, just make TypeScript happy :) + } + async redirectToSpotify() { + const verifier = AccessTokenHelpers_js_1.default.generateCodeVerifier(128); + const challenge = await AccessTokenHelpers_js_1.default.generateCodeChallenge(verifier); + const singleUseVerifier = { verifier, expiresOnAccess: true }; + this.cache.setCacheItem("spotify-sdk:verifier", singleUseVerifier); + const redirectTarget = await this.generateRedirectUrlForUser(this.scopes, challenge); + await this.configuration.redirectionStrategy.redirect(redirectTarget); + } + async verifyAndExchangeCode(code) { + const cachedItem = await this.cache.get("spotify-sdk:verifier"); + const verifier = cachedItem?.verifier; + if (!verifier) { + throw new Error("No verifier found in cache - can't validate query string callback parameters."); + } + await this.configuration.redirectionStrategy.onReturnFromRedirect(); + return await this.exchangeCodeForToken(code, verifier); + } + removeCodeFromUrl() { + const url = new URL(window.location.href); + url.searchParams.delete("code"); + const newUrl = url.search ? url.href : url.href.replace('?', ''); + window.history.replaceState({}, document.title, newUrl); + } + async generateRedirectUrlForUser(scopes, challenge) { + const scope = scopes.join(' '); + const params = new URLSearchParams(); + params.append("client_id", this.clientId); + params.append("response_type", "code"); + params.append("redirect_uri", this.redirectUri); + params.append("scope", scope); + params.append("code_challenge_method", "S256"); + params.append("code_challenge", challenge); + return `https://accounts.spotify.com/authorize?${params.toString()}`; + } + async exchangeCodeForToken(code, verifier) { + const params = new URLSearchParams(); + params.append("client_id", this.clientId); + params.append("grant_type", "authorization_code"); + params.append("code", code); + params.append("redirect_uri", this.redirectUri); + params.append("code_verifier", verifier); + const result = await fetch("https://accounts.spotify.com/api/token", { + method: "POST", + headers: { "Content-Type": "application/x-www-form-urlencoded" }, + body: params + }); + const text = await result.text(); + if (!result.ok) { + throw new Error(`Failed to exchange code for token: ${result.statusText}, ${text}`); + } + const json = JSON.parse(text); + return json; + } +} +exports.default = AuthorizationCodeWithPKCEStrategy; +//# sourceMappingURL=AuthorizationCodeWithPKCEStrategy.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AuthorizationCodeWithPKCEStrategy.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AuthorizationCodeWithPKCEStrategy.js.map new file mode 100644 index 0000000..8a04b73 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/AuthorizationCodeWithPKCEStrategy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AuthorizationCodeWithPKCEStrategy.js","sourceRoot":"","sources":["../../../src/auth/AuthorizationCodeWithPKCEStrategy.ts"],"names":[],"mappings":";;;;;AACA,oFAAyD;AACzD,yDAAqE;AAOrE,MAAqB,iCAAiC;IAOpC;IACA;IACA;IAPN,MAAM,CAAU,QAAQ,GAAG,qDAAqD,CAAC;IACjF,aAAa,GAA4B,IAAI,CAAC;IACtD,IAAc,KAAK,KAAuB,OAAO,IAAI,CAAC,aAAc,CAAC,eAAe,CAAC,CAAC,CAAC;IAEvF,YACc,QAAgB,EAChB,WAAmB,EACnB,MAAgB;QAFhB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,gBAAW,GAAX,WAAW,CAAQ;QACnB,WAAM,GAAN,MAAM,CAAU;IAE9B,CAAC;IAEM,gBAAgB,CAAC,aAA+B;QACnD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAEM,KAAK,CAAC,sBAAsB;QAC/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CACtC,iCAAiC,CAAC,QAAQ,EAC1C,KAAK,IAAI,EAAE;YACP,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACjD,OAAO,+BAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAClB,OAAO,+BAAkB,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChF,CAAC,CACJ,CAAC;QAEF,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,cAAc;QACvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,iCAAiC,CAAC,QAAQ,CAAC,CAAC;QAC5F,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,iBAAiB;QACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iCAAiC,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAEO,KAAK,CAAC,qBAAqB;QAC/B,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpC,IAAI,IAAI,EAAE;YACN,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,mCAAgB,CAAC,CAAC,wEAAwE;IACrG,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC3B,MAAM,QAAQ,GAAG,+BAAkB,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,MAAM,+BAAkB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAE3E,MAAM,iBAAiB,GAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;QAC9E,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,CAAC;QAEnE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACrF,MAAM,IAAI,CAAC,aAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC3E,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,IAAY;QAC5C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,sBAAsB,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,UAAU,EAAE,QAAQ,CAAC;QAEtC,IAAI,CAAC,QAAQ,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;SACpG;QAED,MAAM,IAAI,CAAC,aAAc,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,CAAC;QACrE,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAS,CAAC,CAAC;IAC5D,CAAC;IAEO,iBAAiB;QACrB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEhC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACjE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAES,KAAK,CAAC,0BAA0B,CAAC,MAAgB,EAAE,SAAiB;QAC1E,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE/B,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QAE3C,OAAO,0CAA0C,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;IACzE,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,IAAY,EAAE,QAAgB;QAC/D,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,QAAS,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,wCAAwC,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;YAChE,IAAI,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAEjC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC,CAAC;SACvF;QAED,MAAM,IAAI,GAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IAChB,CAAC;;AAzHL,oDA2HC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ClientCredentialsStrategy.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ClientCredentialsStrategy.d.ts new file mode 100644 index 0000000..be6b771 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ClientCredentialsStrategy.d.ts @@ -0,0 +1,16 @@ +import type { SdkConfiguration, AccessToken } from "../types.js"; +import IAuthStrategy from "./IAuthStrategy.js"; +export default class ClientCredentialsStrategy implements IAuthStrategy { + private clientId; + private clientSecret; + private scopes; + private static readonly cacheKey; + private configuration; + private get cache(); + constructor(clientId: string, clientSecret: string, scopes?: string[]); + setConfiguration(configuration: SdkConfiguration): void; + getOrCreateAccessToken(): Promise; + getAccessToken(): Promise; + removeAccessToken(): void; + private getTokenFromApi; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ClientCredentialsStrategy.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ClientCredentialsStrategy.js new file mode 100644 index 0000000..9d02ee5 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ClientCredentialsStrategy.js @@ -0,0 +1,66 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const AccessTokenHelpers_js_1 = __importDefault(require("./AccessTokenHelpers.js")); +class ClientCredentialsStrategy { + clientId; + clientSecret; + scopes; + static cacheKey = "spotify-sdk:ClientCredentialsStrategy:token"; + configuration = null; + get cache() { return this.configuration.cachingStrategy; } + constructor(clientId, clientSecret, scopes = []) { + this.clientId = clientId; + this.clientSecret = clientSecret; + this.scopes = scopes; + } + setConfiguration(configuration) { + this.configuration = configuration; + } + async getOrCreateAccessToken() { + const token = await this.cache.getOrCreate(ClientCredentialsStrategy.cacheKey, async () => { + const token = await this.getTokenFromApi(); + return AccessTokenHelpers_js_1.default.toCachable(token); + }, async (_) => { + const refreshed = await this.getTokenFromApi(); + return AccessTokenHelpers_js_1.default.toCachable(refreshed); + }); + return token; + } + async getAccessToken() { + const token = await this.cache.get(ClientCredentialsStrategy.cacheKey); + return token; + } + removeAccessToken() { + this.cache.remove(ClientCredentialsStrategy.cacheKey); + } + async getTokenFromApi() { + const options = { + grant_type: 'client_credentials', + scope: this.scopes.join(' ') + }; + const bodyAsString = Object.keys(options).map(key => key + '=' + options[key]).join('&'); + const hasBuffer = typeof Buffer !== 'undefined'; + const credentials = `${this.clientId}:${this.clientSecret}`; + const basicAuth = hasBuffer + ? Buffer.from(credentials).toString('base64') + : btoa(credentials); + const result = await fetch("https://accounts.spotify.com/api/token", { + method: 'POST', + headers: { + "Content-Type": "application/x-www-form-urlencoded", + "Authorization": `Basic ${basicAuth}` + }, + body: bodyAsString + }); + if (result.status !== 200) { + throw new Error("Failed to get access token."); + } + const json = await result.json(); + return json; + } +} +exports.default = ClientCredentialsStrategy; +//# sourceMappingURL=ClientCredentialsStrategy.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ClientCredentialsStrategy.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ClientCredentialsStrategy.js.map new file mode 100644 index 0000000..8c407b2 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ClientCredentialsStrategy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ClientCredentialsStrategy.js","sourceRoot":"","sources":["../../../src/auth/ClientCredentialsStrategy.ts"],"names":[],"mappings":";;;;;AACA,oFAAyD;AAGzD,MAAqB,yBAAyB;IAO9B;IACA;IACA;IAPJ,MAAM,CAAU,QAAQ,GAAG,6CAA6C,CAAC;IACzE,aAAa,GAA4B,IAAI,CAAC;IACtD,IAAY,KAAK,KAAuB,OAAO,IAAI,CAAC,aAAc,CAAC,eAAe,CAAC,CAAC,CAAC;IAErF,YACY,QAAgB,EAChB,YAAoB,EACpB,SAAmB,EAAE;QAFrB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,WAAM,GAAN,MAAM,CAAe;IAEjC,CAAC;IAEM,gBAAgB,CAAC,aAA+B;QACnD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAEM,KAAK,CAAC,sBAAsB;QAC/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CACtC,yBAAyB,CAAC,QAAQ,EAClC,KAAK,IAAI,EAAE;YACP,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3C,OAAO,+BAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,EACD,KAAK,EAAE,CAAC,EAAE,EAAE;YACR,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,OAAO,+BAAkB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC,CACJ,CAAC;QAEF,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,cAAc;QACvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QACpF,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,iBAAiB;QACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAEO,KAAK,CAAC,eAAe;QACzB,MAAM,OAAO,GAAG;YACZ,UAAU,EAAE,oBAAoB;YAChC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;SACxB,CAAC;QAET,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzF,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;QAChD,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QAE5D,MAAM,SAAS,GAAG,SAAS;YACvB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC7C,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAExB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,wCAAwC,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,mCAAmC;gBACnD,eAAe,EAAE,SAAS,SAAS,EAAE;aACxC;YACD,IAAI,EAAE,YAAY;SACrB,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAClD;QAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;;AAvEL,4CAwEC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/Crypto.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/Crypto.d.ts new file mode 100644 index 0000000..92a283f --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/Crypto.d.ts @@ -0,0 +1,5 @@ +export declare class Crypto { + static get current(): any; + private static get hasSubtleCrypto(); + private static tryLoadNodeWebCrypto; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/Crypto.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/Crypto.js new file mode 100644 index 0000000..82ceeeb --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/Crypto.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Crypto = void 0; +class Crypto { + static get current() { + return this.hasSubtleCrypto ? window.crypto : this.tryLoadNodeWebCrypto(); + } + static get hasSubtleCrypto() { + return typeof window !== 'undefined' && typeof window.crypto !== 'undefined' && typeof window.crypto.subtle !== 'undefined'; + } + static tryLoadNodeWebCrypto() { + try { + // Deliberately avoid bundling for browsers depending + // on node by doing this require during execution. + const { webcrypto } = require('crypto'); + return webcrypto; + } + catch (e) { + throw e; + } + } +} +exports.Crypto = Crypto; +//# sourceMappingURL=Crypto.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/Crypto.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/Crypto.js.map new file mode 100644 index 0000000..af763e4 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/Crypto.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Crypto.js","sourceRoot":"","sources":["../../../src/auth/Crypto.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;IACR,MAAM,KAAK,OAAO;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9E,CAAC;IAEO,MAAM,KAAK,eAAe;QAC9B,OAAO,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC;IAChI,CAAC;IAEO,MAAM,CAAC,oBAAoB;QAC/B,IAAI;YACA,qDAAqD;YACrD,kDAAkD;YAClD,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxC,OAAO,SAAS,CAAC;SACpB;QAAC,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,CAAC;SACX;IACL,CAAC;CACJ;AAnBD,wBAmBC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/IAuthStrategy.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/IAuthStrategy.d.ts new file mode 100644 index 0000000..6c3bfce --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/IAuthStrategy.d.ts @@ -0,0 +1,9 @@ +import type { AccessToken, SdkConfiguration } from "../types.js"; +export declare const emptyAccessToken: AccessToken; +export declare function isEmptyAccessToken(value: any): boolean; +export default interface IAuthStrategy { + setConfiguration(configuration: SdkConfiguration): void; + getOrCreateAccessToken(): Promise; + getAccessToken(): Promise; + removeAccessToken(): void; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/IAuthStrategy.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/IAuthStrategy.js new file mode 100644 index 0000000..8c47b68 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/IAuthStrategy.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isEmptyAccessToken = exports.emptyAccessToken = void 0; +exports.emptyAccessToken = { access_token: "emptyAccessToken", token_type: "", expires_in: 0, refresh_token: "", expires: -1 }; +function isEmptyAccessToken(value) { + return value === exports.emptyAccessToken; +} +exports.isEmptyAccessToken = isEmptyAccessToken; +//# sourceMappingURL=IAuthStrategy.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/IAuthStrategy.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/IAuthStrategy.js.map new file mode 100644 index 0000000..e688c83 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/IAuthStrategy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"IAuthStrategy.js","sourceRoot":"","sources":["../../../src/auth/IAuthStrategy.ts"],"names":[],"mappings":";;;AAEa,QAAA,gBAAgB,GAAgB,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;AACjJ,SAAgB,kBAAkB,CAAC,KAAU;IACzC,OAAO,KAAK,KAAK,wBAAgB,CAAC;AACtC,CAAC;AAFD,gDAEC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ImplicitGrantStrategy.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ImplicitGrantStrategy.d.ts new file mode 100644 index 0000000..5a50ef0 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ImplicitGrantStrategy.d.ts @@ -0,0 +1,16 @@ +import type { SdkConfiguration, AccessToken } from "../types.js"; +import IAuthStrategy from "./IAuthStrategy.js"; +export default class ImplicitGrantStrategy implements IAuthStrategy { + private clientId; + private redirectUri; + private scopes; + private static readonly cacheKey; + private configuration; + private get cache(); + constructor(clientId: string, redirectUri: string, scopes: string[]); + setConfiguration(configuration: SdkConfiguration): void; + getOrCreateAccessToken(): Promise; + getAccessToken(): Promise; + removeAccessToken(): void; + private redirectOrVerifyToken; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ImplicitGrantStrategy.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ImplicitGrantStrategy.js new file mode 100644 index 0000000..33dc947 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ImplicitGrantStrategy.js @@ -0,0 +1,64 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const AccessTokenHelpers_js_1 = __importDefault(require("./AccessTokenHelpers.js")); +const IAuthStrategy_js_1 = require("./IAuthStrategy.js"); +class ImplicitGrantStrategy { + clientId; + redirectUri; + scopes; + static cacheKey = "spotify-sdk:ImplicitGrantStrategy:token"; + configuration = null; + get cache() { return this.configuration.cachingStrategy; } + constructor(clientId, redirectUri, scopes) { + this.clientId = clientId; + this.redirectUri = redirectUri; + this.scopes = scopes; + } + setConfiguration(configuration) { + this.configuration = configuration; + } + async getOrCreateAccessToken() { + const token = await this.cache.getOrCreate(ImplicitGrantStrategy.cacheKey, async () => { + const token = await this.redirectOrVerifyToken(); + return AccessTokenHelpers_js_1.default.toCachable(token); + }, async (expiring) => { + return AccessTokenHelpers_js_1.default.refreshCachedAccessToken(this.clientId, expiring); + }); + return token; + } + async getAccessToken() { + const token = await this.cache.get(ImplicitGrantStrategy.cacheKey); + return token; + } + removeAccessToken() { + this.cache.remove(ImplicitGrantStrategy.cacheKey); + } + async redirectOrVerifyToken() { + const hashParams = new URLSearchParams(window.location.hash.substring(1)); + const accessToken = hashParams.get("access_token"); + if (accessToken) { + return Promise.resolve({ + access_token: accessToken, + token_type: hashParams.get("token_type") ?? "", + expires_in: parseInt(hashParams.get("expires_in") ?? "0"), + refresh_token: hashParams.get("refresh_token") ?? "", + expires: Number(hashParams.get("expires")) || 0 + }); + } + const scopes = this.scopes ?? []; + var scope = scopes.join(' '); + const params = new URLSearchParams(); + params.append("client_id", this.clientId); + params.append("response_type", "token"); + params.append("redirect_uri", this.redirectUri); + params.append("scope", scope); + const authUrl = 'https://accounts.spotify.com/authorize?' + params.toString(); + this.configuration.redirectionStrategy.redirect(authUrl); + return IAuthStrategy_js_1.emptyAccessToken; + } +} +exports.default = ImplicitGrantStrategy; +//# sourceMappingURL=ImplicitGrantStrategy.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ImplicitGrantStrategy.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ImplicitGrantStrategy.js.map new file mode 100644 index 0000000..b0244dc --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ImplicitGrantStrategy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ImplicitGrantStrategy.js","sourceRoot":"","sources":["../../../src/auth/ImplicitGrantStrategy.ts"],"names":[],"mappings":";;;;;AACA,oFAAyD;AACzD,yDAAqE;AAErE,MAAqB,qBAAqB;IAO1B;IACA;IACA;IAPJ,MAAM,CAAU,QAAQ,GAAG,yCAAyC,CAAC;IACrE,aAAa,GAA4B,IAAI,CAAC;IACtD,IAAY,KAAK,KAAuB,OAAO,IAAI,CAAC,aAAc,CAAC,eAAe,CAAC,CAAC,CAAC;IAErF,YACY,QAAgB,EAChB,WAAmB,EACnB,MAAgB;QAFhB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,gBAAW,GAAX,WAAW,CAAQ;QACnB,WAAM,GAAN,MAAM,CAAU;IAE5B,CAAC;IAEM,gBAAgB,CAAC,aAA+B;QACnD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAEM,KAAK,CAAC,sBAAsB;QAC/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CACtC,qBAAqB,CAAC,QAAQ,EAC9B,KAAK,IAAI,EAAE;YACP,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACjD,OAAO,+BAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAClB,OAAO,+BAAkB,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChF,CAAC,CACJ,CAAC;QAEF,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,cAAc;QACvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAChF,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,iBAAiB;QACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,qBAAqB;QAC/B,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAEnD,IAAI,WAAW,EAAE;YACb,OAAO,OAAO,CAAC,OAAO,CAAC;gBACnB,YAAY,EAAE,WAAW;gBACzB,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE;gBAC9C,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC;gBACzD,aAAa,EAAE,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE;gBACpD,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;aAClD,CAAC,CAAC;SACN;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QACjC,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE7B,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE9B,MAAM,OAAO,GAAG,yCAAyC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAE9E,IAAI,CAAC,aAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,mCAAgB,CAAC;IAC5B,CAAC;;AAnEL,wCAoEC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ProvidedAccessTokenStrategy.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ProvidedAccessTokenStrategy.d.ts new file mode 100644 index 0000000..f982f97 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ProvidedAccessTokenStrategy.d.ts @@ -0,0 +1,20 @@ +import { AccessToken, SdkConfiguration } from "../types.js"; +import IAuthStrategy from "./IAuthStrategy.js"; +/** + * This strategy is used when you already have an access token and want to use it. + * The authentication strategy will automatically renew the token when it expires. + * Designed to allow a browser-based-app to post the access token to the server and use it from there. + * @constructor + * @param {string} clientId - Spotify application client id. + * @param {string} accessToken - The access token returned from a client side Authorization Code with PKCE flow. + */ +export default class ProvidedAccessTokenStrategy implements IAuthStrategy { + protected clientId: string; + protected accessToken: AccessToken; + private refreshTokenAction; + constructor(clientId: string, accessToken: AccessToken, refreshTokenAction?: (clientId: string, token: AccessToken) => Promise); + setConfiguration(_: SdkConfiguration): void; + getOrCreateAccessToken(): Promise; + getAccessToken(): Promise; + removeAccessToken(): void; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ProvidedAccessTokenStrategy.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ProvidedAccessTokenStrategy.js new file mode 100644 index 0000000..d1931e3 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ProvidedAccessTokenStrategy.js @@ -0,0 +1,56 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const AccessTokenHelpers_js_1 = __importDefault(require("./AccessTokenHelpers.js")); +/** + * This strategy is used when you already have an access token and want to use it. + * The authentication strategy will automatically renew the token when it expires. + * Designed to allow a browser-based-app to post the access token to the server and use it from there. + * @constructor + * @param {string} clientId - Spotify application client id. + * @param {string} accessToken - The access token returned from a client side Authorization Code with PKCE flow. + */ +class ProvidedAccessTokenStrategy { + clientId; + accessToken; + refreshTokenAction; + constructor(clientId, accessToken, refreshTokenAction) { + this.clientId = clientId; + this.accessToken = accessToken; + this.refreshTokenAction = refreshTokenAction || AccessTokenHelpers_js_1.default.refreshCachedAccessToken; + // If the raw token from the jwt response is provided here + // Calculate an absolute `expiry` value. + // Caveat: If this token isn't fresh, this value will be off. + // It's the responsibility of the calling code to either set a valid + // expires property, or ensure expires_in accounts for any lag between + // issuing and passing here. + if (!this.accessToken.expires) { + this.accessToken.expires = AccessTokenHelpers_js_1.default.calculateExpiry(this.accessToken); + } + } + setConfiguration(_) { + } + async getOrCreateAccessToken() { + if (this.accessToken.expires && this.accessToken.expires <= Date.now()) { + const refreshed = await this.refreshTokenAction(this.clientId, this.accessToken); + this.accessToken = refreshed; + } + return this.accessToken; + } + async getAccessToken() { + return this.accessToken; + } + removeAccessToken() { + this.accessToken = { + access_token: "", + token_type: "", + expires_in: 0, + refresh_token: "", + expires: 0 + }; + } +} +exports.default = ProvidedAccessTokenStrategy; +//# sourceMappingURL=ProvidedAccessTokenStrategy.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ProvidedAccessTokenStrategy.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ProvidedAccessTokenStrategy.js.map new file mode 100644 index 0000000..7d40462 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/auth/ProvidedAccessTokenStrategy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ProvidedAccessTokenStrategy.js","sourceRoot":"","sources":["../../../src/auth/ProvidedAccessTokenStrategy.ts"],"names":[],"mappings":";;;;;AACA,oFAAyD;AAGzD;;;;;;;GAOG;AACH,MAAqB,2BAA2B;IAI9B;IACA;IAJN,kBAAkB,CAAiE;IAE3F,YACc,QAAgB,EAChB,WAAwB,EAClC,kBAAmF;QAFzE,aAAQ,GAAR,QAAQ,CAAQ;QAChB,gBAAW,GAAX,WAAW,CAAa;QAGlC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,IAAI,+BAAkB,CAAC,wBAAwB,CAAC;QAE5F,0DAA0D;QAC1D,wCAAwC;QACxC,6DAA6D;QAC7D,oEAAoE;QACpE,sEAAsE;QACtE,4BAA4B;QAE5B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,+BAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACnF;IACL,CAAC;IAEM,gBAAgB,CAAC,CAAmB;IAC3C,CAAC;IAEM,KAAK,CAAC,sBAAsB;QAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;YACpE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACjF,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;SAChC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,cAAc;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEM,iBAAiB;QACpB,IAAI,CAAC,WAAW,GAAG;YACf,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,EAAE;YACjB,OAAO,EAAE,CAAC;SACb,CAAC;IACN,CAAC;CACJ;AA/CD,8CA+CC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/GenericCache.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/GenericCache.d.ts new file mode 100644 index 0000000..4939125 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/GenericCache.d.ts @@ -0,0 +1,17 @@ +import { ICachingStrategy, ICachable } from "../types.js"; +import { ICacheStore } from "./ICacheStore.js"; +export default class GenericCache implements ICachingStrategy { + private storage; + private updateFunctions; + private autoRenewInterval; + private autoRenewWindow; + constructor(storage: ICacheStore, updateFunctions?: Map Promise>, autoRenewInterval?: number, autoRenewWindow?: number); + getOrCreate(cacheKey: string, createFunction: () => Promise, updateFunction?: (item: T) => Promise): Promise; + get(cacheKey: string): Promise; + set(cacheKey: string, value: object, expiresIn: number): void; + setCacheItem(cacheKey: string, cacheItem: ICachable): void; + remove(cacheKey: string): void; + private itemDueToExpire; + private autoRenewRenewableItems; + private tryUpdateItem; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/GenericCache.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/GenericCache.js new file mode 100644 index 0000000..ac8ae6a --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/GenericCache.js @@ -0,0 +1,104 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const IAuthStrategy_js_1 = require("../auth/IAuthStrategy.js"); +class GenericCache { + storage; + updateFunctions; + autoRenewInterval; + autoRenewWindow; + constructor(storage, updateFunctions = new Map(), autoRenewInterval = 0, autoRenewWindow = 2 * 60 * 1000 // Two minutes + ) { + this.storage = storage; + this.updateFunctions = updateFunctions; + this.autoRenewInterval = autoRenewInterval; + this.autoRenewWindow = autoRenewWindow; + if (this.autoRenewInterval > 0) { + setInterval(() => this.autoRenewRenewableItems(), this.autoRenewInterval); + } + } + async getOrCreate(cacheKey, createFunction, updateFunction) { + if (updateFunction) { + this.updateFunctions.set(cacheKey, updateFunction); + } + const item = await this.get(cacheKey); + if (item) { + return item; + } + const newCacheItem = await createFunction(); + if (!newCacheItem) { + throw new Error("Could not create cache item"); + } + if (!(0, IAuthStrategy_js_1.isEmptyAccessToken)(newCacheItem)) { + this.setCacheItem(cacheKey, newCacheItem); + } + return newCacheItem; + } + async get(cacheKey) { + let asString = this.storage.get(cacheKey); + let cachedItem = asString ? JSON.parse(asString) : null; + if (this.itemDueToExpire(cachedItem) && this.updateFunctions.has(cacheKey)) { + const updateFunction = this.updateFunctions.get(cacheKey); + await this.tryUpdateItem(cacheKey, cachedItem, updateFunction); + // Ensure updated item is returned + asString = this.storage.get(cacheKey); + cachedItem = asString ? JSON.parse(asString) : null; + } + if (!cachedItem) { + return null; + } + if (cachedItem.expires && (cachedItem.expires === -1 || cachedItem.expires <= Date.now())) { + this.remove(cacheKey); + return null; + } + if (cachedItem.expiresOnAccess && cachedItem.expiresOnAccess === true) { + this.remove(cacheKey); + return cachedItem; + } + return cachedItem; + } + set(cacheKey, value, expiresIn) { + const expires = Date.now() + expiresIn; + const cacheItem = { ...value, expires }; + this.setCacheItem(cacheKey, cacheItem); + } + setCacheItem(cacheKey, cacheItem) { + const asString = JSON.stringify(cacheItem); + this.storage.set(cacheKey, asString); + } + remove(cacheKey) { + this.storage.remove(cacheKey); + } + itemDueToExpire(item) { + if (!item) { + return false; + } + if (!item.expires) { + return false; + } + return item.expires - Date.now() < (this.autoRenewWindow); + } + async autoRenewRenewableItems() { + this.updateFunctions.forEach(async (updateFunction, key) => { + const cachedItem = await this.get(key); + if (!cachedItem) { + return; + } + if (updateFunction && this.itemDueToExpire(cachedItem)) { + await this.tryUpdateItem(key, cachedItem, updateFunction); + } + }); + } + async tryUpdateItem(key, cachedItem, updateFunction) { + try { + const updated = await updateFunction(cachedItem); + if (updated) { + this.setCacheItem(key, updated); + } + } + catch (e) { + console.error(e); + } + } +} +exports.default = GenericCache; +//# sourceMappingURL=GenericCache.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/GenericCache.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/GenericCache.js.map new file mode 100644 index 0000000..f85f2a0 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/GenericCache.js.map @@ -0,0 +1 @@ +{"version":3,"file":"GenericCache.js","sourceRoot":"","sources":["../../../src/caching/GenericCache.ts"],"names":[],"mappings":";;AAAA,+DAA8D;AAI9D,MAAqB,YAAY;IAEjB;IACA;IACA;IACA;IAJZ,YACY,OAAoB,EACpB,kBAAkE,IAAI,GAAG,EAAE,EAC3E,oBAA4B,CAAC,EAC7B,kBAA0B,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc;;QAHtD,YAAO,GAAP,OAAO,CAAa;QACpB,oBAAe,GAAf,eAAe,CAA4D;QAC3E,sBAAiB,GAAjB,iBAAiB,CAAY;QAC7B,oBAAe,GAAf,eAAe,CAAwB;QAE/C,IAAI,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE;YAC5B,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;SAC7E;IACL,CAAC;IAEM,KAAK,CAAC,WAAW,CACpB,QAAgB,EAChB,cAAqD,EACrD,cAA6D;QAE7D,IAAI,cAAc,EAAE;YAChB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;SACtD;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAI,QAAQ,CAAC,CAAC;QACzC,IAAI,IAAI,EAAE;YACN,OAAO,IAAI,CAAC;SACf;QAED,MAAM,YAAY,GAAG,MAAM,cAAc,EAAE,CAAC;QAC5C,IAAI,CAAC,YAAY,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAClD;QAED,IAAI,CAAC,IAAA,qCAAkB,EAAC,YAAY,CAAC,EAAE;YACnC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;SAC7C;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,GAAG,CAAI,QAAgB;QAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,UAAU,GAAkB,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEvE,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACxE,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAe,CAAC,CAAC;YAEhE,kCAAkC;YAClC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SACvD;QAED,IAAI,CAAC,UAAU,EAAE;YACb,OAAO,IAAI,CAAC;SACf;QAED,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE;YACvF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC;SACf;QAED,IAAI,UAAU,CAAC,eAAe,IAAI,UAAU,CAAC,eAAe,KAAK,IAAI,EAAE;YACnE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO,UAAU,CAAC;SACrB;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAEM,GAAG,CAAC,QAAgB,EAAE,KAAa,EAAE,SAAiB;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACvC,MAAM,SAAS,GAAc,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC;QACnD,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC;IAEM,YAAY,CAAC,QAAgB,EAAE,SAAoB;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,QAAgB;QAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAEO,eAAe,CAAC,IAAe;QACnC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9D,CAAC;IAEO,KAAK,CAAC,uBAAuB;QACjC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE;YACvD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,EAAE;gBACb,OAAO;aACV;YAED,IAAI,cAAc,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE;gBACpD,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;aAC7D;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,GAAW,EAAE,UAAqB,EAAE,cAAuD;QACnH,IAAI;YACA,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;YACjD,IAAI,OAAO,EAAE;gBACT,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;aACnC;SACJ;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACpB;IACL,CAAC;CAEJ;AAvHD,+BAuHC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/ICacheStore.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/ICacheStore.d.ts new file mode 100644 index 0000000..198783e --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/ICacheStore.d.ts @@ -0,0 +1,5 @@ +export interface ICacheStore { + get(key: string): string | null; + set(key: string, value: string): void; + remove(key: string): void; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/ICacheStore.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/ICacheStore.js new file mode 100644 index 0000000..f3d97a6 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/ICacheStore.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=ICacheStore.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/ICacheStore.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/ICacheStore.js.map new file mode 100644 index 0000000..3a75ce6 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/ICacheStore.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ICacheStore.js","sourceRoot":"","sources":["../../../src/caching/ICacheStore.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/InMemoryCachingStrategy.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/InMemoryCachingStrategy.d.ts new file mode 100644 index 0000000..cafa513 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/InMemoryCachingStrategy.d.ts @@ -0,0 +1,4 @@ +import GenericCache from "./GenericCache.js"; +export default class InMemoryCachingStrategy extends GenericCache { + constructor(); +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/InMemoryCachingStrategy.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/InMemoryCachingStrategy.js new file mode 100644 index 0000000..23ca5e2 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/InMemoryCachingStrategy.js @@ -0,0 +1,25 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const GenericCache_js_1 = __importDefault(require("./GenericCache.js")); +class InMemoryCachingStrategy extends GenericCache_js_1.default { + constructor() { + super(new DictionaryCacheStore()); + } +} +exports.default = InMemoryCachingStrategy; +class DictionaryCacheStore { + cache = new Map(); + get(key) { + return this.cache.get(key) ?? null; + } + set(key, value) { + this.cache.set(key, value); + } + remove(key) { + this.cache.delete(key); + } +} +//# sourceMappingURL=InMemoryCachingStrategy.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/InMemoryCachingStrategy.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/InMemoryCachingStrategy.js.map new file mode 100644 index 0000000..711065f --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/InMemoryCachingStrategy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"InMemoryCachingStrategy.js","sourceRoot":"","sources":["../../../src/caching/InMemoryCachingStrategy.ts"],"names":[],"mappings":";;;;;AAAA,wEAA6C;AAG7C,MAAqB,uBAAwB,SAAQ,yBAAY;IAC7D;QACI,KAAK,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;IACtC,CAAC;CACJ;AAJD,0CAIC;AAED,MAAM,oBAAoB;IACd,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEnC,GAAG,CAAC,GAAW;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACvC,CAAC;IAEM,GAAG,CAAC,GAAW,EAAE,KAAa;QACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAEM,MAAM,CAAC,GAAW;QACrB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/LocalStorageCachingStrategy.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/LocalStorageCachingStrategy.d.ts new file mode 100644 index 0000000..4b2a64d --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/LocalStorageCachingStrategy.d.ts @@ -0,0 +1,4 @@ +import GenericCache from "./GenericCache.js"; +export default class LocalStorageCachingStrategy extends GenericCache { + constructor(); +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/LocalStorageCachingStrategy.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/LocalStorageCachingStrategy.js new file mode 100644 index 0000000..58950fc --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/LocalStorageCachingStrategy.js @@ -0,0 +1,24 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const GenericCache_js_1 = __importDefault(require("./GenericCache.js")); +class LocalStorageCachingStrategy extends GenericCache_js_1.default { + constructor() { + super(new LocalStorageCacheStore()); + } +} +exports.default = LocalStorageCachingStrategy; +class LocalStorageCacheStore { + get(key) { + return localStorage.getItem(key); + } + set(key, value) { + localStorage.setItem(key, value); + } + remove(key) { + localStorage.removeItem(key); + } +} +//# sourceMappingURL=LocalStorageCachingStrategy.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/LocalStorageCachingStrategy.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/LocalStorageCachingStrategy.js.map new file mode 100644 index 0000000..5720dd3 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/caching/LocalStorageCachingStrategy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LocalStorageCachingStrategy.js","sourceRoot":"","sources":["../../../src/caching/LocalStorageCachingStrategy.ts"],"names":[],"mappings":";;;;;AAAA,wEAA6C;AAG7C,MAAqB,2BAA4B,SAAQ,yBAAY;IACjE;QACI,KAAK,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;IACxC,CAAC;CACJ;AAJD,8CAIC;AAED,MAAM,sBAAsB;IACjB,GAAG,CAAC,GAAW;QAClB,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAEM,GAAG,CAAC,GAAW,EAAE,KAAa;QACjC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAEM,MAAM,CAAC,GAAW;QACrB,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AlbumsEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AlbumsEndpoints.d.ts new file mode 100644 index 0000000..18274fe --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AlbumsEndpoints.d.ts @@ -0,0 +1,7 @@ +import type { Market, Album, MaxInt, Page, SimplifiedTrack } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class AlbumsEndpoints extends EndpointsBase { + get(id: string, market?: Market): Promise; + get(ids: string[], market?: Market): Promise; + tracks(albumId: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AlbumsEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AlbumsEndpoints.js new file mode 100644 index 0000000..558f566 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AlbumsEndpoints.js @@ -0,0 +1,25 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const EndpointsBase_js_1 = __importDefault(require("./EndpointsBase.js")); +class AlbumsEndpoints extends EndpointsBase_js_1.default { + async get(idOrIds, market) { + if (typeof idOrIds === 'string') { + const params = this.paramsFor({ market }); + const album = await this.getRequest(`albums/${idOrIds}${params}`); + return album; + } + const params = this.paramsFor({ ids: idOrIds, market }); + // TODO: only returns top 20, validate here + const response = await this.getRequest(`albums${params}`); + return response.albums; + } + tracks(albumId, market, limit, offset) { + const params = this.paramsFor({ market, limit, offset }); + return this.getRequest(`albums/${albumId}/tracks${params}`); + } +} +exports.default = AlbumsEndpoints; +//# sourceMappingURL=AlbumsEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AlbumsEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AlbumsEndpoints.js.map new file mode 100644 index 0000000..13c3a0d --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AlbumsEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AlbumsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/AlbumsEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,eAAgB,SAAQ,0BAAa;IAI/C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAQ,UAAU,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;YACzE,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAS,SAAS,MAAM,EAAE,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,OAAe,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAwB,UAAU,OAAO,UAAU,MAAM,EAAE,CAAC,CAAC;IACvF,CAAC;CACJ;AArBD,kCAqBC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ArtistsEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ArtistsEndpoints.d.ts new file mode 100644 index 0000000..4b5237b --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ArtistsEndpoints.d.ts @@ -0,0 +1,9 @@ +import type { Artist, Artists, Market, MaxInt, Page, SimplifiedAlbum, TopTracksResult } from "../types.js"; +import EndpointsBase from "./EndpointsBase.js"; +export default class ArtistsEndpoints extends EndpointsBase { + get(id: string): Promise; + get(ids: string[]): Promise; + albums(id: string, includeGroups?: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; + topTracks(id: string, market: Market): Promise; + relatedArtists(id: string): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ArtistsEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ArtistsEndpoints.js new file mode 100644 index 0000000..6c6eee4 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ArtistsEndpoints.js @@ -0,0 +1,37 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const EndpointsBase_js_1 = __importDefault(require("./EndpointsBase.js")); +class ArtistsEndpoints extends EndpointsBase_js_1.default { + async get(idOrIds) { + if (typeof idOrIds === "string") { + const artist = this.getRequest(`artists/${idOrIds}`); + return artist; + } + const params = this.paramsFor({ ids: idOrIds }); + const response = await this.getRequest(`artists${params}`); + return response.artists; + } + albums(id, includeGroups, market, limit, offset) { + const params = this.paramsFor({ + include_groups: includeGroups, + market, + limit, + offset, + }); + return this.getRequest(`artists/${id}/albums${params}`); + } + topTracks(id, market) { + // BUG: market is flagged as optional in the docs, but it's actually required for this endpoint + // otherwise you get a 400 + const params = this.paramsFor({ market }); + return this.getRequest(`artists/${id}/top-tracks${params}`); + } + relatedArtists(id) { + return this.getRequest(`artists/${id}/related-artists`); + } +} +exports.default = ArtistsEndpoints; +//# sourceMappingURL=ArtistsEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ArtistsEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ArtistsEndpoints.js.map new file mode 100644 index 0000000..8bf5c0c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ArtistsEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ArtistsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ArtistsEndpoints.ts"],"names":[],"mappings":";;;;;AAUA,0EAA+C;AAE/C,MAAqB,gBAAiB,SAAQ,0BAAa;IAGhD,KAAK,CAAC,GAAG,CAAC,OAA0B;QACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAS,WAAW,OAAO,EAAE,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC;SACjB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAU,UAAU,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAEM,MAAM,CACT,EAAU,EACV,aAAsB,EACtB,MAAe,EACf,KAAkB,EAClB,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,cAAc,EAAE,aAAa;YAC7B,MAAM;YACN,KAAK;YACL,MAAM;SACT,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,UAAU,CAClB,WAAW,EAAE,UAAU,MAAM,EAAE,CAClC,CAAC;IACN,CAAC;IAEM,SAAS,CAAC,EAAU,EAAE,MAAc;QACvC,+FAA+F;QAC/F,0BAA0B;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,UAAU,CAClB,WAAW,EAAE,cAAc,MAAM,EAAE,CACtC,CAAC;IACN,CAAC;IAEM,cAAc,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAU,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACrE,CAAC;CACJ;AA7CD,mCA6CC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AudiobooksEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AudiobooksEndpoints.d.ts new file mode 100644 index 0000000..cfe18b3 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AudiobooksEndpoints.d.ts @@ -0,0 +1,7 @@ +import type { Market, Audiobook, MaxInt, Page, SimplifiedChapter } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class AudiobooksEndpoints extends EndpointsBase { + get(id: string, market?: Market): Promise; + get(ids: string[], market?: Market): Promise; + getAudiobookChapters(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AudiobooksEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AudiobooksEndpoints.js new file mode 100644 index 0000000..5cd33ac --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AudiobooksEndpoints.js @@ -0,0 +1,23 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const EndpointsBase_js_1 = __importDefault(require("./EndpointsBase.js")); +class AudiobooksEndpoints extends EndpointsBase_js_1.default { + async get(idOrIds, market) { + if (typeof idOrIds === 'string') { + const params = this.paramsFor({ market }); + return this.getRequest(`audiobooks/${idOrIds}${params}`); + } + const params = this.paramsFor({ ids: idOrIds, market }); + const response = await this.getRequest(`audiobooks${params}`); + return response.audiobooks; + } + getAudiobookChapters(id, market, limit, offset) { + const params = this.paramsFor({ market, limit, offset }); + return this.getRequest(`audiobooks/${id}/chapters${params}`); + } +} +exports.default = AudiobooksEndpoints; +//# sourceMappingURL=AudiobooksEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AudiobooksEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AudiobooksEndpoints.js.map new file mode 100644 index 0000000..4f5a448 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/AudiobooksEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AudiobooksEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/AudiobooksEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,mBAAoB,SAAQ,0BAAa;IAGnD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAY,cAAc,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SACvE;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAa,aAAa,MAAM,EAAE,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC/B,CAAC;IAEM,oBAAoB,CAAC,EAAU,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAA0B,cAAc,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;IAC1F,CAAC;CAEJ;AAnBD,sCAmBC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/BrowseEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/BrowseEndpoints.d.ts new file mode 100644 index 0000000..7f99899 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/BrowseEndpoints.d.ts @@ -0,0 +1,9 @@ +import type { CountryCodeA2, MaxInt, Categories, Category, NewReleases, FeaturedPlaylists } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class BrowseEndpoints extends EndpointsBase { + getCategories(country?: CountryCodeA2, locale?: string, limit?: MaxInt<50>, offset?: number): Promise; + getCategory(categoryId: string, country?: CountryCodeA2, locale?: string): Promise; + getNewReleases(country?: string, limit?: MaxInt<50>, offset?: number): Promise; + getFeaturedPlaylists(country?: CountryCodeA2, locale?: string, timestamp?: string, limit?: MaxInt<50>, offset?: number): Promise; + getPlaylistsForCategory(category_id: string, country?: CountryCodeA2, limit?: MaxInt<50>, offset?: number): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/BrowseEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/BrowseEndpoints.js new file mode 100644 index 0000000..c9ee01b --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/BrowseEndpoints.js @@ -0,0 +1,30 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const EndpointsBase_js_1 = __importDefault(require("./EndpointsBase.js")); +class BrowseEndpoints extends EndpointsBase_js_1.default { + getCategories(country, locale, limit, offset) { + const params = this.paramsFor({ country, locale, limit, offset }); + return this.getRequest(`browse/categories${params}`); + } + getCategory(categoryId, country, locale) { + const params = this.paramsFor({ country, locale }); + return this.getRequest(`browse/categories/${categoryId}${params}`); + } + getNewReleases(country, limit, offset) { + const params = this.paramsFor({ country, limit, offset }); + return this.getRequest(`browse/new-releases${params}`); + } + getFeaturedPlaylists(country, locale, timestamp, limit, offset) { + const params = this.paramsFor({ country, locale, timestamp, limit, offset }); + return this.getRequest(`browse/featured-playlists${params}`); + } + getPlaylistsForCategory(category_id, country, limit, offset) { + const params = this.paramsFor({ country, limit, offset }); + return this.getRequest(`browse/categories/${category_id}/playlists${params}`); + } +} +exports.default = BrowseEndpoints; +//# sourceMappingURL=BrowseEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/BrowseEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/BrowseEndpoints.js.map new file mode 100644 index 0000000..d36642d --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/BrowseEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BrowseEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/BrowseEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,eAAgB,SAAQ,0BAAa;IAE/C,aAAa,CAAC,OAAuB,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QAC9F,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAElE,OAAO,IAAI,CAAC,UAAU,CAAa,oBAAoB,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IAEM,WAAW,CAAC,UAAkB,EAAE,OAAuB,EAAE,MAAe;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAEnD,OAAO,IAAI,CAAC,UAAU,CAAW,qBAAqB,UAAU,GAAG,MAAM,EAAE,CAAC,CAAC;IACjF,CAAC;IAEM,cAAc,CAAC,OAAgB,EAAE,KAAkB,EAAE,MAAe;QACvE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,UAAU,CAAc,sBAAsB,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IAEM,oBAAoB,CAAC,OAAuB,EAAE,MAAe,EAAE,SAAkB,EAAE,KAAkB,EAAE,MAAe;QACzH,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC,UAAU,CAAoB,4BAA4B,MAAM,EAAE,CAAC,CAAC;IACpF,CAAC;IAEM,uBAAuB,CAAC,WAAmB,EAAE,OAAuB,EAAE,KAAkB,EAAE,MAAe;QAC5G,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,UAAU,CAAoB,qBAAqB,WAAW,aAAa,MAAM,EAAE,CAAC,CAAC;IACrG,CAAC;CACJ;AA5BD,kCA4BC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ChaptersEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ChaptersEndpoints.d.ts new file mode 100644 index 0000000..9479886 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ChaptersEndpoints.d.ts @@ -0,0 +1,7 @@ +import type { Chapter } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export type ChapterMarket = "GB" | "US" | "IE" | "NZ" | "AU"; +export default class ChaptersEndpoints extends EndpointsBase { + get(id: string, market: ChapterMarket): Promise; + get(ids: string[], market: ChapterMarket): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ChaptersEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ChaptersEndpoints.js new file mode 100644 index 0000000..f3ac2c6 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ChaptersEndpoints.js @@ -0,0 +1,20 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const EndpointsBase_js_1 = __importDefault(require("./EndpointsBase.js")); +class ChaptersEndpoints extends EndpointsBase_js_1.default { + async get(idOrIds, market) { + if (typeof idOrIds === 'string') { + const params = this.paramsFor({ market }); + return this.getRequest(`chapters/${idOrIds}${params}`); + } + // TODO: Only returns top 50, validate / pre-check here + const params = this.paramsFor({ ids: idOrIds, market }); + const response = await this.getRequest(`chapters${params}`); + return response.chapters; + } +} +exports.default = ChaptersEndpoints; +//# sourceMappingURL=ChaptersEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ChaptersEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ChaptersEndpoints.js.map new file mode 100644 index 0000000..b47dff3 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ChaptersEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ChaptersEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ChaptersEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAK/C,MAAqB,iBAAkB,SAAQ,0BAAa;IAGjD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAqB;QAC9D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAU,YAAY,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SACnE;QAED,uDAAuD;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAW,WAAW,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACJ;AAdD,oCAcC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/CurrentUserEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/CurrentUserEndpoints.d.ts new file mode 100644 index 0000000..ef1c96f --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/CurrentUserEndpoints.d.ts @@ -0,0 +1,55 @@ +import { SpotifyApi } from '../SpotifyApi.js'; +import type { Page, Artist, Track, MaxInt, FollowedArtists, Market, SavedAlbum, SimplifiedAudiobook, SimplifiedPlaylist, SavedEpisode, SavedShow, SavedTrack, UserProfile } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class CurrentUserEndpoints extends EndpointsBase { + albums: CurrentUserAlbumsEndpoints; + audiobooks: CurrentUserAudiobooksEndpoints; + episodes: CurrentUserEpisodesEndpoints; + playlists: CurrentUserPlaylistsEndpoints; + shows: CurrentUserShowsEndpoints; + tracks: CurrentUserTracksEndpoints; + constructor(api: SpotifyApi); + profile(): Promise; + topItems(type: T, time_range?: 'short_term' | 'medium_term' | 'long_term', limit?: MaxInt<50>, offset?: number): Promise>; + followedArtists(after?: string, limit?: MaxInt<50>): Promise; + followArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise; + unfollowArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise; + followsArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise; +} +declare class CurrentUserAlbumsEndpoints extends EndpointsBase { + savedAlbums(limit?: MaxInt<50>, offset?: number, market?: Market): Promise>; + saveAlbums(ids: string[]): Promise; + removeSavedAlbums(ids: string[]): Promise; + hasSavedAlbums(ids: string[]): Promise; +} +declare class CurrentUserAudiobooksEndpoints extends EndpointsBase { + savedAudiobooks(limit?: MaxInt<50>, offset?: number): Promise>; + saveAudiobooks(ids: string[]): Promise; + removeSavedAudiobooks(ids: string[]): Promise; + hasSavedAudiobooks(ids: string[]): Promise; +} +declare class CurrentUserEpisodesEndpoints extends EndpointsBase { + savedEpisodes(market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; + saveEpisodes(ids: string[]): Promise; + removeSavedEpisodes(ids: string[]): Promise; + hasSavedEpisodes(ids: string[]): Promise; +} +declare class CurrentUserPlaylistsEndpoints extends EndpointsBase { + playlists(limit?: MaxInt<50>, offset?: number): Promise>; + follow(playlist_id: string): Promise; + unfollow(playlist_id: string): Promise; + isFollowing(playlistId: string, ids: string[]): Promise; +} +declare class CurrentUserShowsEndpoints extends EndpointsBase { + savedShows(limit?: MaxInt<50>, offset?: number): Promise>; + saveShows(ids: string[]): Promise; + removeSavedShows(ids: string[], market?: Market): Promise; + hasSavedShow(ids: string[]): Promise; +} +declare class CurrentUserTracksEndpoints extends EndpointsBase { + savedTracks(limit?: MaxInt<50>, offset?: number, market?: Market): Promise>; + saveTracks(ids: string[]): Promise; + removeSavedTracks(ids: string[]): Promise; + hasSavedTracks(ids: string[]): Promise; +} +export {}; diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/CurrentUserEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/CurrentUserEndpoints.js new file mode 100644 index 0000000..d3b46e0 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/CurrentUserEndpoints.js @@ -0,0 +1,146 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const EndpointsBase_js_1 = __importDefault(require("./EndpointsBase.js")); +class CurrentUserEndpoints extends EndpointsBase_js_1.default { + albums; + audiobooks; + episodes; + playlists; + shows; + tracks; + constructor(api) { + super(api); + this.albums = new CurrentUserAlbumsEndpoints(api); + this.audiobooks = new CurrentUserAudiobooksEndpoints(api); + this.episodes = new CurrentUserEpisodesEndpoints(api); + this.playlists = new CurrentUserPlaylistsEndpoints(api); + this.shows = new CurrentUserShowsEndpoints(api); + this.tracks = new CurrentUserTracksEndpoints(api); + } + profile() { + return this.getRequest('me'); + } + topItems(type, time_range, limit, offset) { + const params = this.paramsFor({ time_range, limit, offset }); + return this.getRequest(`me/top/${type}${params}`); + } + followedArtists(after, limit) { + const params = this.paramsFor({ type: "artist", after, limit }); + return this.getRequest(`me/following${params}`); + } + async followArtistsOrUsers(ids, type) { + const params = this.paramsFor({ type }); + await this.putRequest(`me/following${params}`, { ids }); + } + async unfollowArtistsOrUsers(ids, type) { + const params = this.paramsFor({ type }); + await this.deleteRequest(`me/following${params}`, { ids }); + } + followsArtistsOrUsers(ids, type) { + const params = this.paramsFor({ ids, type }); + return this.getRequest(`me/following/contains${params}`); + } +} +exports.default = CurrentUserEndpoints; +class CurrentUserAlbumsEndpoints extends EndpointsBase_js_1.default { + savedAlbums(limit, offset, market) { + const params = this.paramsFor({ limit, offset, market }); + return this.getRequest(`me/albums${params}`); + } + async saveAlbums(ids) { + await this.putRequest('me/albums', ids); + } + async removeSavedAlbums(ids) { + await this.deleteRequest('me/albums', ids); + } + hasSavedAlbums(ids) { + const params = this.paramsFor({ ids }); + return this.getRequest(`me/albums/contains${params}`); + } +} +class CurrentUserAudiobooksEndpoints extends EndpointsBase_js_1.default { + savedAudiobooks(limit, offset) { + const params = this.paramsFor({ limit, offset }); + return this.getRequest(`me/audiobooks${params}`); + } + async saveAudiobooks(ids) { + await this.putRequest('me/audiobooks', ids); + } + async removeSavedAudiobooks(ids) { + await this.deleteRequest('me/audiobooks', ids); + } + hasSavedAudiobooks(ids) { + const params = this.paramsFor({ ids }); + return this.getRequest(`me/audiobooks/contains${params}`); + } +} +class CurrentUserEpisodesEndpoints extends EndpointsBase_js_1.default { + savedEpisodes(market, limit, offset) { + const params = this.paramsFor({ market, limit, offset }); + return this.getRequest(`me/episodes${params}`); + } + async saveEpisodes(ids) { + await this.putRequest(`me/episodes`, ids); + } + async removeSavedEpisodes(ids) { + await this.deleteRequest(`me/episodes`, ids); + } + hasSavedEpisodes(ids) { + const params = this.paramsFor({ ids }); + return this.getRequest(`me/episodes/contains${params}`); + } +} +class CurrentUserPlaylistsEndpoints extends EndpointsBase_js_1.default { + playlists(limit, offset) { + const params = this.paramsFor({ limit, offset }); + return this.getRequest(`me/playlists${params}`); + } + async follow(playlist_id) { + await this.putRequest(`playlists/${playlist_id}/followers`); + } + async unfollow(playlist_id) { + await this.deleteRequest(`playlists/${playlist_id}/followers`); + } + isFollowing(playlistId, ids) { + const params = this.paramsFor({ ids }); + return this.getRequest(`playlists/${playlistId}/followers/contains${params}`); + } +} +class CurrentUserShowsEndpoints extends EndpointsBase_js_1.default { + savedShows(limit, offset) { + const params = this.paramsFor({ limit, offset }); + return this.getRequest(`me/shows${params}`); + } + saveShows(ids) { + const params = this.paramsFor({ ids }); + return this.putRequest(`me/shows${params}`); + } + removeSavedShows(ids, market) { + const params = this.paramsFor({ ids, market }); + return this.deleteRequest(`me/shows${params}`); + } + hasSavedShow(ids) { + const params = this.paramsFor({ ids }); + return this.getRequest(`me/shows/contains${params}`); + } +} +class CurrentUserTracksEndpoints extends EndpointsBase_js_1.default { + savedTracks(limit, offset, market) { + const params = this.paramsFor({ limit, offset, market }); + return this.getRequest(`me/tracks${params}`); + } + async saveTracks(ids) { + await this.putRequest('me/tracks', ids); + } + async removeSavedTracks(ids) { + await this.deleteRequest('me/tracks', ids); + } + hasSavedTracks(ids) { + const params = this.paramsFor({ ids }); + return this.getRequest(`me/tracks/contains${params}`); + } +} +//# sourceMappingURL=CurrentUserEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/CurrentUserEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/CurrentUserEndpoints.js.map new file mode 100644 index 0000000..2c175d0 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/CurrentUserEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CurrentUserEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/CurrentUserEndpoints.ts"],"names":[],"mappings":";;;;;AAEA,0EAA+C;AAE/C,MAAqB,oBAAqB,SAAQ,0BAAa;IACpD,MAAM,CAA6B;IACnC,UAAU,CAAiC;IAC3C,QAAQ,CAA+B;IACvC,SAAS,CAAgC;IACzC,KAAK,CAA4B;IACjC,MAAM,CAA6B;IAE1C,YAAY,GAAe;QACvB,KAAK,CAAC,GAAG,CAAC,CAAC;QAEX,IAAI,CAAC,MAAM,GAAG,IAAI,0BAA0B,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,IAAI,8BAA8B,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,4BAA4B,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,IAAI,6BAA6B,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,GAAG,IAAI,yBAAyB,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,0BAA0B,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,UAAU,CAAc,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEM,QAAQ,CAAiC,IAAO,EAAE,UAAuD,EAAE,KAAkB,EAAE,MAAe;QACjJ,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,UAAU,CAA6C,UAAU,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC;IAClG,CAAC;IAEM,eAAe,CAAC,KAAc,EAAE,KAAkB;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,UAAU,CAAkB,eAAe,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,GAAa,EAAE,IAAuB;QACpE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5D,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,GAAa,EAAE,IAAuB;QACtE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC;IAEM,qBAAqB,CAAC,GAAa,EAAE,IAAuB;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,UAAU,CAAY,wBAAwB,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;CACJ;AA/CD,uCA+CC;AAGD,MAAM,0BAA2B,SAAQ,0BAAa;IAC3C,WAAW,CAAC,KAAkB,EAAE,MAAe,EAAE,MAAe;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAmB,YAAY,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,GAAa;QACjC,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,GAAa;QACxC,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAEM,cAAc,CAAC,GAAa;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CAAY,qBAAqB,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;CACJ;AAED,MAAM,8BAA+B,SAAQ,0BAAa;IAC/C,eAAe,CAAC,KAAkB,EAAE,MAAe;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,UAAU,CAA4B,gBAAgB,MAAM,EAAE,CAAC,CAAC;IAChF,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,GAAa;QACrC,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,GAAa;QAC5C,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;IAEM,kBAAkB,CAAC,GAAa;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CAAY,yBAAyB,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;CACJ;AAED,MAAM,4BAA6B,SAAQ,0BAAa;IAC7C,aAAa,CAAC,MAAe,EAAE,KAAkB,EAAE,MAAe;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAqB,cAAc,MAAM,EAAE,CAAC,CAAC;IACvE,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,GAAa;QACnC,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;IAC7C,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,GAAa;QAC1C,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;IAChD,CAAC;IAEM,gBAAgB,CAAC,GAAa;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CAAY,uBAAuB,MAAM,EAAE,CAAC,CAAC;IACvE,CAAC;CACJ;AAED,MAAM,6BAA8B,SAAQ,0BAAa;IAC9C,SAAS,CAAC,KAAkB,EAAE,MAAe;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,UAAU,CAA2B,eAAe,MAAM,EAAE,CAAC,CAAC;IAC9E,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,WAAmB;QACnC,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,WAAW,YAAY,CAAC,CAAC;IAChE,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,WAAmB;QACrC,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,WAAW,YAAY,CAAC,CAAC;IACnE,CAAC;IAEM,WAAW,CAAC,UAAkB,EAAE,GAAa;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CAAY,aAAa,UAAU,sBAAsB,MAAM,EAAE,CAAC,CAAA;IAC5F,CAAC;CACJ;AAED,MAAM,yBAA0B,SAAQ,0BAAa;IAC1C,UAAU,CAAC,KAAkB,EAAE,MAAe;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QAChD,OAAO,IAAI,CAAC,UAAU,CAAkB,WAAW,MAAM,EAAE,CAAC,CAAC;IACjE,CAAC;IAEM,SAAS,CAAC,GAAa;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAEM,gBAAgB,CAAC,GAAa,EAAE,MAAe;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IAEM,YAAY,CAAC,GAAa;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CAAY,oBAAoB,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;CACJ;AAED,MAAM,0BAA2B,SAAQ,0BAAa;IAC3C,WAAW,CAAC,KAAkB,EAAE,MAAe,EAAE,MAAe;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAmB,YAAY,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IACM,KAAK,CAAC,UAAU,CAAC,GAAa;QACjC,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,GAAa;QACxC,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAEM,cAAc,CAAC,GAAa;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CAAY,qBAAqB,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EndpointsBase.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EndpointsBase.d.ts new file mode 100644 index 0000000..c91dff7 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EndpointsBase.d.ts @@ -0,0 +1,10 @@ +import { SpotifyApi } from "../SpotifyApi.js"; +export default class EndpointsBase { + protected api: SpotifyApi; + constructor(api: SpotifyApi); + protected getRequest(url: string): Promise; + protected postRequest(url: string, body?: TBody, contentType?: string | undefined): Promise; + protected putRequest(url: string, body?: TBody, contentType?: string | undefined): Promise; + protected deleteRequest(url: string, body?: TBody): Promise; + protected paramsFor(args: any): string; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EndpointsBase.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EndpointsBase.js new file mode 100644 index 0000000..e2e98d1 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EndpointsBase.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class EndpointsBase { + api; + constructor(api) { + this.api = api; + } + async getRequest(url) { + return await this.api.makeRequest("GET", url); + } + async postRequest(url, body, contentType = undefined) { + return await this.api.makeRequest("POST", url, body, contentType); + } + async putRequest(url, body, contentType = undefined) { + return await this.api.makeRequest("PUT", url, body, contentType); + } + async deleteRequest(url, body) { + return await this.api.makeRequest("DELETE", url, body); + } + paramsFor(args) { + const params = new URLSearchParams(); + for (let key of Object.getOwnPropertyNames(args)) { + if (args[key] || (args[key] === 0) || (!args[key] && typeof args[key] === 'boolean')) { + params.append(key, args[key].toString()); + } + } + return [...params].length > 0 ? `?${params.toString()}` : ""; + } +} +exports.default = EndpointsBase; +//# sourceMappingURL=EndpointsBase.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EndpointsBase.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EndpointsBase.js.map new file mode 100644 index 0000000..f047350 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EndpointsBase.js.map @@ -0,0 +1 @@ +{"version":3,"file":"EndpointsBase.js","sourceRoot":"","sources":["../../../src/endpoints/EndpointsBase.ts"],"names":[],"mappings":";;AAEA,MAAqB,aAAa;IACR;IAAtB,YAAsB,GAAe;QAAf,QAAG,GAAH,GAAG,CAAY;IACrC,CAAC;IAES,KAAK,CAAC,UAAU,CAAc,GAAW;QAC/C,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAc,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC;IAES,KAAK,CAAC,WAAW,CAA+B,GAAW,EAAE,IAAY,EAAE,cAAkC,SAAS;QAC5H,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAc,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACnF,CAAC;IAES,KAAK,CAAC,UAAU,CAA+B,GAAW,EAAE,IAAY,EAAE,cAAkC,SAAS;QAC3H,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAc,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAClF,CAAC;IAES,KAAK,CAAC,aAAa,CAA+B,GAAW,EAAE,IAAY;QACjF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAc,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAES,SAAS,CAAC,IAAS;QACzB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE;YAC9C,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,EAAE;gBAClF,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC5C;SACJ;QACD,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;CACJ;AA7BD,gCA6BC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EpisodesEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EpisodesEndpoints.d.ts new file mode 100644 index 0000000..fe97d1a --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EpisodesEndpoints.d.ts @@ -0,0 +1,6 @@ +import type { Market, Episode } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class EpisodesEndpoints extends EndpointsBase { + get(id: string, market: Market): Promise; + get(ids: string[], market: Market): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EpisodesEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EpisodesEndpoints.js new file mode 100644 index 0000000..aa809af --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EpisodesEndpoints.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const EndpointsBase_js_1 = __importDefault(require("./EndpointsBase.js")); +class EpisodesEndpoints extends EndpointsBase_js_1.default { + async get(idOrIds, market) { + if (typeof idOrIds === 'string') { + const params = this.paramsFor({ market }); + return this.getRequest(`episodes/${idOrIds}${params}`); + } + const params = this.paramsFor({ ids: idOrIds, market }); + const response = await this.getRequest(`episodes${params}`); + return response.episodes; + } +} +exports.default = EpisodesEndpoints; +//# sourceMappingURL=EpisodesEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EpisodesEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EpisodesEndpoints.js.map new file mode 100644 index 0000000..017ea1f --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/EpisodesEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"EpisodesEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/EpisodesEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,iBAAkB,SAAQ,0BAAa;IAIjD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAc;QACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAU,YAAY,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SACnE;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAW,WAAW,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACJ;AAdD,oCAcC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/MarketsEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/MarketsEndpoints.d.ts new file mode 100644 index 0000000..4ceb08e --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/MarketsEndpoints.d.ts @@ -0,0 +1,5 @@ +import type { Markets } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class MarketsEndpoints extends EndpointsBase { + getAvailableMarkets(): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/MarketsEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/MarketsEndpoints.js new file mode 100644 index 0000000..418471e --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/MarketsEndpoints.js @@ -0,0 +1,13 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const EndpointsBase_js_1 = __importDefault(require("./EndpointsBase.js")); +class MarketsEndpoints extends EndpointsBase_js_1.default { + getAvailableMarkets() { + return this.getRequest('markets'); + } +} +exports.default = MarketsEndpoints; +//# sourceMappingURL=MarketsEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/MarketsEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/MarketsEndpoints.js.map new file mode 100644 index 0000000..0d5e586 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/MarketsEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"MarketsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/MarketsEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,gBAAiB,SAAQ,0BAAa;IAChD,mBAAmB;QACtB,OAAO,IAAI,CAAC,UAAU,CAAU,SAAS,CAAC,CAAC;IAC/C,CAAC;CACJ;AAJD,mCAIC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlayerEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlayerEndpoints.d.ts new file mode 100644 index 0000000..52792b8 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlayerEndpoints.d.ts @@ -0,0 +1,24 @@ +import type { Devices, Market, MaxInt, PlaybackState, Queue, RecentlyPlayedTracksPage } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +interface QueryRange { + timestamp: number; + type: "before" | "after"; +} +export default class PlayerEndpoints extends EndpointsBase { + getPlaybackState(market?: Market, additional_types?: string): Promise; + getAvailableDevices(): Promise; + getCurrentlyPlayingTrack(market?: Market, additional_types?: string): Promise; + getRecentlyPlayedTracks(limit?: MaxInt<50>, queryRange?: QueryRange): Promise; + getUsersQueue(): Promise; + transferPlayback(device_ids: string[], play?: boolean): Promise; + startResumePlayback(device_id: string, context_uri?: string, uris?: string[], offset?: object, positionMs?: number): Promise; + pausePlayback(device_id: string): Promise; + skipToNext(device_id: string): Promise; + skipToPrevious(device_id: string): Promise; + seekToPosition(position_ms: number, device_id?: string): Promise; + setRepeatMode(state: 'track' | 'context' | 'off', device_id?: string): Promise; + setPlaybackVolume(volume_percent: number, device_id?: string): Promise; + togglePlaybackShuffle(state: boolean, device_id?: string): Promise; + addItemToPlaybackQueue(uri: string, device_id?: string): Promise; +} +export {}; diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlayerEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlayerEndpoints.js new file mode 100644 index 0000000..ec937df --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlayerEndpoints.js @@ -0,0 +1,79 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const EndpointsBase_js_1 = __importDefault(require("./EndpointsBase.js")); +class PlayerEndpoints extends EndpointsBase_js_1.default { + getPlaybackState(market, additional_types) { + const params = this.paramsFor({ market, additional_types }); + return this.getRequest(`me/player${params}`); + } + getAvailableDevices() { + return this.getRequest('me/player/devices'); + } + getCurrentlyPlayingTrack(market, additional_types) { + const params = this.paramsFor({ market, additional_types }); + return this.getRequest(`me/player/currently-playing${params}`); + } + getRecentlyPlayedTracks(limit, queryRange) { + const paramObj = { limit }; + if (queryRange) { + if (queryRange.type === "before") { + paramObj.before = queryRange.timestamp; + } + else if (queryRange.type === "after") { + paramObj.after = queryRange.timestamp; + } + } + const params = this.paramsFor(paramObj); + return this.getRequest(`me/player/recently-played${params}`); + } + getUsersQueue() { + return this.getRequest('me/player/queue'); + } + async transferPlayback(device_ids, play) { + if (device_ids.length > 1) { + throw new Error("Although an array is accepted, only a single device_id is currently supported. Supplying more than one will return 400 Bad Request"); + } + await this.putRequest('me/player', { device_ids, play }); + } + async startResumePlayback(device_id, context_uri, uris, offset, positionMs) { + const params = this.paramsFor({ device_id }); + await this.putRequest(`me/player/play${params}`, { context_uri, uris, offset, positionMs }); + } + async pausePlayback(device_id) { + const params = this.paramsFor({ device_id }); + await this.putRequest(`me/player/pause${params}`); + } + async skipToNext(device_id) { + const params = this.paramsFor({ device_id }); + await this.postRequest(`me/player/next${params}`); + } + async skipToPrevious(device_id) { + const params = this.paramsFor({ device_id }); + await this.postRequest(`me/player/previous${params}`); + } + async seekToPosition(position_ms, device_id) { + const params = this.paramsFor({ position_ms, device_id }); + await this.putRequest(`me/player/seek${params}`); + } + async setRepeatMode(state, device_id) { + const params = this.paramsFor({ state, device_id }); + await this.putRequest(`me/player/repeat${params}`); + } + async setPlaybackVolume(volume_percent, device_id) { + const params = this.paramsFor({ volume_percent, device_id }); + await this.putRequest(`me/player/volume${params}`); + } + async togglePlaybackShuffle(state, device_id) { + const params = this.paramsFor({ state, device_id }); + await this.putRequest(`me/player/shuffle${params}`); + } + async addItemToPlaybackQueue(uri, device_id) { + const params = this.paramsFor({ uri, device_id }); + await this.postRequest(`me/player/queue${params}`); + } +} +exports.default = PlayerEndpoints; +//# sourceMappingURL=PlayerEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlayerEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlayerEndpoints.js.map new file mode 100644 index 0000000..94159b4 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlayerEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PlayerEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/PlayerEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAO/C,MAAqB,eAAgB,SAAQ,0BAAa;IAE/C,gBAAgB,CAAC,MAAe,EAAE,gBAAyB;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,UAAU,CAAgB,YAAY,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAEM,mBAAmB;QACtB,OAAO,IAAI,CAAC,UAAU,CAAU,mBAAmB,CAAC,CAAC;IACzD,CAAC;IAEM,wBAAwB,CAAC,MAAe,EAAE,gBAAyB;QACtE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,UAAU,CAAgB,8BAA8B,MAAM,EAAE,CAAC,CAAC;IAClF,CAAC;IAEM,uBAAuB,CAAC,KAAkB,EAAE,UAAuB;QACtE,MAAM,QAAQ,GAAQ,EAAE,KAAK,EAAE,CAAC;QAEhC,IAAI,UAAU,EAAE;YACZ,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC9B,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,CAAA;aACzC;iBAAM,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE;gBACpC,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAA;aACxC;SACJ;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,UAAU,CAA2B,4BAA4B,MAAM,EAAE,CAAC,CAAC;IAC3F,CAAC;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,UAAU,CAAQ,iBAAiB,CAAC,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,UAAoB,EAAE,IAAc;QAC9D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,oIAAoI,CAAC,CAAC;SACzJ;QACD,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,SAAiB,EAAE,WAAoB,EAAE,IAAe,EAAE,MAAe,EAAE,UAAmB;QAC3H,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAChG,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,SAAiB;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,SAAiB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,SAAiB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,WAAmB,EAAE,SAAkB;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,KAAkC,EAAE,SAAkB;QAC7E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,cAAsB,EAAE,SAAkB;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,KAAc,EAAE,SAAkB;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,GAAW,EAAE,SAAkB;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;QAClD,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;CACJ;AAtFD,kCAsFC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlaylistsEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlaylistsEndpoints.d.ts new file mode 100644 index 0000000..8760c8c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlaylistsEndpoints.d.ts @@ -0,0 +1,43 @@ +/// +import type { Market, Playlist, MaxInt, Page, Track, SnapshotReference, Image, PlaylistedTrack, QueryAdditionalTypes, TrackItem } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class PlaylistsEndpoints extends EndpointsBase { + getPlaylist(playlist_id: string, market?: Market, fields?: string, additional_types?: AdditionalTypes): Promise>; + getPlaylistItems(playlist_id: string, market?: Market, fields?: string, limit?: MaxInt<50>, offset?: number, additional_types?: AdditionalTypes): Promise>>; + changePlaylistDetails(playlist_id: string, request: ChangePlaylistDetailsRequest): Promise; + movePlaylistItems(playlist_id: string, range_start: number, range_length: number, moveToPosition: number): Promise; + updatePlaylistItems(playlist_id: string, request: UpdatePlaylistItemsRequest): Promise; + addItemsToPlaylist(playlist_id: string, uris?: string[], position?: number): Promise; + removeItemsFromPlaylist(playlist_id: string, request: RemovePlaylistItemsRequest): Promise; + getUsersPlaylists(user_id: string, limit?: MaxInt<50>, offset?: number): Promise>>; + createPlaylist(user_id: string, request: CreatePlaylistRequest): Promise>; + getPlaylistCoverImage(playlist_id: string): Promise; + addCustomPlaylistCoverImage(playlist_id: string, imageData: Buffer | HTMLImageElement | HTMLCanvasElement | string): Promise; + addCustomPlaylistCoverImageFromBase64String(playlist_id: string, base64EncodedJpeg: string): Promise; +} +interface RemovePlaylistItemsRequest { + tracks: Array<{ + uri: string; + }>; + snapshot_id?: string; +} +interface UpdatePlaylistItemsRequest { + uris?: string[]; + range_start?: number; + insert_before?: number; + range_length?: number; + snapshot_id?: string; +} +interface ChangePlaylistDetailsRequest { + name?: string; + public?: boolean; + collaborative?: boolean; + description?: string; +} +interface CreatePlaylistRequest { + name: string; + public?: boolean; + collaborative?: boolean; + description?: string; +} +export {}; diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlaylistsEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlaylistsEndpoints.js new file mode 100644 index 0000000..dc9a6e8 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlaylistsEndpoints.js @@ -0,0 +1,79 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const EndpointsBase_js_1 = __importDefault(require("./EndpointsBase.js")); +class PlaylistsEndpoints extends EndpointsBase_js_1.default { + getPlaylist(playlist_id, market, fields, additional_types) { + // TODO: better support for fields + const params = this.paramsFor({ market, fields, additional_types: additional_types?.join(',') }); + return this.getRequest(`playlists/${playlist_id}${params}`); + } + getPlaylistItems(playlist_id, market, fields, limit, offset, additional_types) { + // TODO: better support for fields + const params = this.paramsFor({ market, fields, limit, offset, additional_types: additional_types?.join(',') }); + return this.getRequest(`playlists/${playlist_id}/tracks${params}`); + } + async changePlaylistDetails(playlist_id, request) { + await this.putRequest(`playlists/${playlist_id}`, request); + } + movePlaylistItems(playlist_id, range_start, range_length, moveToPosition) { + return this.updatePlaylistItems(playlist_id, { + range_start, + range_length, + insert_before: moveToPosition + }); + } + updatePlaylistItems(playlist_id, request) { + return this.putRequest(`playlists/${playlist_id}/tracks`, request); + } + async addItemsToPlaylist(playlist_id, uris, position) { + await this.postRequest(`playlists/${playlist_id}/tracks`, { position, uris: uris }); + } + async removeItemsFromPlaylist(playlist_id, request) { + await this.deleteRequest(`playlists/${playlist_id}/tracks`, request); + } + getUsersPlaylists(user_id, limit, offset) { + const params = this.paramsFor({ limit, offset }); + return this.getRequest(`users/${user_id}/playlists${params}`); + } + createPlaylist(user_id, request) { + return this.postRequest(`users/${user_id}/playlists`, request); + } + getPlaylistCoverImage(playlist_id) { + return this.getRequest(`playlists/${playlist_id}/images`); + } + async addCustomPlaylistCoverImage(playlist_id, imageData) { + let base64EncodedJpeg = ""; + if (imageData instanceof Buffer) { + base64EncodedJpeg = imageData.toString("base64"); + } + else if (imageData instanceof HTMLCanvasElement) { + base64EncodedJpeg = imageData.toDataURL("image/jpeg").split(';base64,')[1]; + } + else if (imageData instanceof HTMLImageElement) { + const canvas = document.createElement("canvas"); + canvas.width = imageData.width; + canvas.height = imageData.height; + const ctx = canvas.getContext("2d"); + if (!ctx) { + throw new Error("Could not get canvas context"); + } + ctx.drawImage(imageData, 0, 0); + base64EncodedJpeg = canvas.toDataURL("image/jpeg").split(';base64,')[1]; + } + else if (typeof imageData === "string") { + base64EncodedJpeg = imageData; + } + else { + throw new Error("ImageData must be a Buffer, HTMLImageElement, HTMLCanvasElement, or string containing a base64 encoded jpeg"); + } + await this.addCustomPlaylistCoverImageFromBase64String(playlist_id, base64EncodedJpeg); + } + async addCustomPlaylistCoverImageFromBase64String(playlist_id, base64EncodedJpeg) { + await this.putRequest(`playlists/${playlist_id}/images`, base64EncodedJpeg, "image/jpeg"); + } +} +exports.default = PlaylistsEndpoints; +//# sourceMappingURL=PlaylistsEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlaylistsEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlaylistsEndpoints.js.map new file mode 100644 index 0000000..4bfe4e6 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/PlaylistsEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PlaylistsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/PlaylistsEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,kBAAmB,SAAQ,0BAAa;IAElD,WAAW,CACd,WAAmB,EAAE,MAAe,EAAE,MAAe,EAAE,gBAAkC;QAEzF,kCAAkC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjG,OAAO,IAAI,CAAC,UAAU,CAAkE,aAAa,WAAW,GAAG,MAAM,EAAE,CAAC,CAAC;IACjI,CAAC;IAEM,gBAAgB,CACnB,WAAmB,EAAE,MAAe,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe,EAAE,gBAAkC;QAE9H,kCAAkC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChH,OAAO,IAAI,CAAC,UAAU,CAA+E,aAAa,WAAW,UAAU,MAAM,EAAE,CAAC,CAAC;IACrJ,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,WAAmB,EAAE,OAAqC;QACzF,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAEM,iBAAiB,CAAC,WAAmB,EAAE,WAAmB,EAAE,YAAoB,EAAE,cAAsB;QAC3G,OAAO,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE;YACzC,WAAW;YACX,YAAY;YACZ,aAAa,EAAE,cAAc;SAChC,CAAC,CAAC;IACP,CAAC;IAEM,mBAAmB,CAAC,WAAmB,EAAE,OAAmC;QAC/E,OAAO,IAAI,CAAC,UAAU,CAAoB,aAAa,WAAW,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,WAAmB,EAAE,IAAe,EAAE,QAAiB;QACnF,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,WAAW,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACxF,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAAC,WAAmB,EAAE,OAAmC;QACzF,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,WAAW,SAAS,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAEM,iBAAiB,CAAC,OAAe,EAAE,KAAkB,EAAE,MAAe;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,UAAU,CAAiB,SAAS,OAAO,aAAa,MAAM,EAAE,CAAC,CAAC;IAClF,CAAC;IAEM,cAAc,CAAC,OAAe,EAAE,OAA8B;QACjE,OAAO,IAAI,CAAC,WAAW,CAAW,SAAS,OAAO,YAAY,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAEM,qBAAqB,CAAC,WAAmB;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAU,aAAa,WAAW,SAAS,CAAC,CAAC;IACvE,CAAC;IAEM,KAAK,CAAC,2BAA2B,CAAC,WAAmB,EAAE,SAAiE;QAC3H,IAAI,iBAAiB,GAAW,EAAE,CAAC;QAEnC,IAAI,SAAS,YAAY,MAAM,EAAE;YAC7B,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACpD;aAAM,IAAI,SAAS,YAAY,iBAAiB,EAAE;YAC/C,iBAAiB,GAAG,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9E;aAAM,IAAI,SAAS,YAAY,gBAAgB,EAAE;YAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;YAC/B,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;YACjC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG,EAAE;gBACN,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;aACnD;YACD,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3E;aAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACtC,iBAAiB,GAAG,SAAS,CAAC;SACjC;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,6GAA6G,CAAC,CAAC;SAClI;QAED,MAAM,IAAI,CAAC,2CAA2C,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC3F,CAAC;IAEM,KAAK,CAAC,2CAA2C,CAAC,WAAmB,EAAE,iBAAyB;QACnG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,WAAW,SAAS,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC;IAC9F,CAAC;CACJ;AApFD,qCAoFC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/RecommendationsEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/RecommendationsEndpoints.d.ts new file mode 100644 index 0000000..ddd7151 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/RecommendationsEndpoints.d.ts @@ -0,0 +1,69 @@ +import type { Genres, Track } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class RecommendationsEndpoints extends EndpointsBase { + get(request: RecommendationsRequestRequiredArguments | RecommendationsRequest): Promise; + genreSeeds(): Promise; +} +export interface RecommendationsRequestRequiredArguments { + seed_artists?: string[]; + seed_genres?: string[]; + seed_tracks?: string[]; +} +export interface RecommendationsRequest extends RecommendationsRequestRequiredArguments { + limit?: number; + market?: string; + min_acousticness?: number; + max_acousticness?: number; + target_acousticness?: number; + min_danceability?: number; + max_danceability?: number; + target_danceability?: number; + min_duration_ms?: number; + max_duration_ms?: number; + target_duration_ms?: number; + min_energy?: number; + max_energy?: number; + target_energy?: number; + min_instrumentalness?: number; + max_instrumentalness?: number; + target_instrumentalness?: number; + min_key?: number; + max_key?: number; + target_key?: number; + min_liveness?: number; + max_liveness?: number; + target_liveness?: number; + min_loudness?: number; + max_loudness?: number; + target_loudness?: number; + min_mode?: number; + max_mode?: number; + target_mode?: number; + min_popularity?: number; + max_popularity?: number; + target_popularity?: number; + min_speechiness?: number; + max_speechiness?: number; + target_speechiness?: number; + min_tempo?: number; + max_tempo?: number; + target_tempo?: number; + min_time_signature?: number; + max_time_signature?: number; + target_time_signature?: number; + min_valence?: number; + max_valence?: number; + target_valence?: number; +} +export interface RecommendationsResponse { + seeds: RecommendationSeed[]; + tracks: Track[]; +} +export interface RecommendationSeed { + id: string; + href: string; + type: string; + initialPoolSize: number; + afterFilteringSize: number; + afterRelinkingSize: number; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/RecommendationsEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/RecommendationsEndpoints.js new file mode 100644 index 0000000..9085a6a --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/RecommendationsEndpoints.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const EndpointsBase_js_1 = __importDefault(require("./EndpointsBase.js")); +class RecommendationsEndpoints extends EndpointsBase_js_1.default { + get(request) { + const params = this.paramsFor(request); + return this.getRequest(`recommendations${params}`); + } + genreSeeds() { + return this.getRequest('recommendations/available-genre-seeds'); + } +} +exports.default = RecommendationsEndpoints; +//# sourceMappingURL=RecommendationsEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/RecommendationsEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/RecommendationsEndpoints.js.map new file mode 100644 index 0000000..41b2097 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/RecommendationsEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"RecommendationsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/RecommendationsEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,wBAAyB,SAAQ,0BAAa;IACxD,GAAG,CAAC,OAAyE;QAChF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CAA0B,kBAAkB,MAAM,EAAE,CAAC,CAAC;IAChF,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,UAAU,CAAS,uCAAuC,CAAC,CAAC;IAC5E,CAAC;CACJ;AATD,2CASC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/SearchEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/SearchEndpoints.d.ts new file mode 100644 index 0000000..71fcb99 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/SearchEndpoints.d.ts @@ -0,0 +1,8 @@ +import type { ItemTypes, Market, MaxInt, SearchResults } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export interface SearchExecutionFunction { + (q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise>; +} +export default class SearchEndpoints extends EndpointsBase { + execute(q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise>; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/SearchEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/SearchEndpoints.js new file mode 100644 index 0000000..06102d7 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/SearchEndpoints.js @@ -0,0 +1,14 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const EndpointsBase_js_1 = __importDefault(require("./EndpointsBase.js")); +class SearchEndpoints extends EndpointsBase_js_1.default { + async execute(q, type, market, limit, offset, include_external) { + const params = this.paramsFor({ q, type, market, limit, offset, include_external }); + return await this.getRequest(`search${params}`); + } +} +exports.default = SearchEndpoints; +//# sourceMappingURL=SearchEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/SearchEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/SearchEndpoints.js.map new file mode 100644 index 0000000..c8ec11d --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/SearchEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SearchEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/SearchEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAM/C,MAAqB,eAAgB,SAAQ,0BAAa;IAC/C,KAAK,CAAC,OAAO,CAAuC,CAAS,EAAE,IAAO,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe,EAAE,gBAAyB;QAC1J,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACpF,OAAO,MAAM,IAAI,CAAC,UAAU,CAAmB,SAAS,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC;CACJ;AALD,kCAKC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ShowsEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ShowsEndpoints.d.ts new file mode 100644 index 0000000..41b64a4 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ShowsEndpoints.d.ts @@ -0,0 +1,7 @@ +import type { Market, Show, MaxInt, Page, SimplifiedEpisode } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class ShowsEndpoints extends EndpointsBase { + get(id: string, market: Market): Promise; + get(ids: string[], market: Market): Promise; + episodes(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ShowsEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ShowsEndpoints.js new file mode 100644 index 0000000..fe5565d --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ShowsEndpoints.js @@ -0,0 +1,24 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const EndpointsBase_js_1 = __importDefault(require("./EndpointsBase.js")); +class ShowsEndpoints extends EndpointsBase_js_1.default { + async get(idOrIds, market) { + if (typeof idOrIds === 'string') { + const params = this.paramsFor({ market }); + return this.getRequest(`shows/${idOrIds}${params}`); + } + // TODO: only returns 50, validate here + const params = this.paramsFor({ ids: idOrIds, market }); + const response = await this.getRequest(`shows${params}`); + return response.shows; + } + episodes(id, market, limit, offset) { + const params = this.paramsFor({ market, limit, offset }); + return this.getRequest(`shows/${id}/episodes${params}`); + } +} +exports.default = ShowsEndpoints; +//# sourceMappingURL=ShowsEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ShowsEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ShowsEndpoints.js.map new file mode 100644 index 0000000..4b4438e --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/ShowsEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ShowsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ShowsEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,cAAe,SAAQ,0BAAa;IAI9C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAc;QACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;YACzC,OAAO,IAAI,CAAC,UAAU,CAAO,SAAS,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SAC7D;QAED,uCAAuC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAQ,QAAQ,MAAM,EAAE,CAAC,CAAC;QAChE,OAAO,QAAQ,CAAC,KAAK,CAAC;IAC1B,CAAC;IAEM,QAAQ,CAAC,EAAU,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACxD,OAAO,IAAI,CAAC,UAAU,CAA0B,SAAS,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;CACJ;AApBD,iCAoBC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/TracksEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/TracksEndpoints.d.ts new file mode 100644 index 0000000..5a2811c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/TracksEndpoints.d.ts @@ -0,0 +1,9 @@ +import type { Market, Track, AudioFeatures, AudioAnalysis } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class TracksEndpoints extends EndpointsBase { + get(id: string, market?: Market): Promise; + get(ids: string[], market?: Market): Promise; + audioFeatures(id: string): Promise; + audioFeatures(ids: string[]): Promise; + audioAnalysis(id: string): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/TracksEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/TracksEndpoints.js new file mode 100644 index 0000000..ff23325 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/TracksEndpoints.js @@ -0,0 +1,31 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const EndpointsBase_js_1 = __importDefault(require("./EndpointsBase.js")); +class TracksEndpoints extends EndpointsBase_js_1.default { + async get(idOrIds, market) { + if (typeof idOrIds === 'string') { + const params = this.paramsFor({ market }); + return this.getRequest(`tracks/${idOrIds}${params}`); + } + const params = this.paramsFor({ ids: idOrIds, market }); + // TODO: only returns top 20, validate here + const response = await this.getRequest(`tracks${params}`); + return response.tracks; + } + async audioFeatures(idOrIds) { + if (typeof idOrIds === 'string') { + return this.getRequest(`audio-features/${idOrIds}`); + } + const params = this.paramsFor({ ids: idOrIds }); + const response = await this.getRequest(`audio-features${params}`); + return response.audio_features; + } + audioAnalysis(id) { + return this.getRequest(`audio-analysis/${id}`); + } +} +exports.default = TracksEndpoints; +//# sourceMappingURL=TracksEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/TracksEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/TracksEndpoints.js.map new file mode 100644 index 0000000..4a7e10a --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/TracksEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TracksEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/TracksEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,eAAgB,SAAQ,0BAAa;IAI/C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAQ,UAAU,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SAC/D;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAS,SAAS,MAAM,EAAE,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;IAIM,KAAK,CAAC,aAAa,CAAC,OAA0B;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,OAAO,IAAI,CAAC,UAAU,CAAgB,kBAAkB,OAAO,EAAE,CAAC,CAAC;SACtE;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAA0B,iBAAiB,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,QAAQ,CAAC,cAAc,CAAC;IACnC,CAAC;IAEM,aAAa,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAgB,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;CAEJ;AA/BD,kCA+BC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/UsersEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/UsersEndpoints.d.ts new file mode 100644 index 0000000..613633e --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/UsersEndpoints.d.ts @@ -0,0 +1,5 @@ +import type { User } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class UsersEndpoints extends EndpointsBase { + profile(userId: string): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/UsersEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/UsersEndpoints.js new file mode 100644 index 0000000..5799b6f --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/UsersEndpoints.js @@ -0,0 +1,13 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const EndpointsBase_js_1 = __importDefault(require("./EndpointsBase.js")); +class UsersEndpoints extends EndpointsBase_js_1.default { + profile(userId) { + return this.getRequest(`users/${userId}`); + } +} +exports.default = UsersEndpoints; +//# sourceMappingURL=UsersEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/UsersEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/UsersEndpoints.js.map new file mode 100644 index 0000000..f3f787e --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/endpoints/UsersEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UsersEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/UsersEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,cAAe,SAAQ,0BAAa;IAE9C,OAAO,CAAC,MAAc;QACzB,OAAO,IAAI,CAAC,UAAU,CAAO,SAAS,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;CACJ;AALD,iCAKC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/ConsoleLoggingErrorHandler.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/ConsoleLoggingErrorHandler.d.ts new file mode 100644 index 0000000..12f966d --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/ConsoleLoggingErrorHandler.d.ts @@ -0,0 +1,4 @@ +import type { IHandleErrors } from "../types.js"; +export default class ConsoleLoggingErrorHandler implements IHandleErrors { + handleErrors(error: any): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/ConsoleLoggingErrorHandler.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/ConsoleLoggingErrorHandler.js new file mode 100644 index 0000000..3a1945b --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/ConsoleLoggingErrorHandler.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class ConsoleLoggingErrorHandler { + async handleErrors(error) { + console.log(error); + return false; + } +} +exports.default = ConsoleLoggingErrorHandler; +//# sourceMappingURL=ConsoleLoggingErrorHandler.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/ConsoleLoggingErrorHandler.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/ConsoleLoggingErrorHandler.js.map new file mode 100644 index 0000000..79ffd61 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/ConsoleLoggingErrorHandler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ConsoleLoggingErrorHandler.js","sourceRoot":"","sources":["../../../src/errorhandling/ConsoleLoggingErrorHandler.ts"],"names":[],"mappings":";;AAEA,MAAqB,0BAA0B;IACpC,KAAK,CAAC,YAAY,CAAC,KAAU;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AALD,6CAKC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/NoOpErrorHandler.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/NoOpErrorHandler.d.ts new file mode 100644 index 0000000..1a4b452 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/NoOpErrorHandler.d.ts @@ -0,0 +1,4 @@ +import type { IHandleErrors } from "../types.js"; +export default class NoOpErrorHandler implements IHandleErrors { + handleErrors(_: any): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/NoOpErrorHandler.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/NoOpErrorHandler.js new file mode 100644 index 0000000..475a3f8 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/NoOpErrorHandler.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class NoOpErrorHandler { + async handleErrors(_) { + return false; + } +} +exports.default = NoOpErrorHandler; +//# sourceMappingURL=NoOpErrorHandler.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/NoOpErrorHandler.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/NoOpErrorHandler.js.map new file mode 100644 index 0000000..f397c0b --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/errorhandling/NoOpErrorHandler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"NoOpErrorHandler.js","sourceRoot":"","sources":["../../../src/errorhandling/NoOpErrorHandler.ts"],"names":[],"mappings":";;AAEA,MAAqB,gBAAgB;IAC1B,KAAK,CAAC,YAAY,CAAC,CAAM;QAC5B,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAJD,mCAIC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/index.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/index.d.ts new file mode 100644 index 0000000..fbf7796 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/index.d.ts @@ -0,0 +1,18 @@ +import { SpotifyApi } from "./SpotifyApi.js"; +import AuthorizationCodeWithPKCEStrategy from "./auth/AuthorizationCodeWithPKCEStrategy.js"; +import ClientCredentialsStrategy from "./auth/ClientCredentialsStrategy.js"; +import IAuthStrategy from "./auth/IAuthStrategy.js"; +import InMemoryCachingStrategy from "./caching/InMemoryCachingStrategy.js"; +import LocalStorageCachingStrategy from "./caching/LocalStorageCachingStrategy.js"; +import { ICacheStore } from "./caching/ICacheStore.js"; +import GenericCache from "./caching/GenericCache.js"; +import ConsoleLoggingErrorHandler from "./errorhandling/ConsoleLoggingErrorHandler.js"; +import NoOpErrorHandler from "./errorhandling/NoOpErrorHandler.js"; +import DocumentLocationRedirectionStrategy from "./redirection/DocumentLocationRedirectionStrategy.js"; +import DefaultResponseValidator from "./responsevalidation/DefaultResponseValidator.js"; +import DefaultResponseDeserializer from "./serialization/DefaultResponseDeserializer.js"; +import { Scopes } from "./Scopes.js"; +import { emptyAccessToken } from "./auth/IAuthStrategy.js"; +export { SpotifyApi, AuthorizationCodeWithPKCEStrategy, ClientCredentialsStrategy, InMemoryCachingStrategy, LocalStorageCachingStrategy, GenericCache, ConsoleLoggingErrorHandler, NoOpErrorHandler, DocumentLocationRedirectionStrategy, DefaultResponseValidator, DefaultResponseDeserializer, Scopes, emptyAccessToken }; +export type * from "./types.js"; +export type { IAuthStrategy, ICacheStore, }; diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/index.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/index.js new file mode 100644 index 0000000..8a61bc1 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/index.js @@ -0,0 +1,33 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.emptyAccessToken = exports.Scopes = exports.DefaultResponseDeserializer = exports.DefaultResponseValidator = exports.DocumentLocationRedirectionStrategy = exports.NoOpErrorHandler = exports.ConsoleLoggingErrorHandler = exports.GenericCache = exports.LocalStorageCachingStrategy = exports.InMemoryCachingStrategy = exports.ClientCredentialsStrategy = exports.AuthorizationCodeWithPKCEStrategy = exports.SpotifyApi = void 0; +const SpotifyApi_js_1 = require("./SpotifyApi.js"); +Object.defineProperty(exports, "SpotifyApi", { enumerable: true, get: function () { return SpotifyApi_js_1.SpotifyApi; } }); +const AuthorizationCodeWithPKCEStrategy_js_1 = __importDefault(require("./auth/AuthorizationCodeWithPKCEStrategy.js")); +exports.AuthorizationCodeWithPKCEStrategy = AuthorizationCodeWithPKCEStrategy_js_1.default; +const ClientCredentialsStrategy_js_1 = __importDefault(require("./auth/ClientCredentialsStrategy.js")); +exports.ClientCredentialsStrategy = ClientCredentialsStrategy_js_1.default; +const InMemoryCachingStrategy_js_1 = __importDefault(require("./caching/InMemoryCachingStrategy.js")); +exports.InMemoryCachingStrategy = InMemoryCachingStrategy_js_1.default; +const LocalStorageCachingStrategy_js_1 = __importDefault(require("./caching/LocalStorageCachingStrategy.js")); +exports.LocalStorageCachingStrategy = LocalStorageCachingStrategy_js_1.default; +const GenericCache_js_1 = __importDefault(require("./caching/GenericCache.js")); +exports.GenericCache = GenericCache_js_1.default; +const ConsoleLoggingErrorHandler_js_1 = __importDefault(require("./errorhandling/ConsoleLoggingErrorHandler.js")); +exports.ConsoleLoggingErrorHandler = ConsoleLoggingErrorHandler_js_1.default; +const NoOpErrorHandler_js_1 = __importDefault(require("./errorhandling/NoOpErrorHandler.js")); +exports.NoOpErrorHandler = NoOpErrorHandler_js_1.default; +const DocumentLocationRedirectionStrategy_js_1 = __importDefault(require("./redirection/DocumentLocationRedirectionStrategy.js")); +exports.DocumentLocationRedirectionStrategy = DocumentLocationRedirectionStrategy_js_1.default; +const DefaultResponseValidator_js_1 = __importDefault(require("./responsevalidation/DefaultResponseValidator.js")); +exports.DefaultResponseValidator = DefaultResponseValidator_js_1.default; +const DefaultResponseDeserializer_js_1 = __importDefault(require("./serialization/DefaultResponseDeserializer.js")); +exports.DefaultResponseDeserializer = DefaultResponseDeserializer_js_1.default; +const Scopes_js_1 = require("./Scopes.js"); +Object.defineProperty(exports, "Scopes", { enumerable: true, get: function () { return Scopes_js_1.Scopes; } }); +const IAuthStrategy_js_1 = require("./auth/IAuthStrategy.js"); +Object.defineProperty(exports, "emptyAccessToken", { enumerable: true, get: function () { return IAuthStrategy_js_1.emptyAccessToken; } }); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/index.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/index.js.map new file mode 100644 index 0000000..46aff6b --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,mDAA6C;AAiBzC,2FAjBK,0BAAU,OAiBL;AAhBd,uHAA4F;AAiBxF,4CAjBG,8CAAiC,CAiBH;AAhBrC,uGAA4E;AAiBxE,oCAjBG,sCAAyB,CAiBH;AAf7B,sGAA2E;AAgBvE,kCAhBG,oCAAuB,CAgBH;AAf3B,8GAAmF;AAgB/E,sCAhBG,wCAA2B,CAgBH;AAd/B,gFAAqD;AAejD,uBAfG,yBAAY,CAeH;AAdhB,kHAAuF;AAenF,qCAfG,uCAA0B,CAeH;AAd9B,8FAAmE;AAe/D,2BAfG,6BAAgB,CAeH;AAdpB,kIAAuG;AAenG,8CAfG,gDAAmC,CAeH;AAdvC,mHAAwF;AAepF,mCAfG,qCAAwB,CAeH;AAd5B,oHAAyF;AAerF,sCAfG,wCAA2B,CAeH;AAd/B,2CAAqC;AAejC,uFAfK,kBAAM,OAeL;AAdV,8DAA2D;AAevD,iGAfK,mCAAgB,OAeL"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/package.json b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/package.json new file mode 100644 index 0000000..5bbefff --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/package.json @@ -0,0 +1,3 @@ +{ + "type": "commonjs" +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/redirection/DocumentLocationRedirectionStrategy.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/redirection/DocumentLocationRedirectionStrategy.d.ts new file mode 100644 index 0000000..ae3d1ed --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/redirection/DocumentLocationRedirectionStrategy.d.ts @@ -0,0 +1,5 @@ +import type { IRedirectionStrategy } from "../types.js"; +export default class DocumentLocationRedirectionStrategy implements IRedirectionStrategy { + redirect(targetUrl: string | URL): Promise; + onReturnFromRedirect(): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/redirection/DocumentLocationRedirectionStrategy.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/redirection/DocumentLocationRedirectionStrategy.js new file mode 100644 index 0000000..b3197c0 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/redirection/DocumentLocationRedirectionStrategy.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class DocumentLocationRedirectionStrategy { + async redirect(targetUrl) { + document.location = targetUrl.toString(); + } + async onReturnFromRedirect() { + } +} +exports.default = DocumentLocationRedirectionStrategy; +//# sourceMappingURL=DocumentLocationRedirectionStrategy.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/redirection/DocumentLocationRedirectionStrategy.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/redirection/DocumentLocationRedirectionStrategy.js.map new file mode 100644 index 0000000..ea1d62e --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/redirection/DocumentLocationRedirectionStrategy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DocumentLocationRedirectionStrategy.js","sourceRoot":"","sources":["../../../src/redirection/DocumentLocationRedirectionStrategy.ts"],"names":[],"mappings":";;AAEA,MAAqB,mCAAmC;IAC7C,KAAK,CAAC,QAAQ,CAAC,SAAuB;QACzC,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,oBAAoB;IACjC,CAAC;CACJ;AAPD,sDAOC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/responsevalidation/DefaultResponseValidator.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/responsevalidation/DefaultResponseValidator.d.ts new file mode 100644 index 0000000..db555ed --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/responsevalidation/DefaultResponseValidator.d.ts @@ -0,0 +1,4 @@ +import type { IValidateResponses } from "../types.js"; +export default class DefaultResponseValidator implements IValidateResponses { + validateResponse(response: Response): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/responsevalidation/DefaultResponseValidator.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/responsevalidation/DefaultResponseValidator.js new file mode 100644 index 0000000..29ca0f1 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/responsevalidation/DefaultResponseValidator.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class DefaultResponseValidator { + async validateResponse(response) { + switch (response.status) { + case 401: + throw new Error("Bad or expired token. This can happen if the user revoked a token or the access token has expired. You should re-authenticate the user."); + case 403: + const body = await response.text(); + throw new Error(`Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here. Body: ${body}`); + case 429: + throw new Error("The app has exceeded its rate limits."); + default: + if (!response.status.toString().startsWith('20')) { + const body = await response.text(); + throw new Error(`Unrecognised response code: ${response.status} - ${response.statusText}. Body: ${body}`); + } + } + } +} +exports.default = DefaultResponseValidator; +//# sourceMappingURL=DefaultResponseValidator.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/responsevalidation/DefaultResponseValidator.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/responsevalidation/DefaultResponseValidator.js.map new file mode 100644 index 0000000..068804c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/responsevalidation/DefaultResponseValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DefaultResponseValidator.js","sourceRoot":"","sources":["../../../src/responsevalidation/DefaultResponseValidator.ts"],"names":[],"mappings":";;AAEA,MAAqB,wBAAwB;IAClC,KAAK,CAAC,gBAAgB,CAAC,QAAkB;QAE5C,QAAQ,QAAQ,CAAC,MAAM,EAAE;YACrB,KAAK,GAAG;gBACJ,MAAM,IAAI,KAAK,CAAC,yIAAyI,CAAC,CAAC;YAC/J,KAAK,GAAG;gBACJ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,6IAA6I,IAAI,EAAE,CAAC,CAAC;YACzK,KAAK,GAAG;gBACJ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC7D;gBACI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;oBAC9C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,UAAU,WAAW,IAAI,EAAE,CAAC,CAAC;iBAC7G;SACR;IAEL,CAAC;CACJ;AAnBD,2CAmBC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/serialization/DefaultResponseDeserializer.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/serialization/DefaultResponseDeserializer.d.ts new file mode 100644 index 0000000..eeef96b --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/serialization/DefaultResponseDeserializer.d.ts @@ -0,0 +1,4 @@ +import type { IResponseDeserializer } from "../types.js"; +export default class DefaultResponseDeserializer implements IResponseDeserializer { + deserialize(response: Response): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/serialization/DefaultResponseDeserializer.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/serialization/DefaultResponseDeserializer.js new file mode 100644 index 0000000..8d84039 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/serialization/DefaultResponseDeserializer.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class DefaultResponseDeserializer { + async deserialize(response) { + const text = await response.text(); + if (text.length > 0) { + const json = JSON.parse(text); + return json; + } + return null; + } +} +exports.default = DefaultResponseDeserializer; +//# sourceMappingURL=DefaultResponseDeserializer.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/serialization/DefaultResponseDeserializer.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/serialization/DefaultResponseDeserializer.js.map new file mode 100644 index 0000000..4f7eb1c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/serialization/DefaultResponseDeserializer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DefaultResponseDeserializer.js","sourceRoot":"","sources":["../../../src/serialization/DefaultResponseDeserializer.ts"],"names":[],"mappings":";;AAEA,MAAqB,2BAA2B;IACrC,KAAK,CAAC,WAAW,CAAc,QAAkB;QACpD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO,IAAmB,CAAC;SAC9B;QAED,OAAO,IAAmB,CAAC;IAC/B,CAAC;CACJ;AAXD,8CAWC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/types.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/types.d.ts new file mode 100644 index 0000000..105c49c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/types.d.ts @@ -0,0 +1,626 @@ +export type RequestImplementation = (input: RequestInfo | URL, init?: RequestInit | undefined) => Promise; +export interface SdkOptions { + fetch?: RequestImplementation; + beforeRequest?: (url: string, options: RequestInit) => void; + afterRequest?: (url: string, options: RequestInit, response: Response) => void; + deserializer?: IResponseDeserializer; + responseValidator?: IValidateResponses; + errorHandler?: IHandleErrors; + redirectionStrategy?: IRedirectionStrategy; + cachingStrategy?: ICachingStrategy; +} +export interface AuthenticationResponse { + authenticated: boolean; + accessToken: AccessToken; +} +export interface SdkConfiguration extends SdkOptions { + fetch: RequestImplementation; + beforeRequest: (url: string, options: RequestInit) => void; + afterRequest: (url: string, options: RequestInit, response: Response) => void; + deserializer: IResponseDeserializer; + responseValidator: IValidateResponses; + errorHandler: IHandleErrors; + redirectionStrategy: IRedirectionStrategy; + cachingStrategy: ICachingStrategy; +} +export interface IRedirectionStrategy { + redirect(targetUrl: string | URL): Promise; + onReturnFromRedirect(): Promise; +} +export interface IHandleErrors { + handleErrors(error: any): Promise; +} +export interface IValidateResponses { + validateResponse: (response: Response) => Promise; +} +export interface IResponseDeserializer { + deserialize(response: Response): Promise; +} +export interface ICachingStrategy { + getOrCreate(cacheKey: string, createFunction: () => Promise, updateFunction?: (item: T) => Promise): Promise; + get(cacheKey: string): Promise; + setCacheItem(cacheKey: string, item: T & ICachable): void; + remove(cacheKey: string): void; +} +export interface ICachable { + expires?: number; + expiresOnAccess?: boolean; +} +export type MaxInt = number extends T ? number : _Range; +export type _Range = R['length'] extends T ? R[number] | T : _Range; +export type ItemTypes = 'artist' | 'album' | 'playlist' | 'track' | 'show' | 'episode' | 'audiobook'; +export type Market = "AD" | "AE" | "AG" | "AL" | "AM" | "AO" | "AR" | "AT" | "AU" | "AZ" | "BA" | "BB" | "BD" | "BE" | "BF" | "BG" | "BH" | "BI" | "BJ" | "BN" | "BO" | "BR" | "BS" | "BT" | "BW" | "BY" | "BZ" | "CA" | "CD" | "CG" | "CH" | "CI" | "CL" | "CM" | "CO" | "CR" | "CV" | "CW" | "CY" | "CZ" | "DE" | "DJ" | "DK" | "DM" | "DO" | "DZ" | "EC" | "EE" | "EG" | "ES" | "ET" | "FI" | "FJ" | "FM" | "FR" | "GA" | "GB" | "GD" | "GE" | "GH" | "GM" | "GN" | "GQ" | "GR" | "GT" | "GW" | "GY" | "HK" | "HN" | "HR" | "HT" | "HU" | "ID" | "IE" | "IL" | "IN" | "IQ" | "IS" | "IT" | "JM" | "JO" | "JP" | "KE" | "KG" | "KH" | "KI" | "KM" | "KN" | "KR" | "KW" | "KZ" | "LA" | "LB" | "LC" | "LI" | "LK" | "LR" | "LS" | "LT" | "LU" | "LV" | "LY" | "MA" | "MC" | "MD" | "ME" | "MG" | "MH" | "MK" | "ML" | "MN" | "MO" | "MR" | "MT" | "MU" | "MV" | "MW" | "MX" | "MY" | "MZ" | "NA" | "NE" | "NG" | "NI" | "NL" | "NO" | "NP" | "NR" | "NZ" | "OM" | "PA" | "PE" | "PG" | "PH" | "PK" | "PL" | "PS" | "PT" | "PW" | "PY" | "QA" | "RO" | "RS" | "RW" | "SA" | "SB" | "SC" | "SE" | "SG" | "SI" | "SK" | "SL" | "SM" | "SN" | "SR" | "ST" | "SV" | "SZ" | "TD" | "TG" | "TH" | "TJ" | "TL" | "TN" | "TO" | "TR" | "TT" | "TV" | "TW" | "TZ" | "UA" | "UG" | "US" | "UY" | "UZ" | "VC" | "VE" | "VN" | "VU" | "WS" | "XK" | "ZA" | "ZM" | "ZW"; +export type CountryCodeA2 = 'AD' | 'AE' | 'AF' | 'AG' | 'AI' | 'AL' | 'AM' | 'AO' | 'AQ' | 'AR' | 'AS' | 'AT' | 'AU' | 'AW' | 'AX' | 'AZ' | 'BA' | 'BB' | 'BD' | 'BE' | 'BF' | 'BG' | 'BH' | 'BI' | 'BJ' | 'BL' | 'BM' | 'BN' | 'BO' | 'BQ' | 'BR' | 'BS' | 'BT' | 'BV' | 'BW' | 'BY' | 'BZ' | 'CA' | 'CC' | 'CD' | 'CF' | 'CG' | 'CH' | 'CI' | 'CK' | 'CL' | 'CM' | 'CN' | 'CO' | 'CR' | 'CU' | 'CV' | 'CW' | 'CX' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DK' | 'DM' | 'DO' | 'DZ' | 'EC' | 'EE' | 'EG' | 'EH' | 'ER' | 'ES' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FM' | 'FO' | 'FR' | 'GA' | 'GB' | 'GD' | 'GE' | 'GF' | 'GG' | 'GH' | 'GI' | 'GL' | 'GM' | 'GN' | 'GP' | 'GQ' | 'GR' | 'GS' | 'GT' | 'GU' | 'GW' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IE' | 'IL' | 'IM' | 'IN' | 'IO' | 'IQ' | 'IR' | 'IS' | 'IT' | 'JE' | 'JM' | 'JO' | 'JP' | 'KE' | 'KG' | 'KH' | 'KI' | 'KM' | 'KN' | 'KP' | 'KR' | 'KW' | 'KY' | 'KZ' | 'LA' | 'LB' | 'LC' | 'LI' | 'LK' | 'LR' | 'LS' | 'LT' | 'LU' | 'LV' | 'LY' | 'MA' | 'MC' | 'MD' | 'ME' | 'MF' | 'MG' | 'MH' | 'MK' | 'ML' | 'MM' | 'MN' | 'MO' | 'MP' | 'MQ' | 'MR' | 'MS' | 'MT' | 'MU' | 'MV' | 'MW' | 'MX' | 'MY' | 'MZ' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NL' | 'NO' | 'NP' | 'NR' | 'NU' | 'NZ' | 'OM' | 'PA' | 'PE' | 'PF' | 'PG' | 'PH' | 'PK' | 'PL' | 'PM' | 'PN' | 'PR' | 'PS' | 'PT' | 'PW' | 'PY' | 'QA' | 'RE' | 'RO' | 'RS' | 'RU' | 'RW' | 'SA' | 'SB' | 'SC' | 'SD' | 'SE' | 'SG' | 'SH' | 'SI' | 'SJ' | 'SK' | 'SL' | 'SM' | 'SN' | 'SO' | 'SR' | 'SS' | 'ST' | 'SV' | 'SX' | 'SY' | 'SZ' | 'TC' | 'TD' | 'TF' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TL' | 'TM' | 'TN' | 'TO' | 'TR' | 'TT' | 'TV' | 'TW' | 'TZ' | 'UA' | 'UG' | 'UM' | 'US' | 'UY' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'YE' | 'YT' | 'ZA' | 'ZM' | 'ZW'; +export type { RecommendationsRequest, RecommendationsRequestRequiredArguments, RecommendationsResponse, RecommendationSeed, } from './endpoints/RecommendationsEndpoints'; +export type QueryAdditionalTypes = ['episode']; +export type TrackItem = Track | Episode; +export interface AccessToken { + access_token: string; + token_type: string; + expires_in: number; + refresh_token: string; + expires?: number; +} +interface AlbumBase { + album_type: string; + available_markets: string[]; + copyrights: Copyright[]; + external_ids: ExternalIds; + external_urls: ExternalUrls; + genres: string[]; + href: string; + id: string; + images: Image[]; + label: string; + name: string; + popularity: number; + release_date: string; + release_date_precision: string; + restrictions?: Restrictions; + total_tracks: number; + type: string; + uri: string; +} +export interface SimplifiedAlbum extends AlbumBase { + album_group: string; + artists: SimplifiedArtist[]; +} +export interface SavedAlbum { + added_at: string; + album: Album; +} +export interface Album extends AlbumBase { + artists: Artist[]; + tracks: Page; +} +export interface Albums { + albums: Album[]; +} +export interface NewReleases { + albums: Page; +} +export interface Copyright { + text: string; + type: string; +} +export interface ExternalIds { + upc: string; +} +export interface Page { + href: string; + items: TItemType[]; + limit: number; + next: string | null; + offset: number; + previous: string | null; + total: number; +} +export interface PlaylistedTrack { + added_at: string; + added_by: AddedBy; + is_local: boolean; + primary_color: string; + track: Item; +} +export interface AddedBy { + external_urls: ExternalUrls; + href: string; + id: string; + type: string; + uri: string; +} +export interface LinkedFrom { + external_urls: ExternalUrls; + href: string; + id: string; + type: string; + uri: string; +} +export interface SimplifiedTrack { + artists: SimplifiedArtist[]; + available_markets: string[]; + disc_number: number; + duration_ms: number; + episode: boolean; + explicit: boolean; + external_urls: ExternalUrls; + href: string; + id: string; + is_local: boolean; + name: string; + preview_url: string | null; + track: boolean; + track_number: number; + type: string; + uri: string; + is_playable?: boolean; + linked_from?: LinkedFrom; + restrictions?: Restrictions; +} +export interface SavedTrack { + added_at: string; + track: Track; +} +export interface ExternalIds { + isrc: string; + ean: string; + upc: string; +} +export interface Track extends SimplifiedTrack { + album: SimplifiedAlbum; + external_ids: ExternalIds; + popularity: number; +} +export interface Tracks { + tracks: Track[]; +} +export interface SimplifiedArtist { + external_urls: ExternalUrls; + href: string; + id: string; + name: string; + type: string; + uri: string; +} +export interface Artist extends SimplifiedArtist { + followers: Followers; + genres: string[]; + images: Image[]; + popularity: number; +} +export interface Artists { + artists: Artist[]; +} +export interface FollowedArtists { + artists: Page; +} +export interface Followers { + href: string | null; + total: number; +} +export interface ExternalUrls { + spotify: string; +} +interface ResourceTypeToResultKey { + album: 'albums'; + artist: 'artists'; + track: 'tracks'; + playlist: 'playlists'; + show: 'shows'; + episode: 'episodes'; + audiobook: 'audiobooks'; +} +interface SearchResultsMap { + album: SimplifiedAlbum; + artist: Artist; + track: Track; + playlist: PlaylistBase; + show: SimplifiedShow; + episode: SimplifiedEpisode; + audiobook: SimplifiedAudiobook; +} +export type PartialSearchResult = { + [K in ItemTypes as ResourceTypeToResultKey[K]]?: Page; +}; +/** + * Makes all properties in SearchResults optional, unless the type T is a tuple (literal array / tuple) of SearchTypes. + */ +export type SearchResults = Pick extends infer R ? number extends T['length'] ? R : Required : never; +export interface ArtistSearchResult { + href: string; + items: ArtistSearchResultItem[]; +} +export interface ArtistSearchResultItem { + id: string; + name: string; + popularity: number; + genres: string[]; +} +export interface TopTracksResult { + tracks: Track[]; +} +export interface Image { + url: string; + height: number; + width: number; +} +export interface SimplifiedAudiobook { + authors: Author[]; + available_markets: string[]; + copyrights: Copyright[]; + description: string; + edition: string; + explicit: boolean; + external_urls: ExternalUrls; + href: string; + html_description: string; + id: string; + images: Image[]; + languages: string[]; + media_type: string; + name: string; + narrators: Narrator[]; + publisher: string; + total_chapters: number; + type: string; + uri: string; +} +export interface Audiobook extends SimplifiedAudiobook { + chapters: Page; +} +export interface Audiobooks { + audiobooks: Audiobook[]; +} +export interface Categories { + categories: Page; +} +export interface Episodes { + episodes: Episode[]; +} +export interface Genres { + genres: string[]; +} +export interface Markets { + markets: string[]; +} +export interface Shows { + shows: Show[]; +} +export interface Category { + href: string; + icons: Icon[]; + id: string; + name: string; +} +export interface Icon { + height?: number; + url: string; + width?: number; +} +export interface Author { + name: string; +} +export interface SimplifiedChapter { + id: string; + description: string; + chapter_number: number; + duration_ms: number; + explicit: boolean; + images: Image[]; + languages: string[]; + name: string; + audio_preview_url: string; + release_date: string; + release_date_precision: string; + resume_point: ResumePoint; + html_description: string; + available_markets: Market[]; + type: string; + uri: string; + external_urls: ExternalUrls; + href: string; + is_playable: boolean; + restrictions?: Restrictions; +} +export interface Chapters { + chapters: Chapter[]; +} +export interface Chapter extends SimplifiedChapter { + audiobook: SimplifiedAudiobook; +} +export interface Restrictions { + reason: string; +} +export interface ResumePoint { + fully_played: boolean; + resume_position_ms: number; +} +export interface Narrator { + name: string; +} +export interface SimplifiedEpisode { + audio_preview_url: string; + description: string; + html_description: string; + duration_ms: number; + explicit: boolean; + external_urls: ExternalUrls; + href: string; + id: string; + images: Image[]; + is_externally_hosted: boolean; + is_playable: boolean; + language: string; + languages: string[]; + name: string; + release_date: string; + release_date_precision: string; + resume_point: ResumePoint; + type: string; + uri: string; + restrictions: Restrictions; +} +export interface Episode extends SimplifiedEpisode { + show: SimplifiedShow; +} +export interface SavedEpisode { + added_at: string; + episode: Episode; +} +export interface SimplifiedShow { + available_markets: string[]; + copyrights: Copyright[]; + description: string; + html_description: string; + explicit: boolean; + external_urls: ExternalUrls; + href: string; + id: string; + images: Image[]; + is_externally_hosted: boolean; + languages: string[]; + media_type: string; + name: string; + publisher: string; + type: string; + uri: string; + total_episodes: number; +} +export interface SavedShow { + added_at: string; + show: SimplifiedShow; +} +export interface Show extends SimplifiedShow { + episodes: Page; +} +export interface SnapshotReference { + snapshot_id: string; +} +interface PlaylistBase { + collaborative: boolean; + description: string; + external_urls: ExternalUrls; + followers: Followers; + href: string; + id: string; + images: Image[]; + name: string; + owner: UserReference; + primary_color: string; + public: boolean; + snapshot_id: string; + type: string; + uri: string; +} +export interface Playlist extends PlaylistBase { + tracks: Page>; +} +export interface FeaturedPlaylists { + message: string; + playlists: Page; +} +export interface SimplifiedPlaylist extends PlaylistBase { + tracks: TrackReference | null; +} +export interface TrackReference { + href: string; + total: number; +} +export interface UserReference { + display_name: string; + external_urls: ExternalUrls; + href: string; + id: string; + type: string; + uri: string; +} +export interface User { + display_name: string; + email: string; + external_urls: ExternalUrls; + followers: Followers; + href: string; + id: string; + images: Image[]; + type: string; + uri: string; +} +export interface UserProfile extends User { + country: string; + explicit_content: { + filter_enabled: boolean; + filter_locked: boolean; + }; + product: string; +} +export interface AudioFeatures { + danceability: number; + energy: number; + key: number; + loudness: number; + mode: number; + speechiness: number; + acousticness: number; + instrumentalness: number; + liveness: number; + valence: number; + tempo: number; + type: string; + id: string; + uri: string; + track_href: string; + analysis_url: string; + duration_ms: number; + time_signature: number; +} +export interface AudioFeaturesCollection { + audio_features: AudioFeatures[]; +} +export interface AudioAnalysis { + meta: Meta; + track: TrackAnalysis; + bars: Bar[]; + beats: Beat[]; + sections: Section[]; + segments: Segment[]; + tatums: Tatum[]; +} +export interface Meta { + analyzer_version: string; + platform: string; + detailed_status: string; + status_code: number; + timestamp: number; + analysis_time: number; + input_process: string; +} +export interface TrackAnalysis { + num_samples: number; + duration: number; + sample_md5: string; + offset_seconds: number; + window_seconds: number; + analysis_sample_rate: number; + analysis_channels: number; + end_of_fade_in: number; + start_of_fade_out: number; + loudness: number; + tempo: number; + tempo_confidence: number; + time_signature: number; + time_signature_confidence: number; + key: number; + key_confidence: number; + mode: number; + mode_confidence: number; + codestring: string; + code_version: number; + echoprintstring: string; + echoprint_version: number; + synchstring: string; + synch_version: number; + rhythmstring: string; + rhythm_version: number; +} +export interface Bar { + start: number; + duration: number; + confidence: number; +} +export interface Beat { + start: number; + duration: number; + confidence: number; +} +export interface Section { + start: number; + duration: number; + confidence: number; + loudness: number; + tempo: number; + tempo_confidence: number; + key: number; + key_confidence: number; + mode: number; + mode_confidence: number; + time_signature: number; + time_signature_confidence: number; +} +export interface Segment { + start: number; + duration: number; + confidence: number; + loudness_start: number; + loudness_max: number; + loudness_max_time: number; + loudness_end: number; + pitches: number[]; + timbre: number[]; +} +export interface Tatum { + start: number; + duration: number; + confidence: number; +} +export interface PlaybackState { + device: Device; + repeat_state: string; + shuffle_state: boolean; + context: Context | null; + timestamp: number; + progress_ms: number; + is_playing: boolean; + item: TrackItem; + currently_playing_type: string; + actions: Actions; +} +export interface Device { + id: string | null; + is_active: boolean; + is_private_session: boolean; + is_restricted: boolean; + name: string; + type: string; + volume_percent: number | null; +} +export interface Devices { + devices: Device[]; +} +export interface Context { + type: string; + href: string; + external_urls: ExternalUrls; + uri: string; +} +export interface Actions { + interrupting_playback?: boolean; + pausing?: boolean; + resuming?: boolean; + seeking?: boolean; + skipping_next?: boolean; + skipping_prev?: boolean; + toggling_repeat_context?: boolean; + toggling_shuffle?: boolean; + toggling_repeat_track?: boolean; + transferring_playback?: boolean; +} +export interface RecentlyPlayedTracksPage { + href: string; + limit: number; + next: string | null; + cursors: { + after: string; + before: string; + }; + total: number; + items: PlayHistory[]; +} +export interface PlayHistory { + track: Track; + played_at: string; + context: Context; +} +export interface Queue { + currently_playing: TrackItem | null; + queue: TrackItem[]; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/types.js b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/types.js new file mode 100644 index 0000000..37258f5 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/types.js @@ -0,0 +1,4 @@ +"use strict"; +// Configuration types +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/cjs/types.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/types.js.map new file mode 100644 index 0000000..6e61c84 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/cjs/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA,sBAAsB"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/Scopes.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/Scopes.d.ts new file mode 100644 index 0000000..5bd60d8 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/Scopes.d.ts @@ -0,0 +1,17 @@ +export declare class Scopes { + static get playlist(): string[]; + static get playlistRead(): string[]; + static get playlistModify(): string[]; + static get userDetails(): string[]; + static get userLibrary(): string[]; + static get userLibraryRead(): string[]; + static get userLibraryModify(): string[]; + static get userRecents(): string[]; + static get userFollow(): string[]; + static get userFollowRead(): string[]; + static get userFollowModify(): string[]; + static get userPlayback(): string[]; + static get userPlaybackRead(): string[]; + static get userPlaybackModify(): string[]; + static get all(): string[]; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/Scopes.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/Scopes.js new file mode 100644 index 0000000..25435b6 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/Scopes.js @@ -0,0 +1,96 @@ +export class Scopes { + static get playlist() { + return [ + ...Scopes.playlistRead, + ...Scopes.playlistModify + ]; + } + static get playlistRead() { + return [ + "playlist-read-private", + "playlist-read-collaborative", + ]; + } + static get playlistModify() { + return [ + "playlist-modify-public", + "playlist-modify-private", + "ugc-image-upload" + ]; + } + static get userDetails() { + return [ + "user-read-private", + "user-read-email", + ]; + } + static get userLibrary() { + return [ + ...Scopes.userLibraryRead, + ...Scopes.userLibraryModify + ]; + } + static get userLibraryRead() { + return [ + "user-library-read", + ]; + } + static get userLibraryModify() { + return [ + "user-library-modify", + ]; + } + static get userRecents() { + return [ + "user-top-read", + "user-read-recently-played", + ]; + } + static get userFollow() { + return [ + ...Scopes.userFollowRead, + ...Scopes.userFollowModify + ]; + } + static get userFollowRead() { + return [ + "user-follow-read", + ]; + } + static get userFollowModify() { + return [ + "user-follow-modify", + ]; + } + static get userPlayback() { + return [ + ...Scopes.userPlaybackRead, + ...Scopes.userPlaybackModify + ]; + } + static get userPlaybackRead() { + return [ + "user-read-playback-position", + "user-read-playback-state", + "user-read-currently-playing", + ]; + } + static get userPlaybackModify() { + return [ + "user-modify-playback-state", + "app-remote-control", + "streaming" + ]; + } + static get all() { + return [ + ...Scopes.userDetails, + ...Scopes.playlist, + ...Scopes.userLibrary, + ...Scopes.userRecents, + ...Scopes.userFollow, + ...Scopes.userPlayback, + ]; + } +} +//# sourceMappingURL=Scopes.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/Scopes.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/Scopes.js.map new file mode 100644 index 0000000..aad8e7e --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/Scopes.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Scopes.js","sourceRoot":"","sources":["../../src/Scopes.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IAER,MAAM,KAAK,QAAQ;QACtB,OAAO;YACH,GAAG,MAAM,CAAC,YAAY;YACtB,GAAG,MAAM,CAAC,cAAc;SAC3B,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,YAAY;QAC1B,OAAO;YACH,uBAAuB;YACvB,6BAA6B;SAChC,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,cAAc;QAC5B,OAAO;YACH,wBAAwB;YACxB,yBAAyB;YACzB,kBAAkB;SACrB,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,WAAW;QACzB,OAAO;YACH,mBAAmB;YACnB,iBAAiB;SACpB,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,WAAW;QACzB,OAAO;YACH,GAAG,MAAM,CAAC,eAAe;YACzB,GAAG,MAAM,CAAC,iBAAiB;SAC9B,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,eAAe;QAC7B,OAAO;YACH,mBAAmB;SACtB,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,iBAAiB;QAC/B,OAAO;YACH,qBAAqB;SACxB,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,WAAW;QACzB,OAAO;YACH,eAAe;YACf,2BAA2B;SAC9B,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,UAAU;QACxB,OAAO;YACH,GAAG,MAAM,CAAC,cAAc;YACxB,GAAG,MAAM,CAAC,gBAAgB;SAC7B,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,cAAc;QAC5B,OAAO;YACH,kBAAkB;SACrB,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,gBAAgB;QAC9B,OAAO;YACH,oBAAoB;SACvB,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,YAAY;QAC1B,OAAO;YACH,GAAG,MAAM,CAAC,gBAAgB;YAC1B,GAAG,MAAM,CAAC,kBAAkB;SAC/B,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,gBAAgB;QAC9B,OAAO;YACH,6BAA6B;YAC7B,0BAA0B;YAC1B,6BAA6B;SAChC,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,kBAAkB;QAChC,OAAO;YACH,4BAA4B;YAC5B,oBAAoB;YACpB,WAAW;SACd,CAAC;IACN,CAAC;IAEM,MAAM,KAAK,GAAG;QACjB,OAAO;YACH,GAAG,MAAM,CAAC,WAAW;YACrB,GAAG,MAAM,CAAC,QAAQ;YAClB,GAAG,MAAM,CAAC,WAAW;YACrB,GAAG,MAAM,CAAC,WAAW;YACrB,GAAG,MAAM,CAAC,UAAU;YACpB,GAAG,MAAM,CAAC,YAAY;SACzB,CAAC;IACN,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/SpotifyApi.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/SpotifyApi.d.ts new file mode 100644 index 0000000..cf5eff3 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/SpotifyApi.d.ts @@ -0,0 +1,80 @@ +import AlbumsEndpoints from "./endpoints/AlbumsEndpoints.js"; +import ArtistsEndpoints from "./endpoints/ArtistsEndpoints.js"; +import AudiobooksEndpoints from "./endpoints/AudiobooksEndpoints.js"; +import BrowseEndpoints from "./endpoints/BrowseEndpoints.js"; +import ChaptersEndpoints from "./endpoints/ChaptersEndpoints.js"; +import EpisodesEndpoints from "./endpoints/EpisodesEndpoints.js"; +import RecommendationsEndpoints from "./endpoints/RecommendationsEndpoints.js"; +import MarketsEndpoints from "./endpoints/MarketsEndpoints.js"; +import PlayerEndpoints from "./endpoints/PlayerEndpoints.js"; +import PlaylistsEndpoints from "./endpoints/PlaylistsEndpoints.js"; +import { SearchExecutionFunction } from "./endpoints/SearchEndpoints.js"; +import ShowsEndpoints from "./endpoints/ShowsEndpoints.js"; +import TracksEndpoints from "./endpoints/TracksEndpoints.js"; +import IAuthStrategy from "./auth/IAuthStrategy.js"; +import UsersEndpoints from "./endpoints/UsersEndpoints.js"; +import CurrentUserEndpoints from "./endpoints/CurrentUserEndpoints.js"; +import type { AccessToken, SdkOptions, AuthenticationResponse } from "./types.js"; +export declare class SpotifyApi { + private sdkConfig; + private static rootUrl; + private authenticationStrategy; + albums: AlbumsEndpoints; + artists: ArtistsEndpoints; + audiobooks: AudiobooksEndpoints; + browse: BrowseEndpoints; + chapters: ChaptersEndpoints; + episodes: EpisodesEndpoints; + recommendations: RecommendationsEndpoints; + markets: MarketsEndpoints; + player: PlayerEndpoints; + playlists: PlaylistsEndpoints; + shows: ShowsEndpoints; + tracks: TracksEndpoints; + users: UsersEndpoints; + search: SearchExecutionFunction; + currentUser: CurrentUserEndpoints; + constructor(authentication: IAuthStrategy, config?: SdkOptions); + makeRequest(method: "GET" | "POST" | "PUT" | "DELETE", url: string, body?: any, contentType?: string | undefined): Promise; + private initializeSdk; + switchAuthenticationStrategy(authentication: IAuthStrategy): void; + /** + * Use this when you're running in a browser and you want to control when first authentication+redirect happens. + */ + authenticate(): Promise; + /** + * @returns the current access token. null implies the SpotifyApi is not yet authenticated. + */ + getAccessToken(): Promise; + /** + * Removes the access token if it exists. + */ + logOut(): void; + static withUserAuthorization(clientId: string, redirectUri: string, scopes?: string[], config?: SdkOptions): SpotifyApi; + static withClientCredentials(clientId: string, clientSecret: string, scopes?: string[], config?: SdkOptions): SpotifyApi; + static withImplicitGrant(clientId: string, redirectUri: string, scopes?: string[], config?: SdkOptions): SpotifyApi; + /** + * Use this when you're running in a Node environment, and accepting the access token from a client-side `performUserAuthorization` call. + * You can also use this method if you already have an access token and don't want to use the built-in authentication strategies. + */ + static withAccessToken(clientId: string, token: AccessToken, config?: SdkOptions): SpotifyApi; + /** + * Use this when you're running in the browser, and want to perform the user authorization flow to post back to your server with the access token. + * @param clientId Your Spotify client ID + * @param redirectUri The URI to redirect to after the user has authorized your app + * @param scopes The scopes to request + * @param postbackUrl The URL to post the access token to + * @param config Optional configuration + */ + static performUserAuthorization(clientId: string, redirectUri: string, scopes: string[], postbackUrl: string, config?: SdkOptions): Promise; + /** + * Use this when you're running in the browser, and want to perform the user authorization flow to post back to your server with the access token. + * This overload is provided for you to perform the postback yourself, if you want to do something other than a simple HTTP POST to a URL - for example, if you want to use a WebSocket, or provide custom authentication. + * @param clientId Your Spotify client ID + * @param redirectUri The URI to redirect to after the user has authorized your app + * @param scopes The scopes to request + * @param onAuthorization A function to call with the access token where YOU perform the server-side postback + * @param config Optional configuration + */ + static performUserAuthorization(clientId: string, redirectUri: string, scopes: string[], onAuthorization: (token: AccessToken) => Promise, config?: SdkOptions): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/SpotifyApi.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/SpotifyApi.js new file mode 100644 index 0000000..717bb5c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/SpotifyApi.js @@ -0,0 +1,189 @@ +import AlbumsEndpoints from "./endpoints/AlbumsEndpoints.js"; +import ArtistsEndpoints from "./endpoints/ArtistsEndpoints.js"; +import AudiobooksEndpoints from "./endpoints/AudiobooksEndpoints.js"; +import BrowseEndpoints from "./endpoints/BrowseEndpoints.js"; +import ChaptersEndpoints from "./endpoints/ChaptersEndpoints.js"; +import EpisodesEndpoints from "./endpoints/EpisodesEndpoints.js"; +import RecommendationsEndpoints from "./endpoints/RecommendationsEndpoints.js"; +import MarketsEndpoints from "./endpoints/MarketsEndpoints.js"; +import PlayerEndpoints from "./endpoints/PlayerEndpoints.js"; +import PlaylistsEndpoints from "./endpoints/PlaylistsEndpoints.js"; +import SearchEndpoints from "./endpoints/SearchEndpoints.js"; +import ShowsEndpoints from "./endpoints/ShowsEndpoints.js"; +import TracksEndpoints from "./endpoints/TracksEndpoints.js"; +import { isEmptyAccessToken } from "./auth/IAuthStrategy.js"; +import UsersEndpoints from "./endpoints/UsersEndpoints.js"; +import CurrentUserEndpoints from "./endpoints/CurrentUserEndpoints.js"; +import ClientCredentialsStrategy from "./auth/ClientCredentialsStrategy.js"; +import ImplicitGrantStrategy from "./auth/ImplicitGrantStrategy.js"; +import AuthorizationCodeWithPKCEStrategy from "./auth/AuthorizationCodeWithPKCEStrategy.js"; +import DefaultResponseDeserializer from "./serialization/DefaultResponseDeserializer.js"; +import DefaultResponseValidator from "./responsevalidation/DefaultResponseValidator.js"; +import NoOpErrorHandler from "./errorhandling/NoOpErrorHandler.js"; +import DocumentLocationRedirectionStrategy from "./redirection/DocumentLocationRedirectionStrategy.js"; +import LocalStorageCachingStrategy from "./caching/LocalStorageCachingStrategy.js"; +import InMemoryCachingStrategy from "./caching/InMemoryCachingStrategy.js"; +import ProvidedAccessTokenStrategy from "./auth/ProvidedAccessTokenStrategy.js"; +export class SpotifyApi { + sdkConfig; + static rootUrl = "https://api.spotify.com/v1/"; + authenticationStrategy; + albums; + artists; + audiobooks; + browse; + chapters; + episodes; + recommendations; + markets; + player; + playlists; + shows; + tracks; + users; + search; + currentUser; + constructor(authentication, config) { + this.sdkConfig = this.initializeSdk(config); + this.albums = new AlbumsEndpoints(this); + this.artists = new ArtistsEndpoints(this); + this.audiobooks = new AudiobooksEndpoints(this); + this.browse = new BrowseEndpoints(this); + this.chapters = new ChaptersEndpoints(this); + this.episodes = new EpisodesEndpoints(this); + this.recommendations = new RecommendationsEndpoints(this); + this.markets = new MarketsEndpoints(this); + this.player = new PlayerEndpoints(this); + this.playlists = new PlaylistsEndpoints(this); + this.shows = new ShowsEndpoints(this); + this.tracks = new TracksEndpoints(this); + this.users = new UsersEndpoints(this); + this.currentUser = new CurrentUserEndpoints(this); + const search = new SearchEndpoints(this); + this.search = search.execute.bind(search); + this.authenticationStrategy = authentication; + this.authenticationStrategy.setConfiguration(this.sdkConfig); + } + async makeRequest(method, url, body = undefined, contentType = undefined) { + try { + const accessToken = await this.authenticationStrategy.getOrCreateAccessToken(); + if (isEmptyAccessToken(accessToken)) { + console.warn("No access token found, authenticating now."); + return null; + } + const token = accessToken?.access_token; + const fullUrl = SpotifyApi.rootUrl + url; + const opts = { + method: method, + headers: { + Authorization: `Bearer ${token}`, + "Content-Type": contentType ?? "application/json" + }, + body: body ? typeof body === "string" ? body : JSON.stringify(body) : undefined + }; + this.sdkConfig.beforeRequest(fullUrl, opts); + const result = await this.sdkConfig.fetch(fullUrl, opts); + this.sdkConfig.afterRequest(fullUrl, opts, result); + if (result.status === 204) { + return null; + } + await this.sdkConfig.responseValidator.validateResponse(result); + return this.sdkConfig.deserializer.deserialize(result); + } + catch (error) { + const handled = await this.sdkConfig.errorHandler.handleErrors(error); + if (!handled) { + throw error; + } + return null; + } + } + initializeSdk(config) { + const isBrowser = typeof window !== 'undefined'; + const defaultConfig = { + fetch: (req, init) => fetch(req, init), + beforeRequest: (_, __) => { }, + afterRequest: (_, __, ___) => { }, + deserializer: new DefaultResponseDeserializer(), + responseValidator: new DefaultResponseValidator(), + errorHandler: new NoOpErrorHandler(), + redirectionStrategy: new DocumentLocationRedirectionStrategy(), + cachingStrategy: isBrowser + ? new LocalStorageCachingStrategy() + : new InMemoryCachingStrategy() + }; + return { ...defaultConfig, ...config }; + } + switchAuthenticationStrategy(authentication) { + this.authenticationStrategy = authentication; + this.authenticationStrategy.setConfiguration(this.sdkConfig); + this.authenticationStrategy.getOrCreateAccessToken(); // trigger any redirects + } + /** + * Use this when you're running in a browser and you want to control when first authentication+redirect happens. + */ + async authenticate() { + const response = await this.authenticationStrategy.getOrCreateAccessToken(); // trigger any redirects + return { + authenticated: response.expires > Date.now() && !isEmptyAccessToken(response), + accessToken: response + }; + } + /** + * @returns the current access token. null implies the SpotifyApi is not yet authenticated. + */ + async getAccessToken() { + return this.authenticationStrategy.getAccessToken(); + } + /** + * Removes the access token if it exists. + */ + logOut() { + this.authenticationStrategy.removeAccessToken(); + } + static withUserAuthorization(clientId, redirectUri, scopes = [], config) { + const strategy = new AuthorizationCodeWithPKCEStrategy(clientId, redirectUri, scopes); + return new SpotifyApi(strategy, config); + } + static withClientCredentials(clientId, clientSecret, scopes = [], config) { + const strategy = new ClientCredentialsStrategy(clientId, clientSecret, scopes); + return new SpotifyApi(strategy, config); + } + static withImplicitGrant(clientId, redirectUri, scopes = [], config) { + const strategy = new ImplicitGrantStrategy(clientId, redirectUri, scopes); + return new SpotifyApi(strategy, config); + } + /** + * Use this when you're running in a Node environment, and accepting the access token from a client-side `performUserAuthorization` call. + * You can also use this method if you already have an access token and don't want to use the built-in authentication strategies. + */ + static withAccessToken(clientId, token, config) { + const strategy = new ProvidedAccessTokenStrategy(clientId, token); + return new SpotifyApi(strategy, config); + } + static async performUserAuthorization(clientId, redirectUri, scopes, onAuthorizationOrUrl, config) { + const strategy = new AuthorizationCodeWithPKCEStrategy(clientId, redirectUri, scopes); + const client = new SpotifyApi(strategy, config); + const accessToken = await client.authenticationStrategy.getOrCreateAccessToken(); + if (!isEmptyAccessToken(accessToken)) { + if (typeof onAuthorizationOrUrl === "string") { + console.log("Posting access token to postback URL."); + await fetch(onAuthorizationOrUrl, { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify(accessToken) + }); + } + else { + await onAuthorizationOrUrl(accessToken); + } + } + return { + authenticated: accessToken.expires > Date.now() && !isEmptyAccessToken(accessToken), + accessToken + }; + } +} +//# sourceMappingURL=SpotifyApi.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/SpotifyApi.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/SpotifyApi.js.map new file mode 100644 index 0000000..e98086c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/SpotifyApi.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SpotifyApi.js","sourceRoot":"","sources":["../../src/SpotifyApi.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,gCAAgC,CAAC;AAC7D,OAAO,gBAAgB,MAAM,iCAAiC,CAAC;AAC/D,OAAO,mBAAmB,MAAM,oCAAoC,CAAC;AACrE,OAAO,eAAe,MAAM,gCAAgC,CAAC;AAC7D,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AACjE,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AACjE,OAAO,wBAAwB,MAAM,yCAAyC,CAAC;AAC/E,OAAO,gBAAgB,MAAM,iCAAiC,CAAC;AAC/D,OAAO,eAAe,MAAM,gCAAgC,CAAC;AAC7D,OAAO,kBAAkB,MAAM,mCAAmC,CAAC;AACnE,OAAO,eAA4C,MAAM,gCAAgC,CAAC;AAC1F,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,eAAe,MAAM,gCAAgC,CAAC;AAC7D,OAAsB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,oBAAoB,MAAM,qCAAqC,CAAC;AACvE,OAAO,yBAAyB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,qBAAqB,MAAM,iCAAiC,CAAC;AACpE,OAAO,iCAAiC,MAAM,6CAA6C,CAAC;AAC5F,OAAO,2BAA2B,MAAM,gDAAgD,CAAC;AACzF,OAAO,wBAAwB,MAAM,kDAAkD,CAAC;AACxF,OAAO,gBAAgB,MAAM,qCAAqC,CAAC;AACnE,OAAO,mCAAmC,MAAM,sDAAsD,CAAC;AACvG,OAAO,2BAA2B,MAAM,0CAA0C,CAAC;AACnF,OAAO,uBAAuB,MAAM,sCAAsC,CAAC;AAC3E,OAAO,2BAA2B,MAAM,uCAAuC,CAAC;AAGhF,MAAM,OAAO,UAAU;IACX,SAAS,CAAmB;IAC5B,MAAM,CAAC,OAAO,GAAW,6BAA6B,CAAC;IAEvD,sBAAsB,CAAgB;IAEvC,MAAM,CAAkB;IACxB,OAAO,CAAmB;IAC1B,UAAU,CAAsB;IAChC,MAAM,CAAkB;IACxB,QAAQ,CAAoB;IAC5B,QAAQ,CAAoB;IAC5B,eAAe,CAA2B;IAC1C,OAAO,CAAmB;IAC1B,MAAM,CAAkB;IACxB,SAAS,CAAqB;IAC9B,KAAK,CAAiB;IACtB,MAAM,CAAkB;IACxB,KAAK,CAAiB;IACtB,MAAM,CAA0B;IAEhC,WAAW,CAAuB;IAEzC,YAAmB,cAA6B,EAAE,MAAmB;QACjE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,eAAe,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE1C,IAAI,CAAC,sBAAsB,GAAG,cAAc,CAAC;QAC7C,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IAEM,KAAK,CAAC,WAAW,CAAc,MAAyC,EAAE,GAAW,EAAE,OAAY,SAAS,EAAE,cAAkC,SAAS;QAC5J,IAAI;YACA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,CAAC;YAC/E,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE;gBACjC,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;gBAC3D,OAAO,IAAmB,CAAC;aAC9B;YAED,MAAM,KAAK,GAAG,WAAW,EAAE,YAAY,CAAC;YAExC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC;YACzC,MAAM,IAAI,GAAgB;gBACtB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACL,aAAa,EAAE,UAAU,KAAK,EAAE;oBAChC,cAAc,EAAE,WAAW,IAAI,kBAAkB;iBACpD;gBACD,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aAClF,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAEnD,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE;gBACvB,OAAO,IAAmB,CAAC;aAC9B;YAED,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAc,MAAM,CAAC,CAAC;SACvE;QAAC,OAAO,KAAK,EAAE;YACZ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACtE,IAAI,CAAC,OAAO,EAAE;gBACV,MAAM,KAAK,CAAC;aACf;YACD,OAAO,IAAmB,CAAC;SAC9B;IACL,CAAC;IAEO,aAAa,CAAC,MAA8B;QAChD,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;QAEhD,MAAM,aAAa,GAAqB;YACpC,KAAK,EAAE,CAAC,GAAsB,EAAE,IAA6B,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;YAClF,aAAa,EAAE,CAAC,CAAS,EAAE,EAAe,EAAE,EAAE,GAAG,CAAC;YAClD,YAAY,EAAE,CAAC,CAAS,EAAE,EAAe,EAAE,GAAa,EAAE,EAAE,GAAG,CAAC;YAChE,YAAY,EAAE,IAAI,2BAA2B,EAAE;YAC/C,iBAAiB,EAAE,IAAI,wBAAwB,EAAE;YACjD,YAAY,EAAE,IAAI,gBAAgB,EAAE;YACpC,mBAAmB,EAAE,IAAI,mCAAmC,EAAE;YAC9D,eAAe,EAAE,SAAS;gBACtB,CAAC,CAAC,IAAI,2BAA2B,EAAE;gBACnC,CAAC,CAAC,IAAI,uBAAuB,EAAE;SACtC,CAAC;QAEF,OAAO,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;IAC3C,CAAC;IAEM,4BAA4B,CAAC,cAA6B;QAC7D,IAAI,CAAC,sBAAsB,GAAG,cAAc,CAAC;QAC7C,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,CAAC,CAAC,yBAAyB;IACnF,CAAC;IAED;;MAEE;IACK,KAAK,CAAC,YAAY;QACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,CAAC,CAAC,wBAAwB;QAErG,OAAO;YACH,aAAa,EAAE,QAAQ,CAAC,OAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;YAC9E,WAAW,EAAE,QAAQ;SACxB,CAAC;IACN,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,cAAc;QACvB,OAAO,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE,CAAC;IACxD,CAAC;IAED;;OAEG;IACI,MAAM;QACT,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,CAAC;IACpD,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,QAAgB,EAAE,WAAmB,EAAE,SAAmB,EAAE,EAAE,MAAmB;QACjH,MAAM,QAAQ,GAAG,IAAI,iCAAiC,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACtF,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,QAAgB,EAAE,YAAoB,EAAE,SAAmB,EAAE,EAAE,MAAmB;QAClH,MAAM,QAAQ,GAAG,IAAI,yBAAyB,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAC/E,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,QAAgB,EAAE,WAAmB,EAAE,SAAmB,EAAE,EAAE,MAAmB;QAC7G,MAAM,QAAQ,GAAG,IAAI,qBAAqB,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC1E,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,eAAe,CAAC,QAAgB,EAAE,KAAkB,EAAE,MAAmB;QACnF,MAAM,QAAQ,GAAG,IAAI,2BAA2B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAClE,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAuBM,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,QAAgB,EAAE,WAAmB,EAAE,MAAgB,EAAE,oBAAsE,EAAE,MAAmB;QAC7L,MAAM,QAAQ,GAAG,IAAI,iCAAiC,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,CAAC;QAEjF,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE;YAClC,IAAI,OAAO,oBAAoB,KAAK,QAAQ,EAAE;gBAC1C,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;gBACrD,MAAM,KAAK,CAAC,oBAAoB,EAAE;oBAC9B,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACL,cAAc,EAAE,kBAAkB;qBACrC;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;iBACpC,CAAC,CAAC;aACN;iBAAM;gBACH,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;aAC3C;SACJ;QAED,OAAO;YACH,aAAa,EAAE,WAAW,CAAC,OAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;YACpF,WAAW;SACd,CAAC;IACN,CAAC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AccessTokenHelpers.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AccessTokenHelpers.d.ts new file mode 100644 index 0000000..8561230 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AccessTokenHelpers.d.ts @@ -0,0 +1,9 @@ +import type { AccessToken, ICachable } from "../types.js"; +export default class AccessTokenHelpers { + static refreshCachedAccessToken(clientId: string, item: AccessToken): Promise; + static toCachable(item: AccessToken): ICachable & AccessToken; + static calculateExpiry(item: AccessToken): number; + private static refreshToken; + static generateCodeVerifier(length: number): string; + static generateCodeChallenge(codeVerifier: string): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AccessTokenHelpers.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AccessTokenHelpers.js new file mode 100644 index 0000000..bd47a61 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AccessTokenHelpers.js @@ -0,0 +1,55 @@ +import { Crypto } from "./Crypto.js"; +export default class AccessTokenHelpers { + static async refreshCachedAccessToken(clientId, item) { + const updated = await AccessTokenHelpers.refreshToken(clientId, item.refresh_token); + return AccessTokenHelpers.toCachable(updated); + } + static toCachable(item) { + if (item.expires && item.expires === -1) { + return item; + } + return { ...item, expires: this.calculateExpiry(item) }; + } + static calculateExpiry(item) { + return Date.now() + (item.expires_in * 1000); + } + static async refreshToken(clientId, refreshToken) { + const params = new URLSearchParams(); + params.append("client_id", clientId); + params.append("grant_type", "refresh_token"); + params.append("refresh_token", refreshToken); + const result = await fetch("https://accounts.spotify.com/api/token", { + method: "POST", + headers: { "Content-Type": "application/x-www-form-urlencoded" }, + body: params + }); + const text = await result.text(); + if (!result.ok) { + throw new Error(`Failed to refresh token: ${result.statusText}, ${text}`); + } + const json = JSON.parse(text); + return json; + } + static generateCodeVerifier(length) { + let text = ''; + let possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + for (let i = 0; i < length; i++) { + text += possible.charAt(Math.floor(Math.random() * possible.length)); + } + return text; + } + static async generateCodeChallenge(codeVerifier) { + const data = new TextEncoder().encode(codeVerifier); + const digest = await Crypto.current.subtle.digest('SHA-256', data); + const digestBytes = [...new Uint8Array(digest)]; + const hasBuffer = typeof Buffer !== 'undefined'; + const digestAsBase64 = hasBuffer + ? Buffer.from(digest).toString('base64') + : btoa(String.fromCharCode.apply(null, digestBytes)); + return digestAsBase64 + .replace(/\+/g, '-') + .replace(/\//g, '_') + .replace(/=+$/, ''); + } +} +//# sourceMappingURL=AccessTokenHelpers.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AccessTokenHelpers.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AccessTokenHelpers.js.map new file mode 100644 index 0000000..e2efa4a --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AccessTokenHelpers.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AccessTokenHelpers.js","sourceRoot":"","sources":["../../../src/auth/AccessTokenHelpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAC5B,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,QAAgB,EAAE,IAAiB;QAC5E,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACpF,OAAO,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,IAAiB;QACtC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,EAAE;YACrC,OAAO,IAAI,CAAC;SACf;QAED,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5D,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,IAAiB;QAC3C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACjD,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,YAAoB;QACpE,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAE7C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,wCAAwC,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;YAChE,IAAI,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAEjC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC,CAAC;SAC7E;QAED,MAAM,IAAI,GAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,MAAc;QAC7C,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,QAAQ,GAAG,gEAAgE,CAAC;QAEhF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7B,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;SACxE;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,YAAoB;QAC1D,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAEnE,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;QAEhD,MAAM,cAAc,GAAG,SAAS;YAC5B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACxC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;QAEzD,OAAO,cAAc;aAChB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AuthorizationCodeWithPKCEStrategy.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AuthorizationCodeWithPKCEStrategy.d.ts new file mode 100644 index 0000000..33a1e4f --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AuthorizationCodeWithPKCEStrategy.d.ts @@ -0,0 +1,21 @@ +import type { SdkConfiguration, AccessToken, ICachingStrategy } from "../types.js"; +import IAuthStrategy from "./IAuthStrategy.js"; +export default class AuthorizationCodeWithPKCEStrategy implements IAuthStrategy { + protected clientId: string; + protected redirectUri: string; + protected scopes: string[]; + private static readonly cacheKey; + private configuration; + protected get cache(): ICachingStrategy; + constructor(clientId: string, redirectUri: string, scopes: string[]); + setConfiguration(configuration: SdkConfiguration): void; + getOrCreateAccessToken(): Promise; + getAccessToken(): Promise; + removeAccessToken(): void; + private redirectOrVerifyToken; + private redirectToSpotify; + private verifyAndExchangeCode; + private removeCodeFromUrl; + protected generateRedirectUrlForUser(scopes: string[], challenge: string): Promise; + protected exchangeCodeForToken(code: string, verifier: string): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AuthorizationCodeWithPKCEStrategy.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AuthorizationCodeWithPKCEStrategy.js new file mode 100644 index 0000000..8a601b6 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AuthorizationCodeWithPKCEStrategy.js @@ -0,0 +1,99 @@ +import AccessTokenHelpers from "./AccessTokenHelpers.js"; +import { emptyAccessToken } from "./IAuthStrategy.js"; +export default class AuthorizationCodeWithPKCEStrategy { + clientId; + redirectUri; + scopes; + static cacheKey = "spotify-sdk:AuthorizationCodeWithPKCEStrategy:token"; + configuration = null; + get cache() { return this.configuration.cachingStrategy; } + constructor(clientId, redirectUri, scopes) { + this.clientId = clientId; + this.redirectUri = redirectUri; + this.scopes = scopes; + } + setConfiguration(configuration) { + this.configuration = configuration; + } + async getOrCreateAccessToken() { + const token = await this.cache.getOrCreate(AuthorizationCodeWithPKCEStrategy.cacheKey, async () => { + const token = await this.redirectOrVerifyToken(); + return AccessTokenHelpers.toCachable(token); + }, async (expiring) => { + return AccessTokenHelpers.refreshCachedAccessToken(this.clientId, expiring); + }); + return token; + } + async getAccessToken() { + const token = await this.cache.get(AuthorizationCodeWithPKCEStrategy.cacheKey); + return token; + } + removeAccessToken() { + this.cache.remove(AuthorizationCodeWithPKCEStrategy.cacheKey); + } + async redirectOrVerifyToken() { + const hashParams = new URLSearchParams(window.location.search); + const code = hashParams.get("code"); + if (code) { + const token = await this.verifyAndExchangeCode(code); + this.removeCodeFromUrl(); + return token; + } + this.redirectToSpotify(); + return emptyAccessToken; // Redirected away at this point, just make TypeScript happy :) + } + async redirectToSpotify() { + const verifier = AccessTokenHelpers.generateCodeVerifier(128); + const challenge = await AccessTokenHelpers.generateCodeChallenge(verifier); + const singleUseVerifier = { verifier, expiresOnAccess: true }; + this.cache.setCacheItem("spotify-sdk:verifier", singleUseVerifier); + const redirectTarget = await this.generateRedirectUrlForUser(this.scopes, challenge); + await this.configuration.redirectionStrategy.redirect(redirectTarget); + } + async verifyAndExchangeCode(code) { + const cachedItem = await this.cache.get("spotify-sdk:verifier"); + const verifier = cachedItem?.verifier; + if (!verifier) { + throw new Error("No verifier found in cache - can't validate query string callback parameters."); + } + await this.configuration.redirectionStrategy.onReturnFromRedirect(); + return await this.exchangeCodeForToken(code, verifier); + } + removeCodeFromUrl() { + const url = new URL(window.location.href); + url.searchParams.delete("code"); + const newUrl = url.search ? url.href : url.href.replace('?', ''); + window.history.replaceState({}, document.title, newUrl); + } + async generateRedirectUrlForUser(scopes, challenge) { + const scope = scopes.join(' '); + const params = new URLSearchParams(); + params.append("client_id", this.clientId); + params.append("response_type", "code"); + params.append("redirect_uri", this.redirectUri); + params.append("scope", scope); + params.append("code_challenge_method", "S256"); + params.append("code_challenge", challenge); + return `https://accounts.spotify.com/authorize?${params.toString()}`; + } + async exchangeCodeForToken(code, verifier) { + const params = new URLSearchParams(); + params.append("client_id", this.clientId); + params.append("grant_type", "authorization_code"); + params.append("code", code); + params.append("redirect_uri", this.redirectUri); + params.append("code_verifier", verifier); + const result = await fetch("https://accounts.spotify.com/api/token", { + method: "POST", + headers: { "Content-Type": "application/x-www-form-urlencoded" }, + body: params + }); + const text = await result.text(); + if (!result.ok) { + throw new Error(`Failed to exchange code for token: ${result.statusText}, ${text}`); + } + const json = JSON.parse(text); + return json; + } +} +//# sourceMappingURL=AuthorizationCodeWithPKCEStrategy.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AuthorizationCodeWithPKCEStrategy.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AuthorizationCodeWithPKCEStrategy.js.map new file mode 100644 index 0000000..dd09e39 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/AuthorizationCodeWithPKCEStrategy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AuthorizationCodeWithPKCEStrategy.js","sourceRoot":"","sources":["../../../src/auth/AuthorizationCodeWithPKCEStrategy.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAsB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAOrE,MAAM,CAAC,OAAO,OAAO,iCAAiC;IAOpC;IACA;IACA;IAPN,MAAM,CAAU,QAAQ,GAAG,qDAAqD,CAAC;IACjF,aAAa,GAA4B,IAAI,CAAC;IACtD,IAAc,KAAK,KAAuB,OAAO,IAAI,CAAC,aAAc,CAAC,eAAe,CAAC,CAAC,CAAC;IAEvF,YACc,QAAgB,EAChB,WAAmB,EACnB,MAAgB;QAFhB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,gBAAW,GAAX,WAAW,CAAQ;QACnB,WAAM,GAAN,MAAM,CAAU;IAE9B,CAAC;IAEM,gBAAgB,CAAC,aAA+B;QACnD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAEM,KAAK,CAAC,sBAAsB;QAC/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CACtC,iCAAiC,CAAC,QAAQ,EAC1C,KAAK,IAAI,EAAE;YACP,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACjD,OAAO,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAClB,OAAO,kBAAkB,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChF,CAAC,CACJ,CAAC;QAEF,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,cAAc;QACvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,iCAAiC,CAAC,QAAQ,CAAC,CAAC;QAC5F,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,iBAAiB;QACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iCAAiC,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAEO,KAAK,CAAC,qBAAqB;QAC/B,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpC,IAAI,IAAI,EAAE;YACN,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,gBAAgB,CAAC,CAAC,wEAAwE;IACrG,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC3B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAE3E,MAAM,iBAAiB,GAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;QAC9E,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,CAAC;QAEnE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACrF,MAAM,IAAI,CAAC,aAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC3E,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,IAAY;QAC5C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,sBAAsB,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,UAAU,EAAE,QAAQ,CAAC;QAEtC,IAAI,CAAC,QAAQ,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;SACpG;QAED,MAAM,IAAI,CAAC,aAAc,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,CAAC;QACrE,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAS,CAAC,CAAC;IAC5D,CAAC;IAEO,iBAAiB;QACrB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEhC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACjE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAES,KAAK,CAAC,0BAA0B,CAAC,MAAgB,EAAE,SAAiB;QAC1E,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE/B,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QAE3C,OAAO,0CAA0C,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;IACzE,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,IAAY,EAAE,QAAgB;QAC/D,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,QAAS,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,wCAAwC,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;YAChE,IAAI,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAEjC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC,CAAC;SACvF;QAED,MAAM,IAAI,GAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IAChB,CAAC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ClientCredentialsStrategy.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ClientCredentialsStrategy.d.ts new file mode 100644 index 0000000..be6b771 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ClientCredentialsStrategy.d.ts @@ -0,0 +1,16 @@ +import type { SdkConfiguration, AccessToken } from "../types.js"; +import IAuthStrategy from "./IAuthStrategy.js"; +export default class ClientCredentialsStrategy implements IAuthStrategy { + private clientId; + private clientSecret; + private scopes; + private static readonly cacheKey; + private configuration; + private get cache(); + constructor(clientId: string, clientSecret: string, scopes?: string[]); + setConfiguration(configuration: SdkConfiguration): void; + getOrCreateAccessToken(): Promise; + getAccessToken(): Promise; + removeAccessToken(): void; + private getTokenFromApi; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ClientCredentialsStrategy.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ClientCredentialsStrategy.js new file mode 100644 index 0000000..26627dd --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ClientCredentialsStrategy.js @@ -0,0 +1,60 @@ +import AccessTokenHelpers from "./AccessTokenHelpers.js"; +export default class ClientCredentialsStrategy { + clientId; + clientSecret; + scopes; + static cacheKey = "spotify-sdk:ClientCredentialsStrategy:token"; + configuration = null; + get cache() { return this.configuration.cachingStrategy; } + constructor(clientId, clientSecret, scopes = []) { + this.clientId = clientId; + this.clientSecret = clientSecret; + this.scopes = scopes; + } + setConfiguration(configuration) { + this.configuration = configuration; + } + async getOrCreateAccessToken() { + const token = await this.cache.getOrCreate(ClientCredentialsStrategy.cacheKey, async () => { + const token = await this.getTokenFromApi(); + return AccessTokenHelpers.toCachable(token); + }, async (_) => { + const refreshed = await this.getTokenFromApi(); + return AccessTokenHelpers.toCachable(refreshed); + }); + return token; + } + async getAccessToken() { + const token = await this.cache.get(ClientCredentialsStrategy.cacheKey); + return token; + } + removeAccessToken() { + this.cache.remove(ClientCredentialsStrategy.cacheKey); + } + async getTokenFromApi() { + const options = { + grant_type: 'client_credentials', + scope: this.scopes.join(' ') + }; + const bodyAsString = Object.keys(options).map(key => key + '=' + options[key]).join('&'); + const hasBuffer = typeof Buffer !== 'undefined'; + const credentials = `${this.clientId}:${this.clientSecret}`; + const basicAuth = hasBuffer + ? Buffer.from(credentials).toString('base64') + : btoa(credentials); + const result = await fetch("https://accounts.spotify.com/api/token", { + method: 'POST', + headers: { + "Content-Type": "application/x-www-form-urlencoded", + "Authorization": `Basic ${basicAuth}` + }, + body: bodyAsString + }); + if (result.status !== 200) { + throw new Error("Failed to get access token."); + } + const json = await result.json(); + return json; + } +} +//# sourceMappingURL=ClientCredentialsStrategy.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ClientCredentialsStrategy.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ClientCredentialsStrategy.js.map new file mode 100644 index 0000000..62e4024 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ClientCredentialsStrategy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ClientCredentialsStrategy.js","sourceRoot":"","sources":["../../../src/auth/ClientCredentialsStrategy.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAGzD,MAAM,CAAC,OAAO,OAAO,yBAAyB;IAO9B;IACA;IACA;IAPJ,MAAM,CAAU,QAAQ,GAAG,6CAA6C,CAAC;IACzE,aAAa,GAA4B,IAAI,CAAC;IACtD,IAAY,KAAK,KAAuB,OAAO,IAAI,CAAC,aAAc,CAAC,eAAe,CAAC,CAAC,CAAC;IAErF,YACY,QAAgB,EAChB,YAAoB,EACpB,SAAmB,EAAE;QAFrB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,WAAM,GAAN,MAAM,CAAe;IAEjC,CAAC;IAEM,gBAAgB,CAAC,aAA+B;QACnD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAEM,KAAK,CAAC,sBAAsB;QAC/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CACtC,yBAAyB,CAAC,QAAQ,EAClC,KAAK,IAAI,EAAE;YACP,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3C,OAAO,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,EACD,KAAK,EAAE,CAAC,EAAE,EAAE;YACR,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,OAAO,kBAAkB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC,CACJ,CAAC;QAEF,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,cAAc;QACvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QACpF,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,iBAAiB;QACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAEO,KAAK,CAAC,eAAe;QACzB,MAAM,OAAO,GAAG;YACZ,UAAU,EAAE,oBAAoB;YAChC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;SACxB,CAAC;QAET,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzF,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;QAChD,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QAE5D,MAAM,SAAS,GAAG,SAAS;YACvB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC7C,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAExB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,wCAAwC,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,mCAAmC;gBACnD,eAAe,EAAE,SAAS,SAAS,EAAE;aACxC;YACD,IAAI,EAAE,YAAY;SACrB,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAClD;QAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/Crypto.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/Crypto.d.ts new file mode 100644 index 0000000..92a283f --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/Crypto.d.ts @@ -0,0 +1,5 @@ +export declare class Crypto { + static get current(): any; + private static get hasSubtleCrypto(); + private static tryLoadNodeWebCrypto; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/Crypto.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/Crypto.js new file mode 100644 index 0000000..d2c7c8c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/Crypto.js @@ -0,0 +1,20 @@ +export class Crypto { + static get current() { + return this.hasSubtleCrypto ? window.crypto : this.tryLoadNodeWebCrypto(); + } + static get hasSubtleCrypto() { + return typeof window !== 'undefined' && typeof window.crypto !== 'undefined' && typeof window.crypto.subtle !== 'undefined'; + } + static tryLoadNodeWebCrypto() { + try { + // Deliberately avoid bundling for browsers depending + // on node by doing this require during execution. + const { webcrypto } = require('crypto'); + return webcrypto; + } + catch (e) { + throw e; + } + } +} +//# sourceMappingURL=Crypto.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/Crypto.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/Crypto.js.map new file mode 100644 index 0000000..59c7f16 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/Crypto.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Crypto.js","sourceRoot":"","sources":["../../../src/auth/Crypto.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IACR,MAAM,KAAK,OAAO;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9E,CAAC;IAEO,MAAM,KAAK,eAAe;QAC9B,OAAO,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC;IAChI,CAAC;IAEO,MAAM,CAAC,oBAAoB;QAC/B,IAAI;YACA,qDAAqD;YACrD,kDAAkD;YAClD,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxC,OAAO,SAAS,CAAC;SACpB;QAAC,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,CAAC;SACX;IACL,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/IAuthStrategy.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/IAuthStrategy.d.ts new file mode 100644 index 0000000..6c3bfce --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/IAuthStrategy.d.ts @@ -0,0 +1,9 @@ +import type { AccessToken, SdkConfiguration } from "../types.js"; +export declare const emptyAccessToken: AccessToken; +export declare function isEmptyAccessToken(value: any): boolean; +export default interface IAuthStrategy { + setConfiguration(configuration: SdkConfiguration): void; + getOrCreateAccessToken(): Promise; + getAccessToken(): Promise; + removeAccessToken(): void; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/IAuthStrategy.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/IAuthStrategy.js new file mode 100644 index 0000000..8d0e7bc --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/IAuthStrategy.js @@ -0,0 +1,5 @@ +export const emptyAccessToken = { access_token: "emptyAccessToken", token_type: "", expires_in: 0, refresh_token: "", expires: -1 }; +export function isEmptyAccessToken(value) { + return value === emptyAccessToken; +} +//# sourceMappingURL=IAuthStrategy.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/IAuthStrategy.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/IAuthStrategy.js.map new file mode 100644 index 0000000..7d4f7d9 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/IAuthStrategy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"IAuthStrategy.js","sourceRoot":"","sources":["../../../src/auth/IAuthStrategy.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAgB,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;AACjJ,MAAM,UAAU,kBAAkB,CAAC,KAAU;IACzC,OAAO,KAAK,KAAK,gBAAgB,CAAC;AACtC,CAAC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ImplicitGrantStrategy.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ImplicitGrantStrategy.d.ts new file mode 100644 index 0000000..5a50ef0 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ImplicitGrantStrategy.d.ts @@ -0,0 +1,16 @@ +import type { SdkConfiguration, AccessToken } from "../types.js"; +import IAuthStrategy from "./IAuthStrategy.js"; +export default class ImplicitGrantStrategy implements IAuthStrategy { + private clientId; + private redirectUri; + private scopes; + private static readonly cacheKey; + private configuration; + private get cache(); + constructor(clientId: string, redirectUri: string, scopes: string[]); + setConfiguration(configuration: SdkConfiguration): void; + getOrCreateAccessToken(): Promise; + getAccessToken(): Promise; + removeAccessToken(): void; + private redirectOrVerifyToken; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ImplicitGrantStrategy.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ImplicitGrantStrategy.js new file mode 100644 index 0000000..3e81b45 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ImplicitGrantStrategy.js @@ -0,0 +1,58 @@ +import AccessTokenHelpers from "./AccessTokenHelpers.js"; +import { emptyAccessToken } from "./IAuthStrategy.js"; +export default class ImplicitGrantStrategy { + clientId; + redirectUri; + scopes; + static cacheKey = "spotify-sdk:ImplicitGrantStrategy:token"; + configuration = null; + get cache() { return this.configuration.cachingStrategy; } + constructor(clientId, redirectUri, scopes) { + this.clientId = clientId; + this.redirectUri = redirectUri; + this.scopes = scopes; + } + setConfiguration(configuration) { + this.configuration = configuration; + } + async getOrCreateAccessToken() { + const token = await this.cache.getOrCreate(ImplicitGrantStrategy.cacheKey, async () => { + const token = await this.redirectOrVerifyToken(); + return AccessTokenHelpers.toCachable(token); + }, async (expiring) => { + return AccessTokenHelpers.refreshCachedAccessToken(this.clientId, expiring); + }); + return token; + } + async getAccessToken() { + const token = await this.cache.get(ImplicitGrantStrategy.cacheKey); + return token; + } + removeAccessToken() { + this.cache.remove(ImplicitGrantStrategy.cacheKey); + } + async redirectOrVerifyToken() { + const hashParams = new URLSearchParams(window.location.hash.substring(1)); + const accessToken = hashParams.get("access_token"); + if (accessToken) { + return Promise.resolve({ + access_token: accessToken, + token_type: hashParams.get("token_type") ?? "", + expires_in: parseInt(hashParams.get("expires_in") ?? "0"), + refresh_token: hashParams.get("refresh_token") ?? "", + expires: Number(hashParams.get("expires")) || 0 + }); + } + const scopes = this.scopes ?? []; + var scope = scopes.join(' '); + const params = new URLSearchParams(); + params.append("client_id", this.clientId); + params.append("response_type", "token"); + params.append("redirect_uri", this.redirectUri); + params.append("scope", scope); + const authUrl = 'https://accounts.spotify.com/authorize?' + params.toString(); + this.configuration.redirectionStrategy.redirect(authUrl); + return emptyAccessToken; + } +} +//# sourceMappingURL=ImplicitGrantStrategy.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ImplicitGrantStrategy.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ImplicitGrantStrategy.js.map new file mode 100644 index 0000000..e13e5fe --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ImplicitGrantStrategy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ImplicitGrantStrategy.js","sourceRoot":"","sources":["../../../src/auth/ImplicitGrantStrategy.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAsB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAErE,MAAM,CAAC,OAAO,OAAO,qBAAqB;IAO1B;IACA;IACA;IAPJ,MAAM,CAAU,QAAQ,GAAG,yCAAyC,CAAC;IACrE,aAAa,GAA4B,IAAI,CAAC;IACtD,IAAY,KAAK,KAAuB,OAAO,IAAI,CAAC,aAAc,CAAC,eAAe,CAAC,CAAC,CAAC;IAErF,YACY,QAAgB,EAChB,WAAmB,EACnB,MAAgB;QAFhB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,gBAAW,GAAX,WAAW,CAAQ;QACnB,WAAM,GAAN,MAAM,CAAU;IAE5B,CAAC;IAEM,gBAAgB,CAAC,aAA+B;QACnD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAEM,KAAK,CAAC,sBAAsB;QAC/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CACtC,qBAAqB,CAAC,QAAQ,EAC9B,KAAK,IAAI,EAAE;YACP,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACjD,OAAO,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAClB,OAAO,kBAAkB,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChF,CAAC,CACJ,CAAC;QAEF,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,cAAc;QACvB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAChF,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,iBAAiB;QACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,qBAAqB;QAC/B,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAEnD,IAAI,WAAW,EAAE;YACb,OAAO,OAAO,CAAC,OAAO,CAAC;gBACnB,YAAY,EAAE,WAAW;gBACzB,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE;gBAC9C,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC;gBACzD,aAAa,EAAE,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE;gBACpD,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;aAClD,CAAC,CAAC;SACN;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QACjC,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE7B,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE9B,MAAM,OAAO,GAAG,yCAAyC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAE9E,IAAI,CAAC,aAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,gBAAgB,CAAC;IAC5B,CAAC"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ProvidedAccessTokenStrategy.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ProvidedAccessTokenStrategy.d.ts new file mode 100644 index 0000000..f982f97 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ProvidedAccessTokenStrategy.d.ts @@ -0,0 +1,20 @@ +import { AccessToken, SdkConfiguration } from "../types.js"; +import IAuthStrategy from "./IAuthStrategy.js"; +/** + * This strategy is used when you already have an access token and want to use it. + * The authentication strategy will automatically renew the token when it expires. + * Designed to allow a browser-based-app to post the access token to the server and use it from there. + * @constructor + * @param {string} clientId - Spotify application client id. + * @param {string} accessToken - The access token returned from a client side Authorization Code with PKCE flow. + */ +export default class ProvidedAccessTokenStrategy implements IAuthStrategy { + protected clientId: string; + protected accessToken: AccessToken; + private refreshTokenAction; + constructor(clientId: string, accessToken: AccessToken, refreshTokenAction?: (clientId: string, token: AccessToken) => Promise); + setConfiguration(_: SdkConfiguration): void; + getOrCreateAccessToken(): Promise; + getAccessToken(): Promise; + removeAccessToken(): void; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ProvidedAccessTokenStrategy.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ProvidedAccessTokenStrategy.js new file mode 100644 index 0000000..9a32b9c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ProvidedAccessTokenStrategy.js @@ -0,0 +1,50 @@ +import AccessTokenHelpers from "./AccessTokenHelpers.js"; +/** + * This strategy is used when you already have an access token and want to use it. + * The authentication strategy will automatically renew the token when it expires. + * Designed to allow a browser-based-app to post the access token to the server and use it from there. + * @constructor + * @param {string} clientId - Spotify application client id. + * @param {string} accessToken - The access token returned from a client side Authorization Code with PKCE flow. + */ +export default class ProvidedAccessTokenStrategy { + clientId; + accessToken; + refreshTokenAction; + constructor(clientId, accessToken, refreshTokenAction) { + this.clientId = clientId; + this.accessToken = accessToken; + this.refreshTokenAction = refreshTokenAction || AccessTokenHelpers.refreshCachedAccessToken; + // If the raw token from the jwt response is provided here + // Calculate an absolute `expiry` value. + // Caveat: If this token isn't fresh, this value will be off. + // It's the responsibility of the calling code to either set a valid + // expires property, or ensure expires_in accounts for any lag between + // issuing and passing here. + if (!this.accessToken.expires) { + this.accessToken.expires = AccessTokenHelpers.calculateExpiry(this.accessToken); + } + } + setConfiguration(_) { + } + async getOrCreateAccessToken() { + if (this.accessToken.expires && this.accessToken.expires <= Date.now()) { + const refreshed = await this.refreshTokenAction(this.clientId, this.accessToken); + this.accessToken = refreshed; + } + return this.accessToken; + } + async getAccessToken() { + return this.accessToken; + } + removeAccessToken() { + this.accessToken = { + access_token: "", + token_type: "", + expires_in: 0, + refresh_token: "", + expires: 0 + }; + } +} +//# sourceMappingURL=ProvidedAccessTokenStrategy.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ProvidedAccessTokenStrategy.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ProvidedAccessTokenStrategy.js.map new file mode 100644 index 0000000..d2bd473 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/auth/ProvidedAccessTokenStrategy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ProvidedAccessTokenStrategy.js","sourceRoot":"","sources":["../../../src/auth/ProvidedAccessTokenStrategy.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAGzD;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,2BAA2B;IAI9B;IACA;IAJN,kBAAkB,CAAiE;IAE3F,YACc,QAAgB,EAChB,WAAwB,EAClC,kBAAmF;QAFzE,aAAQ,GAAR,QAAQ,CAAQ;QAChB,gBAAW,GAAX,WAAW,CAAa;QAGlC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,IAAI,kBAAkB,CAAC,wBAAwB,CAAC;QAE5F,0DAA0D;QAC1D,wCAAwC;QACxC,6DAA6D;QAC7D,oEAAoE;QACpE,sEAAsE;QACtE,4BAA4B;QAE5B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACnF;IACL,CAAC;IAEM,gBAAgB,CAAC,CAAmB;IAC3C,CAAC;IAEM,KAAK,CAAC,sBAAsB;QAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;YACpE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACjF,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;SAChC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,cAAc;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEM,iBAAiB;QACpB,IAAI,CAAC,WAAW,GAAG;YACf,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,EAAE;YACjB,OAAO,EAAE,CAAC;SACb,CAAC;IACN,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/GenericCache.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/GenericCache.d.ts new file mode 100644 index 0000000..4939125 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/GenericCache.d.ts @@ -0,0 +1,17 @@ +import { ICachingStrategy, ICachable } from "../types.js"; +import { ICacheStore } from "./ICacheStore.js"; +export default class GenericCache implements ICachingStrategy { + private storage; + private updateFunctions; + private autoRenewInterval; + private autoRenewWindow; + constructor(storage: ICacheStore, updateFunctions?: Map Promise>, autoRenewInterval?: number, autoRenewWindow?: number); + getOrCreate(cacheKey: string, createFunction: () => Promise, updateFunction?: (item: T) => Promise): Promise; + get(cacheKey: string): Promise; + set(cacheKey: string, value: object, expiresIn: number): void; + setCacheItem(cacheKey: string, cacheItem: ICachable): void; + remove(cacheKey: string): void; + private itemDueToExpire; + private autoRenewRenewableItems; + private tryUpdateItem; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/GenericCache.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/GenericCache.js new file mode 100644 index 0000000..6e65afa --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/GenericCache.js @@ -0,0 +1,101 @@ +import { isEmptyAccessToken } from "../auth/IAuthStrategy.js"; +export default class GenericCache { + storage; + updateFunctions; + autoRenewInterval; + autoRenewWindow; + constructor(storage, updateFunctions = new Map(), autoRenewInterval = 0, autoRenewWindow = 2 * 60 * 1000 // Two minutes + ) { + this.storage = storage; + this.updateFunctions = updateFunctions; + this.autoRenewInterval = autoRenewInterval; + this.autoRenewWindow = autoRenewWindow; + if (this.autoRenewInterval > 0) { + setInterval(() => this.autoRenewRenewableItems(), this.autoRenewInterval); + } + } + async getOrCreate(cacheKey, createFunction, updateFunction) { + if (updateFunction) { + this.updateFunctions.set(cacheKey, updateFunction); + } + const item = await this.get(cacheKey); + if (item) { + return item; + } + const newCacheItem = await createFunction(); + if (!newCacheItem) { + throw new Error("Could not create cache item"); + } + if (!isEmptyAccessToken(newCacheItem)) { + this.setCacheItem(cacheKey, newCacheItem); + } + return newCacheItem; + } + async get(cacheKey) { + let asString = this.storage.get(cacheKey); + let cachedItem = asString ? JSON.parse(asString) : null; + if (this.itemDueToExpire(cachedItem) && this.updateFunctions.has(cacheKey)) { + const updateFunction = this.updateFunctions.get(cacheKey); + await this.tryUpdateItem(cacheKey, cachedItem, updateFunction); + // Ensure updated item is returned + asString = this.storage.get(cacheKey); + cachedItem = asString ? JSON.parse(asString) : null; + } + if (!cachedItem) { + return null; + } + if (cachedItem.expires && (cachedItem.expires === -1 || cachedItem.expires <= Date.now())) { + this.remove(cacheKey); + return null; + } + if (cachedItem.expiresOnAccess && cachedItem.expiresOnAccess === true) { + this.remove(cacheKey); + return cachedItem; + } + return cachedItem; + } + set(cacheKey, value, expiresIn) { + const expires = Date.now() + expiresIn; + const cacheItem = { ...value, expires }; + this.setCacheItem(cacheKey, cacheItem); + } + setCacheItem(cacheKey, cacheItem) { + const asString = JSON.stringify(cacheItem); + this.storage.set(cacheKey, asString); + } + remove(cacheKey) { + this.storage.remove(cacheKey); + } + itemDueToExpire(item) { + if (!item) { + return false; + } + if (!item.expires) { + return false; + } + return item.expires - Date.now() < (this.autoRenewWindow); + } + async autoRenewRenewableItems() { + this.updateFunctions.forEach(async (updateFunction, key) => { + const cachedItem = await this.get(key); + if (!cachedItem) { + return; + } + if (updateFunction && this.itemDueToExpire(cachedItem)) { + await this.tryUpdateItem(key, cachedItem, updateFunction); + } + }); + } + async tryUpdateItem(key, cachedItem, updateFunction) { + try { + const updated = await updateFunction(cachedItem); + if (updated) { + this.setCacheItem(key, updated); + } + } + catch (e) { + console.error(e); + } + } +} +//# sourceMappingURL=GenericCache.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/GenericCache.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/GenericCache.js.map new file mode 100644 index 0000000..d0e4fdb --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/GenericCache.js.map @@ -0,0 +1 @@ +{"version":3,"file":"GenericCache.js","sourceRoot":"","sources":["../../../src/caching/GenericCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAI9D,MAAM,CAAC,OAAO,OAAO,YAAY;IAEjB;IACA;IACA;IACA;IAJZ,YACY,OAAoB,EACpB,kBAAkE,IAAI,GAAG,EAAE,EAC3E,oBAA4B,CAAC,EAC7B,kBAA0B,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc;;QAHtD,YAAO,GAAP,OAAO,CAAa;QACpB,oBAAe,GAAf,eAAe,CAA4D;QAC3E,sBAAiB,GAAjB,iBAAiB,CAAY;QAC7B,oBAAe,GAAf,eAAe,CAAwB;QAE/C,IAAI,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE;YAC5B,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;SAC7E;IACL,CAAC;IAEM,KAAK,CAAC,WAAW,CACpB,QAAgB,EAChB,cAAqD,EACrD,cAA6D;QAE7D,IAAI,cAAc,EAAE;YAChB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;SACtD;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAI,QAAQ,CAAC,CAAC;QACzC,IAAI,IAAI,EAAE;YACN,OAAO,IAAI,CAAC;SACf;QAED,MAAM,YAAY,GAAG,MAAM,cAAc,EAAE,CAAC;QAC5C,IAAI,CAAC,YAAY,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAClD;QAED,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE;YACnC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;SAC7C;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,GAAG,CAAI,QAAgB;QAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,UAAU,GAAkB,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEvE,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACxE,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAe,CAAC,CAAC;YAEhE,kCAAkC;YAClC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SACvD;QAED,IAAI,CAAC,UAAU,EAAE;YACb,OAAO,IAAI,CAAC;SACf;QAED,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE;YACvF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC;SACf;QAED,IAAI,UAAU,CAAC,eAAe,IAAI,UAAU,CAAC,eAAe,KAAK,IAAI,EAAE;YACnE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO,UAAU,CAAC;SACrB;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAEM,GAAG,CAAC,QAAgB,EAAE,KAAa,EAAE,SAAiB;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACvC,MAAM,SAAS,GAAc,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC;QACnD,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC;IAEM,YAAY,CAAC,QAAgB,EAAE,SAAoB;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,QAAgB;QAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAEO,eAAe,CAAC,IAAe;QACnC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9D,CAAC;IAEO,KAAK,CAAC,uBAAuB;QACjC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE;YACvD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,EAAE;gBACb,OAAO;aACV;YAED,IAAI,cAAc,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE;gBACpD,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;aAC7D;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,GAAW,EAAE,UAAqB,EAAE,cAAuD;QACnH,IAAI;YACA,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;YACjD,IAAI,OAAO,EAAE;gBACT,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;aACnC;SACJ;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACpB;IACL,CAAC;CAEJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/ICacheStore.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/ICacheStore.d.ts new file mode 100644 index 0000000..198783e --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/ICacheStore.d.ts @@ -0,0 +1,5 @@ +export interface ICacheStore { + get(key: string): string | null; + set(key: string, value: string): void; + remove(key: string): void; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/ICacheStore.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/ICacheStore.js new file mode 100644 index 0000000..4dc224e --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/ICacheStore.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=ICacheStore.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/ICacheStore.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/ICacheStore.js.map new file mode 100644 index 0000000..3a75ce6 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/ICacheStore.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ICacheStore.js","sourceRoot":"","sources":["../../../src/caching/ICacheStore.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/InMemoryCachingStrategy.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/InMemoryCachingStrategy.d.ts new file mode 100644 index 0000000..cafa513 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/InMemoryCachingStrategy.d.ts @@ -0,0 +1,4 @@ +import GenericCache from "./GenericCache.js"; +export default class InMemoryCachingStrategy extends GenericCache { + constructor(); +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/InMemoryCachingStrategy.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/InMemoryCachingStrategy.js new file mode 100644 index 0000000..b8eba44 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/InMemoryCachingStrategy.js @@ -0,0 +1,19 @@ +import GenericCache from "./GenericCache.js"; +export default class InMemoryCachingStrategy extends GenericCache { + constructor() { + super(new DictionaryCacheStore()); + } +} +class DictionaryCacheStore { + cache = new Map(); + get(key) { + return this.cache.get(key) ?? null; + } + set(key, value) { + this.cache.set(key, value); + } + remove(key) { + this.cache.delete(key); + } +} +//# sourceMappingURL=InMemoryCachingStrategy.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/InMemoryCachingStrategy.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/InMemoryCachingStrategy.js.map new file mode 100644 index 0000000..ea2e31f --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/InMemoryCachingStrategy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"InMemoryCachingStrategy.js","sourceRoot":"","sources":["../../../src/caching/InMemoryCachingStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAG7C,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,YAAY;IAC7D;QACI,KAAK,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;IACtC,CAAC;CACJ;AAED,MAAM,oBAAoB;IACd,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEnC,GAAG,CAAC,GAAW;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACvC,CAAC;IAEM,GAAG,CAAC,GAAW,EAAE,KAAa;QACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAEM,MAAM,CAAC,GAAW;QACrB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/LocalStorageCachingStrategy.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/LocalStorageCachingStrategy.d.ts new file mode 100644 index 0000000..4b2a64d --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/LocalStorageCachingStrategy.d.ts @@ -0,0 +1,4 @@ +import GenericCache from "./GenericCache.js"; +export default class LocalStorageCachingStrategy extends GenericCache { + constructor(); +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/LocalStorageCachingStrategy.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/LocalStorageCachingStrategy.js new file mode 100644 index 0000000..0ed0e19 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/LocalStorageCachingStrategy.js @@ -0,0 +1,18 @@ +import GenericCache from "./GenericCache.js"; +export default class LocalStorageCachingStrategy extends GenericCache { + constructor() { + super(new LocalStorageCacheStore()); + } +} +class LocalStorageCacheStore { + get(key) { + return localStorage.getItem(key); + } + set(key, value) { + localStorage.setItem(key, value); + } + remove(key) { + localStorage.removeItem(key); + } +} +//# sourceMappingURL=LocalStorageCachingStrategy.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/LocalStorageCachingStrategy.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/LocalStorageCachingStrategy.js.map new file mode 100644 index 0000000..5549317 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/caching/LocalStorageCachingStrategy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LocalStorageCachingStrategy.js","sourceRoot":"","sources":["../../../src/caching/LocalStorageCachingStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAG7C,MAAM,CAAC,OAAO,OAAO,2BAA4B,SAAQ,YAAY;IACjE;QACI,KAAK,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;IACxC,CAAC;CACJ;AAED,MAAM,sBAAsB;IACjB,GAAG,CAAC,GAAW;QAClB,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAEM,GAAG,CAAC,GAAW,EAAE,KAAa;QACjC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAEM,MAAM,CAAC,GAAW;QACrB,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AlbumsEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AlbumsEndpoints.d.ts new file mode 100644 index 0000000..18274fe --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AlbumsEndpoints.d.ts @@ -0,0 +1,7 @@ +import type { Market, Album, MaxInt, Page, SimplifiedTrack } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class AlbumsEndpoints extends EndpointsBase { + get(id: string, market?: Market): Promise; + get(ids: string[], market?: Market): Promise; + tracks(albumId: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AlbumsEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AlbumsEndpoints.js new file mode 100644 index 0000000..f93c182 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AlbumsEndpoints.js @@ -0,0 +1,19 @@ +import EndpointsBase from './EndpointsBase.js'; +export default class AlbumsEndpoints extends EndpointsBase { + async get(idOrIds, market) { + if (typeof idOrIds === 'string') { + const params = this.paramsFor({ market }); + const album = await this.getRequest(`albums/${idOrIds}${params}`); + return album; + } + const params = this.paramsFor({ ids: idOrIds, market }); + // TODO: only returns top 20, validate here + const response = await this.getRequest(`albums${params}`); + return response.albums; + } + tracks(albumId, market, limit, offset) { + const params = this.paramsFor({ market, limit, offset }); + return this.getRequest(`albums/${albumId}/tracks${params}`); + } +} +//# sourceMappingURL=AlbumsEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AlbumsEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AlbumsEndpoints.js.map new file mode 100644 index 0000000..e0b9429 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AlbumsEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AlbumsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/AlbumsEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,aAAa;IAI/C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAQ,UAAU,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;YACzE,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAS,SAAS,MAAM,EAAE,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,OAAe,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAwB,UAAU,OAAO,UAAU,MAAM,EAAE,CAAC,CAAC;IACvF,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ArtistsEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ArtistsEndpoints.d.ts new file mode 100644 index 0000000..4b5237b --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ArtistsEndpoints.d.ts @@ -0,0 +1,9 @@ +import type { Artist, Artists, Market, MaxInt, Page, SimplifiedAlbum, TopTracksResult } from "../types.js"; +import EndpointsBase from "./EndpointsBase.js"; +export default class ArtistsEndpoints extends EndpointsBase { + get(id: string): Promise; + get(ids: string[]): Promise; + albums(id: string, includeGroups?: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; + topTracks(id: string, market: Market): Promise; + relatedArtists(id: string): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ArtistsEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ArtistsEndpoints.js new file mode 100644 index 0000000..ab7fe43 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ArtistsEndpoints.js @@ -0,0 +1,31 @@ +import EndpointsBase from "./EndpointsBase.js"; +export default class ArtistsEndpoints extends EndpointsBase { + async get(idOrIds) { + if (typeof idOrIds === "string") { + const artist = this.getRequest(`artists/${idOrIds}`); + return artist; + } + const params = this.paramsFor({ ids: idOrIds }); + const response = await this.getRequest(`artists${params}`); + return response.artists; + } + albums(id, includeGroups, market, limit, offset) { + const params = this.paramsFor({ + include_groups: includeGroups, + market, + limit, + offset, + }); + return this.getRequest(`artists/${id}/albums${params}`); + } + topTracks(id, market) { + // BUG: market is flagged as optional in the docs, but it's actually required for this endpoint + // otherwise you get a 400 + const params = this.paramsFor({ market }); + return this.getRequest(`artists/${id}/top-tracks${params}`); + } + relatedArtists(id) { + return this.getRequest(`artists/${id}/related-artists`); + } +} +//# sourceMappingURL=ArtistsEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ArtistsEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ArtistsEndpoints.js.map new file mode 100644 index 0000000..033e2a9 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ArtistsEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ArtistsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ArtistsEndpoints.ts"],"names":[],"mappings":"AAUA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,aAAa;IAGhD,KAAK,CAAC,GAAG,CAAC,OAA0B;QACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAS,WAAW,OAAO,EAAE,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC;SACjB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAU,UAAU,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAEM,MAAM,CACT,EAAU,EACV,aAAsB,EACtB,MAAe,EACf,KAAkB,EAClB,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,cAAc,EAAE,aAAa;YAC7B,MAAM;YACN,KAAK;YACL,MAAM;SACT,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,UAAU,CAClB,WAAW,EAAE,UAAU,MAAM,EAAE,CAClC,CAAC;IACN,CAAC;IAEM,SAAS,CAAC,EAAU,EAAE,MAAc;QACvC,+FAA+F;QAC/F,0BAA0B;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,UAAU,CAClB,WAAW,EAAE,cAAc,MAAM,EAAE,CACtC,CAAC;IACN,CAAC;IAEM,cAAc,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAU,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACrE,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AudiobooksEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AudiobooksEndpoints.d.ts new file mode 100644 index 0000000..cfe18b3 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AudiobooksEndpoints.d.ts @@ -0,0 +1,7 @@ +import type { Market, Audiobook, MaxInt, Page, SimplifiedChapter } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class AudiobooksEndpoints extends EndpointsBase { + get(id: string, market?: Market): Promise; + get(ids: string[], market?: Market): Promise; + getAudiobookChapters(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AudiobooksEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AudiobooksEndpoints.js new file mode 100644 index 0000000..3e78543 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AudiobooksEndpoints.js @@ -0,0 +1,17 @@ +import EndpointsBase from './EndpointsBase.js'; +export default class AudiobooksEndpoints extends EndpointsBase { + async get(idOrIds, market) { + if (typeof idOrIds === 'string') { + const params = this.paramsFor({ market }); + return this.getRequest(`audiobooks/${idOrIds}${params}`); + } + const params = this.paramsFor({ ids: idOrIds, market }); + const response = await this.getRequest(`audiobooks${params}`); + return response.audiobooks; + } + getAudiobookChapters(id, market, limit, offset) { + const params = this.paramsFor({ market, limit, offset }); + return this.getRequest(`audiobooks/${id}/chapters${params}`); + } +} +//# sourceMappingURL=AudiobooksEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AudiobooksEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AudiobooksEndpoints.js.map new file mode 100644 index 0000000..916809e --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/AudiobooksEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AudiobooksEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/AudiobooksEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,aAAa;IAGnD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAY,cAAc,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SACvE;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAa,aAAa,MAAM,EAAE,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC/B,CAAC;IAEM,oBAAoB,CAAC,EAAU,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAA0B,cAAc,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;IAC1F,CAAC;CAEJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/BrowseEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/BrowseEndpoints.d.ts new file mode 100644 index 0000000..7f99899 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/BrowseEndpoints.d.ts @@ -0,0 +1,9 @@ +import type { CountryCodeA2, MaxInt, Categories, Category, NewReleases, FeaturedPlaylists } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class BrowseEndpoints extends EndpointsBase { + getCategories(country?: CountryCodeA2, locale?: string, limit?: MaxInt<50>, offset?: number): Promise; + getCategory(categoryId: string, country?: CountryCodeA2, locale?: string): Promise; + getNewReleases(country?: string, limit?: MaxInt<50>, offset?: number): Promise; + getFeaturedPlaylists(country?: CountryCodeA2, locale?: string, timestamp?: string, limit?: MaxInt<50>, offset?: number): Promise; + getPlaylistsForCategory(category_id: string, country?: CountryCodeA2, limit?: MaxInt<50>, offset?: number): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/BrowseEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/BrowseEndpoints.js new file mode 100644 index 0000000..68729e7 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/BrowseEndpoints.js @@ -0,0 +1,24 @@ +import EndpointsBase from './EndpointsBase.js'; +export default class BrowseEndpoints extends EndpointsBase { + getCategories(country, locale, limit, offset) { + const params = this.paramsFor({ country, locale, limit, offset }); + return this.getRequest(`browse/categories${params}`); + } + getCategory(categoryId, country, locale) { + const params = this.paramsFor({ country, locale }); + return this.getRequest(`browse/categories/${categoryId}${params}`); + } + getNewReleases(country, limit, offset) { + const params = this.paramsFor({ country, limit, offset }); + return this.getRequest(`browse/new-releases${params}`); + } + getFeaturedPlaylists(country, locale, timestamp, limit, offset) { + const params = this.paramsFor({ country, locale, timestamp, limit, offset }); + return this.getRequest(`browse/featured-playlists${params}`); + } + getPlaylistsForCategory(category_id, country, limit, offset) { + const params = this.paramsFor({ country, limit, offset }); + return this.getRequest(`browse/categories/${category_id}/playlists${params}`); + } +} +//# sourceMappingURL=BrowseEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/BrowseEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/BrowseEndpoints.js.map new file mode 100644 index 0000000..b2991f6 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/BrowseEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BrowseEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/BrowseEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,aAAa;IAE/C,aAAa,CAAC,OAAuB,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QAC9F,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAElE,OAAO,IAAI,CAAC,UAAU,CAAa,oBAAoB,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IAEM,WAAW,CAAC,UAAkB,EAAE,OAAuB,EAAE,MAAe;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAEnD,OAAO,IAAI,CAAC,UAAU,CAAW,qBAAqB,UAAU,GAAG,MAAM,EAAE,CAAC,CAAC;IACjF,CAAC;IAEM,cAAc,CAAC,OAAgB,EAAE,KAAkB,EAAE,MAAe;QACvE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,UAAU,CAAc,sBAAsB,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IAEM,oBAAoB,CAAC,OAAuB,EAAE,MAAe,EAAE,SAAkB,EAAE,KAAkB,EAAE,MAAe;QACzH,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC,UAAU,CAAoB,4BAA4B,MAAM,EAAE,CAAC,CAAC;IACpF,CAAC;IAEM,uBAAuB,CAAC,WAAmB,EAAE,OAAuB,EAAE,KAAkB,EAAE,MAAe;QAC5G,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,UAAU,CAAoB,qBAAqB,WAAW,aAAa,MAAM,EAAE,CAAC,CAAC;IACrG,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ChaptersEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ChaptersEndpoints.d.ts new file mode 100644 index 0000000..9479886 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ChaptersEndpoints.d.ts @@ -0,0 +1,7 @@ +import type { Chapter } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export type ChapterMarket = "GB" | "US" | "IE" | "NZ" | "AU"; +export default class ChaptersEndpoints extends EndpointsBase { + get(id: string, market: ChapterMarket): Promise; + get(ids: string[], market: ChapterMarket): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ChaptersEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ChaptersEndpoints.js new file mode 100644 index 0000000..057eecb --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ChaptersEndpoints.js @@ -0,0 +1,14 @@ +import EndpointsBase from './EndpointsBase.js'; +export default class ChaptersEndpoints extends EndpointsBase { + async get(idOrIds, market) { + if (typeof idOrIds === 'string') { + const params = this.paramsFor({ market }); + return this.getRequest(`chapters/${idOrIds}${params}`); + } + // TODO: Only returns top 50, validate / pre-check here + const params = this.paramsFor({ ids: idOrIds, market }); + const response = await this.getRequest(`chapters${params}`); + return response.chapters; + } +} +//# sourceMappingURL=ChaptersEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ChaptersEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ChaptersEndpoints.js.map new file mode 100644 index 0000000..d686d3e --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ChaptersEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ChaptersEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ChaptersEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAK/C,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAGjD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAqB;QAC9D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAU,YAAY,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SACnE;QAED,uDAAuD;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAW,WAAW,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/CurrentUserEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/CurrentUserEndpoints.d.ts new file mode 100644 index 0000000..ef1c96f --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/CurrentUserEndpoints.d.ts @@ -0,0 +1,55 @@ +import { SpotifyApi } from '../SpotifyApi.js'; +import type { Page, Artist, Track, MaxInt, FollowedArtists, Market, SavedAlbum, SimplifiedAudiobook, SimplifiedPlaylist, SavedEpisode, SavedShow, SavedTrack, UserProfile } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class CurrentUserEndpoints extends EndpointsBase { + albums: CurrentUserAlbumsEndpoints; + audiobooks: CurrentUserAudiobooksEndpoints; + episodes: CurrentUserEpisodesEndpoints; + playlists: CurrentUserPlaylistsEndpoints; + shows: CurrentUserShowsEndpoints; + tracks: CurrentUserTracksEndpoints; + constructor(api: SpotifyApi); + profile(): Promise; + topItems(type: T, time_range?: 'short_term' | 'medium_term' | 'long_term', limit?: MaxInt<50>, offset?: number): Promise>; + followedArtists(after?: string, limit?: MaxInt<50>): Promise; + followArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise; + unfollowArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise; + followsArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise; +} +declare class CurrentUserAlbumsEndpoints extends EndpointsBase { + savedAlbums(limit?: MaxInt<50>, offset?: number, market?: Market): Promise>; + saveAlbums(ids: string[]): Promise; + removeSavedAlbums(ids: string[]): Promise; + hasSavedAlbums(ids: string[]): Promise; +} +declare class CurrentUserAudiobooksEndpoints extends EndpointsBase { + savedAudiobooks(limit?: MaxInt<50>, offset?: number): Promise>; + saveAudiobooks(ids: string[]): Promise; + removeSavedAudiobooks(ids: string[]): Promise; + hasSavedAudiobooks(ids: string[]): Promise; +} +declare class CurrentUserEpisodesEndpoints extends EndpointsBase { + savedEpisodes(market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; + saveEpisodes(ids: string[]): Promise; + removeSavedEpisodes(ids: string[]): Promise; + hasSavedEpisodes(ids: string[]): Promise; +} +declare class CurrentUserPlaylistsEndpoints extends EndpointsBase { + playlists(limit?: MaxInt<50>, offset?: number): Promise>; + follow(playlist_id: string): Promise; + unfollow(playlist_id: string): Promise; + isFollowing(playlistId: string, ids: string[]): Promise; +} +declare class CurrentUserShowsEndpoints extends EndpointsBase { + savedShows(limit?: MaxInt<50>, offset?: number): Promise>; + saveShows(ids: string[]): Promise; + removeSavedShows(ids: string[], market?: Market): Promise; + hasSavedShow(ids: string[]): Promise; +} +declare class CurrentUserTracksEndpoints extends EndpointsBase { + savedTracks(limit?: MaxInt<50>, offset?: number, market?: Market): Promise>; + saveTracks(ids: string[]): Promise; + removeSavedTracks(ids: string[]): Promise; + hasSavedTracks(ids: string[]): Promise; +} +export {}; diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/CurrentUserEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/CurrentUserEndpoints.js new file mode 100644 index 0000000..a310bfc --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/CurrentUserEndpoints.js @@ -0,0 +1,140 @@ +import EndpointsBase from './EndpointsBase.js'; +export default class CurrentUserEndpoints extends EndpointsBase { + albums; + audiobooks; + episodes; + playlists; + shows; + tracks; + constructor(api) { + super(api); + this.albums = new CurrentUserAlbumsEndpoints(api); + this.audiobooks = new CurrentUserAudiobooksEndpoints(api); + this.episodes = new CurrentUserEpisodesEndpoints(api); + this.playlists = new CurrentUserPlaylistsEndpoints(api); + this.shows = new CurrentUserShowsEndpoints(api); + this.tracks = new CurrentUserTracksEndpoints(api); + } + profile() { + return this.getRequest('me'); + } + topItems(type, time_range, limit, offset) { + const params = this.paramsFor({ time_range, limit, offset }); + return this.getRequest(`me/top/${type}${params}`); + } + followedArtists(after, limit) { + const params = this.paramsFor({ type: "artist", after, limit }); + return this.getRequest(`me/following${params}`); + } + async followArtistsOrUsers(ids, type) { + const params = this.paramsFor({ type }); + await this.putRequest(`me/following${params}`, { ids }); + } + async unfollowArtistsOrUsers(ids, type) { + const params = this.paramsFor({ type }); + await this.deleteRequest(`me/following${params}`, { ids }); + } + followsArtistsOrUsers(ids, type) { + const params = this.paramsFor({ ids, type }); + return this.getRequest(`me/following/contains${params}`); + } +} +class CurrentUserAlbumsEndpoints extends EndpointsBase { + savedAlbums(limit, offset, market) { + const params = this.paramsFor({ limit, offset, market }); + return this.getRequest(`me/albums${params}`); + } + async saveAlbums(ids) { + await this.putRequest('me/albums', ids); + } + async removeSavedAlbums(ids) { + await this.deleteRequest('me/albums', ids); + } + hasSavedAlbums(ids) { + const params = this.paramsFor({ ids }); + return this.getRequest(`me/albums/contains${params}`); + } +} +class CurrentUserAudiobooksEndpoints extends EndpointsBase { + savedAudiobooks(limit, offset) { + const params = this.paramsFor({ limit, offset }); + return this.getRequest(`me/audiobooks${params}`); + } + async saveAudiobooks(ids) { + await this.putRequest('me/audiobooks', ids); + } + async removeSavedAudiobooks(ids) { + await this.deleteRequest('me/audiobooks', ids); + } + hasSavedAudiobooks(ids) { + const params = this.paramsFor({ ids }); + return this.getRequest(`me/audiobooks/contains${params}`); + } +} +class CurrentUserEpisodesEndpoints extends EndpointsBase { + savedEpisodes(market, limit, offset) { + const params = this.paramsFor({ market, limit, offset }); + return this.getRequest(`me/episodes${params}`); + } + async saveEpisodes(ids) { + await this.putRequest(`me/episodes`, ids); + } + async removeSavedEpisodes(ids) { + await this.deleteRequest(`me/episodes`, ids); + } + hasSavedEpisodes(ids) { + const params = this.paramsFor({ ids }); + return this.getRequest(`me/episodes/contains${params}`); + } +} +class CurrentUserPlaylistsEndpoints extends EndpointsBase { + playlists(limit, offset) { + const params = this.paramsFor({ limit, offset }); + return this.getRequest(`me/playlists${params}`); + } + async follow(playlist_id) { + await this.putRequest(`playlists/${playlist_id}/followers`); + } + async unfollow(playlist_id) { + await this.deleteRequest(`playlists/${playlist_id}/followers`); + } + isFollowing(playlistId, ids) { + const params = this.paramsFor({ ids }); + return this.getRequest(`playlists/${playlistId}/followers/contains${params}`); + } +} +class CurrentUserShowsEndpoints extends EndpointsBase { + savedShows(limit, offset) { + const params = this.paramsFor({ limit, offset }); + return this.getRequest(`me/shows${params}`); + } + saveShows(ids) { + const params = this.paramsFor({ ids }); + return this.putRequest(`me/shows${params}`); + } + removeSavedShows(ids, market) { + const params = this.paramsFor({ ids, market }); + return this.deleteRequest(`me/shows${params}`); + } + hasSavedShow(ids) { + const params = this.paramsFor({ ids }); + return this.getRequest(`me/shows/contains${params}`); + } +} +class CurrentUserTracksEndpoints extends EndpointsBase { + savedTracks(limit, offset, market) { + const params = this.paramsFor({ limit, offset, market }); + return this.getRequest(`me/tracks${params}`); + } + async saveTracks(ids) { + await this.putRequest('me/tracks', ids); + } + async removeSavedTracks(ids) { + await this.deleteRequest('me/tracks', ids); + } + hasSavedTracks(ids) { + const params = this.paramsFor({ ids }); + return this.getRequest(`me/tracks/contains${params}`); + } +} +//# sourceMappingURL=CurrentUserEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/CurrentUserEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/CurrentUserEndpoints.js.map new file mode 100644 index 0000000..862f4ec --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/CurrentUserEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CurrentUserEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/CurrentUserEndpoints.ts"],"names":[],"mappings":"AAEA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,aAAa;IACpD,MAAM,CAA6B;IACnC,UAAU,CAAiC;IAC3C,QAAQ,CAA+B;IACvC,SAAS,CAAgC;IACzC,KAAK,CAA4B;IACjC,MAAM,CAA6B;IAE1C,YAAY,GAAe;QACvB,KAAK,CAAC,GAAG,CAAC,CAAC;QAEX,IAAI,CAAC,MAAM,GAAG,IAAI,0BAA0B,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,IAAI,8BAA8B,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,4BAA4B,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,IAAI,6BAA6B,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,GAAG,IAAI,yBAAyB,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,0BAA0B,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,UAAU,CAAc,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEM,QAAQ,CAAiC,IAAO,EAAE,UAAuD,EAAE,KAAkB,EAAE,MAAe;QACjJ,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,UAAU,CAA6C,UAAU,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC;IAClG,CAAC;IAEM,eAAe,CAAC,KAAc,EAAE,KAAkB;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,UAAU,CAAkB,eAAe,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,GAAa,EAAE,IAAuB;QACpE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5D,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,GAAa,EAAE,IAAuB;QACtE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC;IAEM,qBAAqB,CAAC,GAAa,EAAE,IAAuB;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,UAAU,CAAY,wBAAwB,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;CACJ;AAGD,MAAM,0BAA2B,SAAQ,aAAa;IAC3C,WAAW,CAAC,KAAkB,EAAE,MAAe,EAAE,MAAe;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAmB,YAAY,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,GAAa;QACjC,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,GAAa;QACxC,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAEM,cAAc,CAAC,GAAa;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CAAY,qBAAqB,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;CACJ;AAED,MAAM,8BAA+B,SAAQ,aAAa;IAC/C,eAAe,CAAC,KAAkB,EAAE,MAAe;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,UAAU,CAA4B,gBAAgB,MAAM,EAAE,CAAC,CAAC;IAChF,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,GAAa;QACrC,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,GAAa;QAC5C,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;IAEM,kBAAkB,CAAC,GAAa;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CAAY,yBAAyB,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;CACJ;AAED,MAAM,4BAA6B,SAAQ,aAAa;IAC7C,aAAa,CAAC,MAAe,EAAE,KAAkB,EAAE,MAAe;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAqB,cAAc,MAAM,EAAE,CAAC,CAAC;IACvE,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,GAAa;QACnC,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;IAC7C,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,GAAa;QAC1C,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;IAChD,CAAC;IAEM,gBAAgB,CAAC,GAAa;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CAAY,uBAAuB,MAAM,EAAE,CAAC,CAAC;IACvE,CAAC;CACJ;AAED,MAAM,6BAA8B,SAAQ,aAAa;IAC9C,SAAS,CAAC,KAAkB,EAAE,MAAe;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,UAAU,CAA2B,eAAe,MAAM,EAAE,CAAC,CAAC;IAC9E,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,WAAmB;QACnC,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,WAAW,YAAY,CAAC,CAAC;IAChE,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,WAAmB;QACrC,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,WAAW,YAAY,CAAC,CAAC;IACnE,CAAC;IAEM,WAAW,CAAC,UAAkB,EAAE,GAAa;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CAAY,aAAa,UAAU,sBAAsB,MAAM,EAAE,CAAC,CAAA;IAC5F,CAAC;CACJ;AAED,MAAM,yBAA0B,SAAQ,aAAa;IAC1C,UAAU,CAAC,KAAkB,EAAE,MAAe;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QAChD,OAAO,IAAI,CAAC,UAAU,CAAkB,WAAW,MAAM,EAAE,CAAC,CAAC;IACjE,CAAC;IAEM,SAAS,CAAC,GAAa;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAEM,gBAAgB,CAAC,GAAa,EAAE,MAAe;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IAEM,YAAY,CAAC,GAAa;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CAAY,oBAAoB,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;CACJ;AAED,MAAM,0BAA2B,SAAQ,aAAa;IAC3C,WAAW,CAAC,KAAkB,EAAE,MAAe,EAAE,MAAe;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAmB,YAAY,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IACM,KAAK,CAAC,UAAU,CAAC,GAAa;QACjC,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,GAAa;QACxC,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAEM,cAAc,CAAC,GAAa;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CAAY,qBAAqB,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EndpointsBase.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EndpointsBase.d.ts new file mode 100644 index 0000000..c91dff7 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EndpointsBase.d.ts @@ -0,0 +1,10 @@ +import { SpotifyApi } from "../SpotifyApi.js"; +export default class EndpointsBase { + protected api: SpotifyApi; + constructor(api: SpotifyApi); + protected getRequest(url: string): Promise; + protected postRequest(url: string, body?: TBody, contentType?: string | undefined): Promise; + protected putRequest(url: string, body?: TBody, contentType?: string | undefined): Promise; + protected deleteRequest(url: string, body?: TBody): Promise; + protected paramsFor(args: any): string; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EndpointsBase.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EndpointsBase.js new file mode 100644 index 0000000..1c34485 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EndpointsBase.js @@ -0,0 +1,28 @@ +export default class EndpointsBase { + api; + constructor(api) { + this.api = api; + } + async getRequest(url) { + return await this.api.makeRequest("GET", url); + } + async postRequest(url, body, contentType = undefined) { + return await this.api.makeRequest("POST", url, body, contentType); + } + async putRequest(url, body, contentType = undefined) { + return await this.api.makeRequest("PUT", url, body, contentType); + } + async deleteRequest(url, body) { + return await this.api.makeRequest("DELETE", url, body); + } + paramsFor(args) { + const params = new URLSearchParams(); + for (let key of Object.getOwnPropertyNames(args)) { + if (args[key] || (args[key] === 0) || (!args[key] && typeof args[key] === 'boolean')) { + params.append(key, args[key].toString()); + } + } + return [...params].length > 0 ? `?${params.toString()}` : ""; + } +} +//# sourceMappingURL=EndpointsBase.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EndpointsBase.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EndpointsBase.js.map new file mode 100644 index 0000000..e93c0f8 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EndpointsBase.js.map @@ -0,0 +1 @@ +{"version":3,"file":"EndpointsBase.js","sourceRoot":"","sources":["../../../src/endpoints/EndpointsBase.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,aAAa;IACR;IAAtB,YAAsB,GAAe;QAAf,QAAG,GAAH,GAAG,CAAY;IACrC,CAAC;IAES,KAAK,CAAC,UAAU,CAAc,GAAW;QAC/C,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAc,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC;IAES,KAAK,CAAC,WAAW,CAA+B,GAAW,EAAE,IAAY,EAAE,cAAkC,SAAS;QAC5H,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAc,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACnF,CAAC;IAES,KAAK,CAAC,UAAU,CAA+B,GAAW,EAAE,IAAY,EAAE,cAAkC,SAAS;QAC3H,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAc,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAClF,CAAC;IAES,KAAK,CAAC,aAAa,CAA+B,GAAW,EAAE,IAAY;QACjF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAc,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAES,SAAS,CAAC,IAAS;QACzB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE;YAC9C,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,EAAE;gBAClF,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC5C;SACJ;QACD,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EpisodesEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EpisodesEndpoints.d.ts new file mode 100644 index 0000000..fe97d1a --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EpisodesEndpoints.d.ts @@ -0,0 +1,6 @@ +import type { Market, Episode } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class EpisodesEndpoints extends EndpointsBase { + get(id: string, market: Market): Promise; + get(ids: string[], market: Market): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EpisodesEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EpisodesEndpoints.js new file mode 100644 index 0000000..c526dba --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EpisodesEndpoints.js @@ -0,0 +1,13 @@ +import EndpointsBase from './EndpointsBase.js'; +export default class EpisodesEndpoints extends EndpointsBase { + async get(idOrIds, market) { + if (typeof idOrIds === 'string') { + const params = this.paramsFor({ market }); + return this.getRequest(`episodes/${idOrIds}${params}`); + } + const params = this.paramsFor({ ids: idOrIds, market }); + const response = await this.getRequest(`episodes${params}`); + return response.episodes; + } +} +//# sourceMappingURL=EpisodesEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EpisodesEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EpisodesEndpoints.js.map new file mode 100644 index 0000000..19c79bb --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/EpisodesEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"EpisodesEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/EpisodesEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAIjD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAc;QACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAU,YAAY,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SACnE;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAW,WAAW,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/MarketsEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/MarketsEndpoints.d.ts new file mode 100644 index 0000000..4ceb08e --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/MarketsEndpoints.d.ts @@ -0,0 +1,5 @@ +import type { Markets } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class MarketsEndpoints extends EndpointsBase { + getAvailableMarkets(): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/MarketsEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/MarketsEndpoints.js new file mode 100644 index 0000000..3986e39 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/MarketsEndpoints.js @@ -0,0 +1,7 @@ +import EndpointsBase from './EndpointsBase.js'; +export default class MarketsEndpoints extends EndpointsBase { + getAvailableMarkets() { + return this.getRequest('markets'); + } +} +//# sourceMappingURL=MarketsEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/MarketsEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/MarketsEndpoints.js.map new file mode 100644 index 0000000..fb87291 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/MarketsEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"MarketsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/MarketsEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,aAAa;IAChD,mBAAmB;QACtB,OAAO,IAAI,CAAC,UAAU,CAAU,SAAS,CAAC,CAAC;IAC/C,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlayerEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlayerEndpoints.d.ts new file mode 100644 index 0000000..52792b8 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlayerEndpoints.d.ts @@ -0,0 +1,24 @@ +import type { Devices, Market, MaxInt, PlaybackState, Queue, RecentlyPlayedTracksPage } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +interface QueryRange { + timestamp: number; + type: "before" | "after"; +} +export default class PlayerEndpoints extends EndpointsBase { + getPlaybackState(market?: Market, additional_types?: string): Promise; + getAvailableDevices(): Promise; + getCurrentlyPlayingTrack(market?: Market, additional_types?: string): Promise; + getRecentlyPlayedTracks(limit?: MaxInt<50>, queryRange?: QueryRange): Promise; + getUsersQueue(): Promise; + transferPlayback(device_ids: string[], play?: boolean): Promise; + startResumePlayback(device_id: string, context_uri?: string, uris?: string[], offset?: object, positionMs?: number): Promise; + pausePlayback(device_id: string): Promise; + skipToNext(device_id: string): Promise; + skipToPrevious(device_id: string): Promise; + seekToPosition(position_ms: number, device_id?: string): Promise; + setRepeatMode(state: 'track' | 'context' | 'off', device_id?: string): Promise; + setPlaybackVolume(volume_percent: number, device_id?: string): Promise; + togglePlaybackShuffle(state: boolean, device_id?: string): Promise; + addItemToPlaybackQueue(uri: string, device_id?: string): Promise; +} +export {}; diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlayerEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlayerEndpoints.js new file mode 100644 index 0000000..9d97505 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlayerEndpoints.js @@ -0,0 +1,73 @@ +import EndpointsBase from './EndpointsBase.js'; +export default class PlayerEndpoints extends EndpointsBase { + getPlaybackState(market, additional_types) { + const params = this.paramsFor({ market, additional_types }); + return this.getRequest(`me/player${params}`); + } + getAvailableDevices() { + return this.getRequest('me/player/devices'); + } + getCurrentlyPlayingTrack(market, additional_types) { + const params = this.paramsFor({ market, additional_types }); + return this.getRequest(`me/player/currently-playing${params}`); + } + getRecentlyPlayedTracks(limit, queryRange) { + const paramObj = { limit }; + if (queryRange) { + if (queryRange.type === "before") { + paramObj.before = queryRange.timestamp; + } + else if (queryRange.type === "after") { + paramObj.after = queryRange.timestamp; + } + } + const params = this.paramsFor(paramObj); + return this.getRequest(`me/player/recently-played${params}`); + } + getUsersQueue() { + return this.getRequest('me/player/queue'); + } + async transferPlayback(device_ids, play) { + if (device_ids.length > 1) { + throw new Error("Although an array is accepted, only a single device_id is currently supported. Supplying more than one will return 400 Bad Request"); + } + await this.putRequest('me/player', { device_ids, play }); + } + async startResumePlayback(device_id, context_uri, uris, offset, positionMs) { + const params = this.paramsFor({ device_id }); + await this.putRequest(`me/player/play${params}`, { context_uri, uris, offset, positionMs }); + } + async pausePlayback(device_id) { + const params = this.paramsFor({ device_id }); + await this.putRequest(`me/player/pause${params}`); + } + async skipToNext(device_id) { + const params = this.paramsFor({ device_id }); + await this.postRequest(`me/player/next${params}`); + } + async skipToPrevious(device_id) { + const params = this.paramsFor({ device_id }); + await this.postRequest(`me/player/previous${params}`); + } + async seekToPosition(position_ms, device_id) { + const params = this.paramsFor({ position_ms, device_id }); + await this.putRequest(`me/player/seek${params}`); + } + async setRepeatMode(state, device_id) { + const params = this.paramsFor({ state, device_id }); + await this.putRequest(`me/player/repeat${params}`); + } + async setPlaybackVolume(volume_percent, device_id) { + const params = this.paramsFor({ volume_percent, device_id }); + await this.putRequest(`me/player/volume${params}`); + } + async togglePlaybackShuffle(state, device_id) { + const params = this.paramsFor({ state, device_id }); + await this.putRequest(`me/player/shuffle${params}`); + } + async addItemToPlaybackQueue(uri, device_id) { + const params = this.paramsFor({ uri, device_id }); + await this.postRequest(`me/player/queue${params}`); + } +} +//# sourceMappingURL=PlayerEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlayerEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlayerEndpoints.js.map new file mode 100644 index 0000000..6b1c793 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlayerEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PlayerEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/PlayerEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAO/C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,aAAa;IAE/C,gBAAgB,CAAC,MAAe,EAAE,gBAAyB;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,UAAU,CAAgB,YAAY,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAEM,mBAAmB;QACtB,OAAO,IAAI,CAAC,UAAU,CAAU,mBAAmB,CAAC,CAAC;IACzD,CAAC;IAEM,wBAAwB,CAAC,MAAe,EAAE,gBAAyB;QACtE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,UAAU,CAAgB,8BAA8B,MAAM,EAAE,CAAC,CAAC;IAClF,CAAC;IAEM,uBAAuB,CAAC,KAAkB,EAAE,UAAuB;QACtE,MAAM,QAAQ,GAAQ,EAAE,KAAK,EAAE,CAAC;QAEhC,IAAI,UAAU,EAAE;YACZ,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC9B,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,CAAA;aACzC;iBAAM,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE;gBACpC,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAA;aACxC;SACJ;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,UAAU,CAA2B,4BAA4B,MAAM,EAAE,CAAC,CAAC;IAC3F,CAAC;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,UAAU,CAAQ,iBAAiB,CAAC,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,UAAoB,EAAE,IAAc;QAC9D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,oIAAoI,CAAC,CAAC;SACzJ;QACD,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,SAAiB,EAAE,WAAoB,EAAE,IAAe,EAAE,MAAe,EAAE,UAAmB;QAC3H,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAChG,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,SAAiB;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,SAAiB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,SAAiB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,WAAmB,EAAE,SAAkB;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,KAAkC,EAAE,SAAkB;QAC7E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,cAAsB,EAAE,SAAkB;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,KAAc,EAAE,SAAkB;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,GAAW,EAAE,SAAkB;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;QAClD,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlaylistsEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlaylistsEndpoints.d.ts new file mode 100644 index 0000000..8760c8c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlaylistsEndpoints.d.ts @@ -0,0 +1,43 @@ +/// +import type { Market, Playlist, MaxInt, Page, Track, SnapshotReference, Image, PlaylistedTrack, QueryAdditionalTypes, TrackItem } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class PlaylistsEndpoints extends EndpointsBase { + getPlaylist(playlist_id: string, market?: Market, fields?: string, additional_types?: AdditionalTypes): Promise>; + getPlaylistItems(playlist_id: string, market?: Market, fields?: string, limit?: MaxInt<50>, offset?: number, additional_types?: AdditionalTypes): Promise>>; + changePlaylistDetails(playlist_id: string, request: ChangePlaylistDetailsRequest): Promise; + movePlaylistItems(playlist_id: string, range_start: number, range_length: number, moveToPosition: number): Promise; + updatePlaylistItems(playlist_id: string, request: UpdatePlaylistItemsRequest): Promise; + addItemsToPlaylist(playlist_id: string, uris?: string[], position?: number): Promise; + removeItemsFromPlaylist(playlist_id: string, request: RemovePlaylistItemsRequest): Promise; + getUsersPlaylists(user_id: string, limit?: MaxInt<50>, offset?: number): Promise>>; + createPlaylist(user_id: string, request: CreatePlaylistRequest): Promise>; + getPlaylistCoverImage(playlist_id: string): Promise; + addCustomPlaylistCoverImage(playlist_id: string, imageData: Buffer | HTMLImageElement | HTMLCanvasElement | string): Promise; + addCustomPlaylistCoverImageFromBase64String(playlist_id: string, base64EncodedJpeg: string): Promise; +} +interface RemovePlaylistItemsRequest { + tracks: Array<{ + uri: string; + }>; + snapshot_id?: string; +} +interface UpdatePlaylistItemsRequest { + uris?: string[]; + range_start?: number; + insert_before?: number; + range_length?: number; + snapshot_id?: string; +} +interface ChangePlaylistDetailsRequest { + name?: string; + public?: boolean; + collaborative?: boolean; + description?: string; +} +interface CreatePlaylistRequest { + name: string; + public?: boolean; + collaborative?: boolean; + description?: string; +} +export {}; diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlaylistsEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlaylistsEndpoints.js new file mode 100644 index 0000000..8842fa5 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlaylistsEndpoints.js @@ -0,0 +1,73 @@ +import EndpointsBase from './EndpointsBase.js'; +export default class PlaylistsEndpoints extends EndpointsBase { + getPlaylist(playlist_id, market, fields, additional_types) { + // TODO: better support for fields + const params = this.paramsFor({ market, fields, additional_types: additional_types?.join(',') }); + return this.getRequest(`playlists/${playlist_id}${params}`); + } + getPlaylistItems(playlist_id, market, fields, limit, offset, additional_types) { + // TODO: better support for fields + const params = this.paramsFor({ market, fields, limit, offset, additional_types: additional_types?.join(',') }); + return this.getRequest(`playlists/${playlist_id}/tracks${params}`); + } + async changePlaylistDetails(playlist_id, request) { + await this.putRequest(`playlists/${playlist_id}`, request); + } + movePlaylistItems(playlist_id, range_start, range_length, moveToPosition) { + return this.updatePlaylistItems(playlist_id, { + range_start, + range_length, + insert_before: moveToPosition + }); + } + updatePlaylistItems(playlist_id, request) { + return this.putRequest(`playlists/${playlist_id}/tracks`, request); + } + async addItemsToPlaylist(playlist_id, uris, position) { + await this.postRequest(`playlists/${playlist_id}/tracks`, { position, uris: uris }); + } + async removeItemsFromPlaylist(playlist_id, request) { + await this.deleteRequest(`playlists/${playlist_id}/tracks`, request); + } + getUsersPlaylists(user_id, limit, offset) { + const params = this.paramsFor({ limit, offset }); + return this.getRequest(`users/${user_id}/playlists${params}`); + } + createPlaylist(user_id, request) { + return this.postRequest(`users/${user_id}/playlists`, request); + } + getPlaylistCoverImage(playlist_id) { + return this.getRequest(`playlists/${playlist_id}/images`); + } + async addCustomPlaylistCoverImage(playlist_id, imageData) { + let base64EncodedJpeg = ""; + if (imageData instanceof Buffer) { + base64EncodedJpeg = imageData.toString("base64"); + } + else if (imageData instanceof HTMLCanvasElement) { + base64EncodedJpeg = imageData.toDataURL("image/jpeg").split(';base64,')[1]; + } + else if (imageData instanceof HTMLImageElement) { + const canvas = document.createElement("canvas"); + canvas.width = imageData.width; + canvas.height = imageData.height; + const ctx = canvas.getContext("2d"); + if (!ctx) { + throw new Error("Could not get canvas context"); + } + ctx.drawImage(imageData, 0, 0); + base64EncodedJpeg = canvas.toDataURL("image/jpeg").split(';base64,')[1]; + } + else if (typeof imageData === "string") { + base64EncodedJpeg = imageData; + } + else { + throw new Error("ImageData must be a Buffer, HTMLImageElement, HTMLCanvasElement, or string containing a base64 encoded jpeg"); + } + await this.addCustomPlaylistCoverImageFromBase64String(playlist_id, base64EncodedJpeg); + } + async addCustomPlaylistCoverImageFromBase64String(playlist_id, base64EncodedJpeg) { + await this.putRequest(`playlists/${playlist_id}/images`, base64EncodedJpeg, "image/jpeg"); + } +} +//# sourceMappingURL=PlaylistsEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlaylistsEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlaylistsEndpoints.js.map new file mode 100644 index 0000000..0482d4f --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/PlaylistsEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PlaylistsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/PlaylistsEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,aAAa;IAElD,WAAW,CACd,WAAmB,EAAE,MAAe,EAAE,MAAe,EAAE,gBAAkC;QAEzF,kCAAkC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjG,OAAO,IAAI,CAAC,UAAU,CAAkE,aAAa,WAAW,GAAG,MAAM,EAAE,CAAC,CAAC;IACjI,CAAC;IAEM,gBAAgB,CACnB,WAAmB,EAAE,MAAe,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe,EAAE,gBAAkC;QAE9H,kCAAkC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChH,OAAO,IAAI,CAAC,UAAU,CAA+E,aAAa,WAAW,UAAU,MAAM,EAAE,CAAC,CAAC;IACrJ,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,WAAmB,EAAE,OAAqC;QACzF,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAEM,iBAAiB,CAAC,WAAmB,EAAE,WAAmB,EAAE,YAAoB,EAAE,cAAsB;QAC3G,OAAO,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE;YACzC,WAAW;YACX,YAAY;YACZ,aAAa,EAAE,cAAc;SAChC,CAAC,CAAC;IACP,CAAC;IAEM,mBAAmB,CAAC,WAAmB,EAAE,OAAmC;QAC/E,OAAO,IAAI,CAAC,UAAU,CAAoB,aAAa,WAAW,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,WAAmB,EAAE,IAAe,EAAE,QAAiB;QACnF,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,WAAW,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACxF,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAAC,WAAmB,EAAE,OAAmC;QACzF,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,WAAW,SAAS,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAEM,iBAAiB,CAAC,OAAe,EAAE,KAAkB,EAAE,MAAe;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,UAAU,CAAiB,SAAS,OAAO,aAAa,MAAM,EAAE,CAAC,CAAC;IAClF,CAAC;IAEM,cAAc,CAAC,OAAe,EAAE,OAA8B;QACjE,OAAO,IAAI,CAAC,WAAW,CAAW,SAAS,OAAO,YAAY,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAEM,qBAAqB,CAAC,WAAmB;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAU,aAAa,WAAW,SAAS,CAAC,CAAC;IACvE,CAAC;IAEM,KAAK,CAAC,2BAA2B,CAAC,WAAmB,EAAE,SAAiE;QAC3H,IAAI,iBAAiB,GAAW,EAAE,CAAC;QAEnC,IAAI,SAAS,YAAY,MAAM,EAAE;YAC7B,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACpD;aAAM,IAAI,SAAS,YAAY,iBAAiB,EAAE;YAC/C,iBAAiB,GAAG,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9E;aAAM,IAAI,SAAS,YAAY,gBAAgB,EAAE;YAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;YAC/B,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;YACjC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG,EAAE;gBACN,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;aACnD;YACD,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3E;aAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACtC,iBAAiB,GAAG,SAAS,CAAC;SACjC;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,6GAA6G,CAAC,CAAC;SAClI;QAED,MAAM,IAAI,CAAC,2CAA2C,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC3F,CAAC;IAEM,KAAK,CAAC,2CAA2C,CAAC,WAAmB,EAAE,iBAAyB;QACnG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,WAAW,SAAS,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC;IAC9F,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/RecommendationsEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/RecommendationsEndpoints.d.ts new file mode 100644 index 0000000..ddd7151 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/RecommendationsEndpoints.d.ts @@ -0,0 +1,69 @@ +import type { Genres, Track } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class RecommendationsEndpoints extends EndpointsBase { + get(request: RecommendationsRequestRequiredArguments | RecommendationsRequest): Promise; + genreSeeds(): Promise; +} +export interface RecommendationsRequestRequiredArguments { + seed_artists?: string[]; + seed_genres?: string[]; + seed_tracks?: string[]; +} +export interface RecommendationsRequest extends RecommendationsRequestRequiredArguments { + limit?: number; + market?: string; + min_acousticness?: number; + max_acousticness?: number; + target_acousticness?: number; + min_danceability?: number; + max_danceability?: number; + target_danceability?: number; + min_duration_ms?: number; + max_duration_ms?: number; + target_duration_ms?: number; + min_energy?: number; + max_energy?: number; + target_energy?: number; + min_instrumentalness?: number; + max_instrumentalness?: number; + target_instrumentalness?: number; + min_key?: number; + max_key?: number; + target_key?: number; + min_liveness?: number; + max_liveness?: number; + target_liveness?: number; + min_loudness?: number; + max_loudness?: number; + target_loudness?: number; + min_mode?: number; + max_mode?: number; + target_mode?: number; + min_popularity?: number; + max_popularity?: number; + target_popularity?: number; + min_speechiness?: number; + max_speechiness?: number; + target_speechiness?: number; + min_tempo?: number; + max_tempo?: number; + target_tempo?: number; + min_time_signature?: number; + max_time_signature?: number; + target_time_signature?: number; + min_valence?: number; + max_valence?: number; + target_valence?: number; +} +export interface RecommendationsResponse { + seeds: RecommendationSeed[]; + tracks: Track[]; +} +export interface RecommendationSeed { + id: string; + href: string; + type: string; + initialPoolSize: number; + afterFilteringSize: number; + afterRelinkingSize: number; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/RecommendationsEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/RecommendationsEndpoints.js new file mode 100644 index 0000000..4f1e476 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/RecommendationsEndpoints.js @@ -0,0 +1,11 @@ +import EndpointsBase from './EndpointsBase.js'; +export default class RecommendationsEndpoints extends EndpointsBase { + get(request) { + const params = this.paramsFor(request); + return this.getRequest(`recommendations${params}`); + } + genreSeeds() { + return this.getRequest('recommendations/available-genre-seeds'); + } +} +//# sourceMappingURL=RecommendationsEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/RecommendationsEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/RecommendationsEndpoints.js.map new file mode 100644 index 0000000..eb50903 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/RecommendationsEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"RecommendationsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/RecommendationsEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,aAAa;IACxD,GAAG,CAAC,OAAyE;QAChF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CAA0B,kBAAkB,MAAM,EAAE,CAAC,CAAC;IAChF,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,UAAU,CAAS,uCAAuC,CAAC,CAAC;IAC5E,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/SearchEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/SearchEndpoints.d.ts new file mode 100644 index 0000000..71fcb99 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/SearchEndpoints.d.ts @@ -0,0 +1,8 @@ +import type { ItemTypes, Market, MaxInt, SearchResults } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export interface SearchExecutionFunction { + (q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise>; +} +export default class SearchEndpoints extends EndpointsBase { + execute(q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise>; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/SearchEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/SearchEndpoints.js new file mode 100644 index 0000000..fd5342f --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/SearchEndpoints.js @@ -0,0 +1,8 @@ +import EndpointsBase from './EndpointsBase.js'; +export default class SearchEndpoints extends EndpointsBase { + async execute(q, type, market, limit, offset, include_external) { + const params = this.paramsFor({ q, type, market, limit, offset, include_external }); + return await this.getRequest(`search${params}`); + } +} +//# sourceMappingURL=SearchEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/SearchEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/SearchEndpoints.js.map new file mode 100644 index 0000000..c703868 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/SearchEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SearchEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/SearchEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAM/C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,aAAa;IAC/C,KAAK,CAAC,OAAO,CAAuC,CAAS,EAAE,IAAO,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe,EAAE,gBAAyB;QAC1J,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACpF,OAAO,MAAM,IAAI,CAAC,UAAU,CAAmB,SAAS,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ShowsEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ShowsEndpoints.d.ts new file mode 100644 index 0000000..41b64a4 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ShowsEndpoints.d.ts @@ -0,0 +1,7 @@ +import type { Market, Show, MaxInt, Page, SimplifiedEpisode } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class ShowsEndpoints extends EndpointsBase { + get(id: string, market: Market): Promise; + get(ids: string[], market: Market): Promise; + episodes(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ShowsEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ShowsEndpoints.js new file mode 100644 index 0000000..d19128c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ShowsEndpoints.js @@ -0,0 +1,18 @@ +import EndpointsBase from './EndpointsBase.js'; +export default class ShowsEndpoints extends EndpointsBase { + async get(idOrIds, market) { + if (typeof idOrIds === 'string') { + const params = this.paramsFor({ market }); + return this.getRequest(`shows/${idOrIds}${params}`); + } + // TODO: only returns 50, validate here + const params = this.paramsFor({ ids: idOrIds, market }); + const response = await this.getRequest(`shows${params}`); + return response.shows; + } + episodes(id, market, limit, offset) { + const params = this.paramsFor({ market, limit, offset }); + return this.getRequest(`shows/${id}/episodes${params}`); + } +} +//# sourceMappingURL=ShowsEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ShowsEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ShowsEndpoints.js.map new file mode 100644 index 0000000..3f1eb89 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/ShowsEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ShowsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ShowsEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa;IAI9C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAc;QACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;YACzC,OAAO,IAAI,CAAC,UAAU,CAAO,SAAS,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SAC7D;QAED,uCAAuC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAQ,QAAQ,MAAM,EAAE,CAAC,CAAC;QAChE,OAAO,QAAQ,CAAC,KAAK,CAAC;IAC1B,CAAC;IAEM,QAAQ,CAAC,EAAU,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACxD,OAAO,IAAI,CAAC,UAAU,CAA0B,SAAS,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/TracksEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/TracksEndpoints.d.ts new file mode 100644 index 0000000..5a2811c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/TracksEndpoints.d.ts @@ -0,0 +1,9 @@ +import type { Market, Track, AudioFeatures, AudioAnalysis } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class TracksEndpoints extends EndpointsBase { + get(id: string, market?: Market): Promise; + get(ids: string[], market?: Market): Promise; + audioFeatures(id: string): Promise; + audioFeatures(ids: string[]): Promise; + audioAnalysis(id: string): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/TracksEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/TracksEndpoints.js new file mode 100644 index 0000000..203d45d --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/TracksEndpoints.js @@ -0,0 +1,25 @@ +import EndpointsBase from './EndpointsBase.js'; +export default class TracksEndpoints extends EndpointsBase { + async get(idOrIds, market) { + if (typeof idOrIds === 'string') { + const params = this.paramsFor({ market }); + return this.getRequest(`tracks/${idOrIds}${params}`); + } + const params = this.paramsFor({ ids: idOrIds, market }); + // TODO: only returns top 20, validate here + const response = await this.getRequest(`tracks${params}`); + return response.tracks; + } + async audioFeatures(idOrIds) { + if (typeof idOrIds === 'string') { + return this.getRequest(`audio-features/${idOrIds}`); + } + const params = this.paramsFor({ ids: idOrIds }); + const response = await this.getRequest(`audio-features${params}`); + return response.audio_features; + } + audioAnalysis(id) { + return this.getRequest(`audio-analysis/${id}`); + } +} +//# sourceMappingURL=TracksEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/TracksEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/TracksEndpoints.js.map new file mode 100644 index 0000000..979607a --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/TracksEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TracksEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/TracksEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,aAAa;IAI/C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAQ,UAAU,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SAC/D;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAS,SAAS,MAAM,EAAE,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;IAIM,KAAK,CAAC,aAAa,CAAC,OAA0B;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,OAAO,IAAI,CAAC,UAAU,CAAgB,kBAAkB,OAAO,EAAE,CAAC,CAAC;SACtE;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAA0B,iBAAiB,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,QAAQ,CAAC,cAAc,CAAC;IACnC,CAAC;IAEM,aAAa,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAgB,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;CAEJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/UsersEndpoints.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/UsersEndpoints.d.ts new file mode 100644 index 0000000..613633e --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/UsersEndpoints.d.ts @@ -0,0 +1,5 @@ +import type { User } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; +export default class UsersEndpoints extends EndpointsBase { + profile(userId: string): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/UsersEndpoints.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/UsersEndpoints.js new file mode 100644 index 0000000..81696a4 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/UsersEndpoints.js @@ -0,0 +1,7 @@ +import EndpointsBase from './EndpointsBase.js'; +export default class UsersEndpoints extends EndpointsBase { + profile(userId) { + return this.getRequest(`users/${userId}`); + } +} +//# sourceMappingURL=UsersEndpoints.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/UsersEndpoints.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/UsersEndpoints.js.map new file mode 100644 index 0000000..8b2e0ae --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/endpoints/UsersEndpoints.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UsersEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/UsersEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa;IAE9C,OAAO,CAAC,MAAc;QACzB,OAAO,IAAI,CAAC,UAAU,CAAO,SAAS,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/ConsoleLoggingErrorHandler.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/ConsoleLoggingErrorHandler.d.ts new file mode 100644 index 0000000..12f966d --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/ConsoleLoggingErrorHandler.d.ts @@ -0,0 +1,4 @@ +import type { IHandleErrors } from "../types.js"; +export default class ConsoleLoggingErrorHandler implements IHandleErrors { + handleErrors(error: any): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/ConsoleLoggingErrorHandler.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/ConsoleLoggingErrorHandler.js new file mode 100644 index 0000000..8636914 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/ConsoleLoggingErrorHandler.js @@ -0,0 +1,7 @@ +export default class ConsoleLoggingErrorHandler { + async handleErrors(error) { + console.log(error); + return false; + } +} +//# sourceMappingURL=ConsoleLoggingErrorHandler.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/ConsoleLoggingErrorHandler.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/ConsoleLoggingErrorHandler.js.map new file mode 100644 index 0000000..4037d06 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/ConsoleLoggingErrorHandler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ConsoleLoggingErrorHandler.js","sourceRoot":"","sources":["../../../src/errorhandling/ConsoleLoggingErrorHandler.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,0BAA0B;IACpC,KAAK,CAAC,YAAY,CAAC,KAAU;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/NoOpErrorHandler.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/NoOpErrorHandler.d.ts new file mode 100644 index 0000000..1a4b452 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/NoOpErrorHandler.d.ts @@ -0,0 +1,4 @@ +import type { IHandleErrors } from "../types.js"; +export default class NoOpErrorHandler implements IHandleErrors { + handleErrors(_: any): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/NoOpErrorHandler.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/NoOpErrorHandler.js new file mode 100644 index 0000000..55d848c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/NoOpErrorHandler.js @@ -0,0 +1,6 @@ +export default class NoOpErrorHandler { + async handleErrors(_) { + return false; + } +} +//# sourceMappingURL=NoOpErrorHandler.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/NoOpErrorHandler.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/NoOpErrorHandler.js.map new file mode 100644 index 0000000..7a7a63c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/errorhandling/NoOpErrorHandler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"NoOpErrorHandler.js","sourceRoot":"","sources":["../../../src/errorhandling/NoOpErrorHandler.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAC1B,KAAK,CAAC,YAAY,CAAC,CAAM;QAC5B,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/index.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/index.d.ts new file mode 100644 index 0000000..fbf7796 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/index.d.ts @@ -0,0 +1,18 @@ +import { SpotifyApi } from "./SpotifyApi.js"; +import AuthorizationCodeWithPKCEStrategy from "./auth/AuthorizationCodeWithPKCEStrategy.js"; +import ClientCredentialsStrategy from "./auth/ClientCredentialsStrategy.js"; +import IAuthStrategy from "./auth/IAuthStrategy.js"; +import InMemoryCachingStrategy from "./caching/InMemoryCachingStrategy.js"; +import LocalStorageCachingStrategy from "./caching/LocalStorageCachingStrategy.js"; +import { ICacheStore } from "./caching/ICacheStore.js"; +import GenericCache from "./caching/GenericCache.js"; +import ConsoleLoggingErrorHandler from "./errorhandling/ConsoleLoggingErrorHandler.js"; +import NoOpErrorHandler from "./errorhandling/NoOpErrorHandler.js"; +import DocumentLocationRedirectionStrategy from "./redirection/DocumentLocationRedirectionStrategy.js"; +import DefaultResponseValidator from "./responsevalidation/DefaultResponseValidator.js"; +import DefaultResponseDeserializer from "./serialization/DefaultResponseDeserializer.js"; +import { Scopes } from "./Scopes.js"; +import { emptyAccessToken } from "./auth/IAuthStrategy.js"; +export { SpotifyApi, AuthorizationCodeWithPKCEStrategy, ClientCredentialsStrategy, InMemoryCachingStrategy, LocalStorageCachingStrategy, GenericCache, ConsoleLoggingErrorHandler, NoOpErrorHandler, DocumentLocationRedirectionStrategy, DefaultResponseValidator, DefaultResponseDeserializer, Scopes, emptyAccessToken }; +export type * from "./types.js"; +export type { IAuthStrategy, ICacheStore, }; diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/index.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/index.js new file mode 100644 index 0000000..b850ca1 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/index.js @@ -0,0 +1,15 @@ +import { SpotifyApi } from "./SpotifyApi.js"; +import AuthorizationCodeWithPKCEStrategy from "./auth/AuthorizationCodeWithPKCEStrategy.js"; +import ClientCredentialsStrategy from "./auth/ClientCredentialsStrategy.js"; +import InMemoryCachingStrategy from "./caching/InMemoryCachingStrategy.js"; +import LocalStorageCachingStrategy from "./caching/LocalStorageCachingStrategy.js"; +import GenericCache from "./caching/GenericCache.js"; +import ConsoleLoggingErrorHandler from "./errorhandling/ConsoleLoggingErrorHandler.js"; +import NoOpErrorHandler from "./errorhandling/NoOpErrorHandler.js"; +import DocumentLocationRedirectionStrategy from "./redirection/DocumentLocationRedirectionStrategy.js"; +import DefaultResponseValidator from "./responsevalidation/DefaultResponseValidator.js"; +import DefaultResponseDeserializer from "./serialization/DefaultResponseDeserializer.js"; +import { Scopes } from "./Scopes.js"; +import { emptyAccessToken } from "./auth/IAuthStrategy.js"; +export { SpotifyApi, AuthorizationCodeWithPKCEStrategy, ClientCredentialsStrategy, InMemoryCachingStrategy, LocalStorageCachingStrategy, GenericCache, ConsoleLoggingErrorHandler, NoOpErrorHandler, DocumentLocationRedirectionStrategy, DefaultResponseValidator, DefaultResponseDeserializer, Scopes, emptyAccessToken }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/index.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/index.js.map new file mode 100644 index 0000000..5713a86 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,iCAAiC,MAAM,6CAA6C,CAAC;AAC5F,OAAO,yBAAyB,MAAM,qCAAqC,CAAC;AAE5E,OAAO,uBAAuB,MAAM,sCAAsC,CAAC;AAC3E,OAAO,2BAA2B,MAAM,0CAA0C,CAAC;AAEnF,OAAO,YAAY,MAAM,2BAA2B,CAAC;AACrD,OAAO,0BAA0B,MAAM,+CAA+C,CAAC;AACvF,OAAO,gBAAgB,MAAM,qCAAqC,CAAC;AACnE,OAAO,mCAAmC,MAAM,sDAAsD,CAAC;AACvG,OAAO,wBAAwB,MAAM,kDAAkD,CAAC;AACxF,OAAO,2BAA2B,MAAM,gDAAgD,CAAC;AACzF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EACH,UAAU,EACV,iCAAiC,EACjC,yBAAyB,EACzB,uBAAuB,EACvB,2BAA2B,EAC3B,YAAY,EACZ,0BAA0B,EAC1B,gBAAgB,EAChB,mCAAmC,EACnC,wBAAwB,EACxB,2BAA2B,EAC3B,MAAM,EACN,gBAAgB,EACnB,CAAA"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/package.json b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/package.json new file mode 100644 index 0000000..3dbc1ca --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/redirection/DocumentLocationRedirectionStrategy.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/redirection/DocumentLocationRedirectionStrategy.d.ts new file mode 100644 index 0000000..ae3d1ed --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/redirection/DocumentLocationRedirectionStrategy.d.ts @@ -0,0 +1,5 @@ +import type { IRedirectionStrategy } from "../types.js"; +export default class DocumentLocationRedirectionStrategy implements IRedirectionStrategy { + redirect(targetUrl: string | URL): Promise; + onReturnFromRedirect(): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/redirection/DocumentLocationRedirectionStrategy.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/redirection/DocumentLocationRedirectionStrategy.js new file mode 100644 index 0000000..96e97c7 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/redirection/DocumentLocationRedirectionStrategy.js @@ -0,0 +1,8 @@ +export default class DocumentLocationRedirectionStrategy { + async redirect(targetUrl) { + document.location = targetUrl.toString(); + } + async onReturnFromRedirect() { + } +} +//# sourceMappingURL=DocumentLocationRedirectionStrategy.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/redirection/DocumentLocationRedirectionStrategy.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/redirection/DocumentLocationRedirectionStrategy.js.map new file mode 100644 index 0000000..30a6160 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/redirection/DocumentLocationRedirectionStrategy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DocumentLocationRedirectionStrategy.js","sourceRoot":"","sources":["../../../src/redirection/DocumentLocationRedirectionStrategy.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,mCAAmC;IAC7C,KAAK,CAAC,QAAQ,CAAC,SAAuB;QACzC,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,oBAAoB;IACjC,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/responsevalidation/DefaultResponseValidator.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/responsevalidation/DefaultResponseValidator.d.ts new file mode 100644 index 0000000..db555ed --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/responsevalidation/DefaultResponseValidator.d.ts @@ -0,0 +1,4 @@ +import type { IValidateResponses } from "../types.js"; +export default class DefaultResponseValidator implements IValidateResponses { + validateResponse(response: Response): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/responsevalidation/DefaultResponseValidator.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/responsevalidation/DefaultResponseValidator.js new file mode 100644 index 0000000..5b120de --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/responsevalidation/DefaultResponseValidator.js @@ -0,0 +1,19 @@ +export default class DefaultResponseValidator { + async validateResponse(response) { + switch (response.status) { + case 401: + throw new Error("Bad or expired token. This can happen if the user revoked a token or the access token has expired. You should re-authenticate the user."); + case 403: + const body = await response.text(); + throw new Error(`Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here. Body: ${body}`); + case 429: + throw new Error("The app has exceeded its rate limits."); + default: + if (!response.status.toString().startsWith('20')) { + const body = await response.text(); + throw new Error(`Unrecognised response code: ${response.status} - ${response.statusText}. Body: ${body}`); + } + } + } +} +//# sourceMappingURL=DefaultResponseValidator.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/responsevalidation/DefaultResponseValidator.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/responsevalidation/DefaultResponseValidator.js.map new file mode 100644 index 0000000..02df457 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/responsevalidation/DefaultResponseValidator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DefaultResponseValidator.js","sourceRoot":"","sources":["../../../src/responsevalidation/DefaultResponseValidator.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,wBAAwB;IAClC,KAAK,CAAC,gBAAgB,CAAC,QAAkB;QAE5C,QAAQ,QAAQ,CAAC,MAAM,EAAE;YACrB,KAAK,GAAG;gBACJ,MAAM,IAAI,KAAK,CAAC,yIAAyI,CAAC,CAAC;YAC/J,KAAK,GAAG;gBACJ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,6IAA6I,IAAI,EAAE,CAAC,CAAC;YACzK,KAAK,GAAG;gBACJ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC7D;gBACI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;oBAC9C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,UAAU,WAAW,IAAI,EAAE,CAAC,CAAC;iBAC7G;SACR;IAEL,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/serialization/DefaultResponseDeserializer.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/serialization/DefaultResponseDeserializer.d.ts new file mode 100644 index 0000000..eeef96b --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/serialization/DefaultResponseDeserializer.d.ts @@ -0,0 +1,4 @@ +import type { IResponseDeserializer } from "../types.js"; +export default class DefaultResponseDeserializer implements IResponseDeserializer { + deserialize(response: Response): Promise; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/serialization/DefaultResponseDeserializer.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/serialization/DefaultResponseDeserializer.js new file mode 100644 index 0000000..2aabcc9 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/serialization/DefaultResponseDeserializer.js @@ -0,0 +1,11 @@ +export default class DefaultResponseDeserializer { + async deserialize(response) { + const text = await response.text(); + if (text.length > 0) { + const json = JSON.parse(text); + return json; + } + return null; + } +} +//# sourceMappingURL=DefaultResponseDeserializer.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/serialization/DefaultResponseDeserializer.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/serialization/DefaultResponseDeserializer.js.map new file mode 100644 index 0000000..0764fe7 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/serialization/DefaultResponseDeserializer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DefaultResponseDeserializer.js","sourceRoot":"","sources":["../../../src/serialization/DefaultResponseDeserializer.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,2BAA2B;IACrC,KAAK,CAAC,WAAW,CAAc,QAAkB;QACpD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO,IAAmB,CAAC;SAC9B;QAED,OAAO,IAAmB,CAAC;IAC/B,CAAC;CACJ"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/types.d.ts b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/types.d.ts new file mode 100644 index 0000000..105c49c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/types.d.ts @@ -0,0 +1,626 @@ +export type RequestImplementation = (input: RequestInfo | URL, init?: RequestInit | undefined) => Promise; +export interface SdkOptions { + fetch?: RequestImplementation; + beforeRequest?: (url: string, options: RequestInit) => void; + afterRequest?: (url: string, options: RequestInit, response: Response) => void; + deserializer?: IResponseDeserializer; + responseValidator?: IValidateResponses; + errorHandler?: IHandleErrors; + redirectionStrategy?: IRedirectionStrategy; + cachingStrategy?: ICachingStrategy; +} +export interface AuthenticationResponse { + authenticated: boolean; + accessToken: AccessToken; +} +export interface SdkConfiguration extends SdkOptions { + fetch: RequestImplementation; + beforeRequest: (url: string, options: RequestInit) => void; + afterRequest: (url: string, options: RequestInit, response: Response) => void; + deserializer: IResponseDeserializer; + responseValidator: IValidateResponses; + errorHandler: IHandleErrors; + redirectionStrategy: IRedirectionStrategy; + cachingStrategy: ICachingStrategy; +} +export interface IRedirectionStrategy { + redirect(targetUrl: string | URL): Promise; + onReturnFromRedirect(): Promise; +} +export interface IHandleErrors { + handleErrors(error: any): Promise; +} +export interface IValidateResponses { + validateResponse: (response: Response) => Promise; +} +export interface IResponseDeserializer { + deserialize(response: Response): Promise; +} +export interface ICachingStrategy { + getOrCreate(cacheKey: string, createFunction: () => Promise, updateFunction?: (item: T) => Promise): Promise; + get(cacheKey: string): Promise; + setCacheItem(cacheKey: string, item: T & ICachable): void; + remove(cacheKey: string): void; +} +export interface ICachable { + expires?: number; + expiresOnAccess?: boolean; +} +export type MaxInt = number extends T ? number : _Range; +export type _Range = R['length'] extends T ? R[number] | T : _Range; +export type ItemTypes = 'artist' | 'album' | 'playlist' | 'track' | 'show' | 'episode' | 'audiobook'; +export type Market = "AD" | "AE" | "AG" | "AL" | "AM" | "AO" | "AR" | "AT" | "AU" | "AZ" | "BA" | "BB" | "BD" | "BE" | "BF" | "BG" | "BH" | "BI" | "BJ" | "BN" | "BO" | "BR" | "BS" | "BT" | "BW" | "BY" | "BZ" | "CA" | "CD" | "CG" | "CH" | "CI" | "CL" | "CM" | "CO" | "CR" | "CV" | "CW" | "CY" | "CZ" | "DE" | "DJ" | "DK" | "DM" | "DO" | "DZ" | "EC" | "EE" | "EG" | "ES" | "ET" | "FI" | "FJ" | "FM" | "FR" | "GA" | "GB" | "GD" | "GE" | "GH" | "GM" | "GN" | "GQ" | "GR" | "GT" | "GW" | "GY" | "HK" | "HN" | "HR" | "HT" | "HU" | "ID" | "IE" | "IL" | "IN" | "IQ" | "IS" | "IT" | "JM" | "JO" | "JP" | "KE" | "KG" | "KH" | "KI" | "KM" | "KN" | "KR" | "KW" | "KZ" | "LA" | "LB" | "LC" | "LI" | "LK" | "LR" | "LS" | "LT" | "LU" | "LV" | "LY" | "MA" | "MC" | "MD" | "ME" | "MG" | "MH" | "MK" | "ML" | "MN" | "MO" | "MR" | "MT" | "MU" | "MV" | "MW" | "MX" | "MY" | "MZ" | "NA" | "NE" | "NG" | "NI" | "NL" | "NO" | "NP" | "NR" | "NZ" | "OM" | "PA" | "PE" | "PG" | "PH" | "PK" | "PL" | "PS" | "PT" | "PW" | "PY" | "QA" | "RO" | "RS" | "RW" | "SA" | "SB" | "SC" | "SE" | "SG" | "SI" | "SK" | "SL" | "SM" | "SN" | "SR" | "ST" | "SV" | "SZ" | "TD" | "TG" | "TH" | "TJ" | "TL" | "TN" | "TO" | "TR" | "TT" | "TV" | "TW" | "TZ" | "UA" | "UG" | "US" | "UY" | "UZ" | "VC" | "VE" | "VN" | "VU" | "WS" | "XK" | "ZA" | "ZM" | "ZW"; +export type CountryCodeA2 = 'AD' | 'AE' | 'AF' | 'AG' | 'AI' | 'AL' | 'AM' | 'AO' | 'AQ' | 'AR' | 'AS' | 'AT' | 'AU' | 'AW' | 'AX' | 'AZ' | 'BA' | 'BB' | 'BD' | 'BE' | 'BF' | 'BG' | 'BH' | 'BI' | 'BJ' | 'BL' | 'BM' | 'BN' | 'BO' | 'BQ' | 'BR' | 'BS' | 'BT' | 'BV' | 'BW' | 'BY' | 'BZ' | 'CA' | 'CC' | 'CD' | 'CF' | 'CG' | 'CH' | 'CI' | 'CK' | 'CL' | 'CM' | 'CN' | 'CO' | 'CR' | 'CU' | 'CV' | 'CW' | 'CX' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DK' | 'DM' | 'DO' | 'DZ' | 'EC' | 'EE' | 'EG' | 'EH' | 'ER' | 'ES' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FM' | 'FO' | 'FR' | 'GA' | 'GB' | 'GD' | 'GE' | 'GF' | 'GG' | 'GH' | 'GI' | 'GL' | 'GM' | 'GN' | 'GP' | 'GQ' | 'GR' | 'GS' | 'GT' | 'GU' | 'GW' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IE' | 'IL' | 'IM' | 'IN' | 'IO' | 'IQ' | 'IR' | 'IS' | 'IT' | 'JE' | 'JM' | 'JO' | 'JP' | 'KE' | 'KG' | 'KH' | 'KI' | 'KM' | 'KN' | 'KP' | 'KR' | 'KW' | 'KY' | 'KZ' | 'LA' | 'LB' | 'LC' | 'LI' | 'LK' | 'LR' | 'LS' | 'LT' | 'LU' | 'LV' | 'LY' | 'MA' | 'MC' | 'MD' | 'ME' | 'MF' | 'MG' | 'MH' | 'MK' | 'ML' | 'MM' | 'MN' | 'MO' | 'MP' | 'MQ' | 'MR' | 'MS' | 'MT' | 'MU' | 'MV' | 'MW' | 'MX' | 'MY' | 'MZ' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NL' | 'NO' | 'NP' | 'NR' | 'NU' | 'NZ' | 'OM' | 'PA' | 'PE' | 'PF' | 'PG' | 'PH' | 'PK' | 'PL' | 'PM' | 'PN' | 'PR' | 'PS' | 'PT' | 'PW' | 'PY' | 'QA' | 'RE' | 'RO' | 'RS' | 'RU' | 'RW' | 'SA' | 'SB' | 'SC' | 'SD' | 'SE' | 'SG' | 'SH' | 'SI' | 'SJ' | 'SK' | 'SL' | 'SM' | 'SN' | 'SO' | 'SR' | 'SS' | 'ST' | 'SV' | 'SX' | 'SY' | 'SZ' | 'TC' | 'TD' | 'TF' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TL' | 'TM' | 'TN' | 'TO' | 'TR' | 'TT' | 'TV' | 'TW' | 'TZ' | 'UA' | 'UG' | 'UM' | 'US' | 'UY' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'YE' | 'YT' | 'ZA' | 'ZM' | 'ZW'; +export type { RecommendationsRequest, RecommendationsRequestRequiredArguments, RecommendationsResponse, RecommendationSeed, } from './endpoints/RecommendationsEndpoints'; +export type QueryAdditionalTypes = ['episode']; +export type TrackItem = Track | Episode; +export interface AccessToken { + access_token: string; + token_type: string; + expires_in: number; + refresh_token: string; + expires?: number; +} +interface AlbumBase { + album_type: string; + available_markets: string[]; + copyrights: Copyright[]; + external_ids: ExternalIds; + external_urls: ExternalUrls; + genres: string[]; + href: string; + id: string; + images: Image[]; + label: string; + name: string; + popularity: number; + release_date: string; + release_date_precision: string; + restrictions?: Restrictions; + total_tracks: number; + type: string; + uri: string; +} +export interface SimplifiedAlbum extends AlbumBase { + album_group: string; + artists: SimplifiedArtist[]; +} +export interface SavedAlbum { + added_at: string; + album: Album; +} +export interface Album extends AlbumBase { + artists: Artist[]; + tracks: Page; +} +export interface Albums { + albums: Album[]; +} +export interface NewReleases { + albums: Page; +} +export interface Copyright { + text: string; + type: string; +} +export interface ExternalIds { + upc: string; +} +export interface Page { + href: string; + items: TItemType[]; + limit: number; + next: string | null; + offset: number; + previous: string | null; + total: number; +} +export interface PlaylistedTrack { + added_at: string; + added_by: AddedBy; + is_local: boolean; + primary_color: string; + track: Item; +} +export interface AddedBy { + external_urls: ExternalUrls; + href: string; + id: string; + type: string; + uri: string; +} +export interface LinkedFrom { + external_urls: ExternalUrls; + href: string; + id: string; + type: string; + uri: string; +} +export interface SimplifiedTrack { + artists: SimplifiedArtist[]; + available_markets: string[]; + disc_number: number; + duration_ms: number; + episode: boolean; + explicit: boolean; + external_urls: ExternalUrls; + href: string; + id: string; + is_local: boolean; + name: string; + preview_url: string | null; + track: boolean; + track_number: number; + type: string; + uri: string; + is_playable?: boolean; + linked_from?: LinkedFrom; + restrictions?: Restrictions; +} +export interface SavedTrack { + added_at: string; + track: Track; +} +export interface ExternalIds { + isrc: string; + ean: string; + upc: string; +} +export interface Track extends SimplifiedTrack { + album: SimplifiedAlbum; + external_ids: ExternalIds; + popularity: number; +} +export interface Tracks { + tracks: Track[]; +} +export interface SimplifiedArtist { + external_urls: ExternalUrls; + href: string; + id: string; + name: string; + type: string; + uri: string; +} +export interface Artist extends SimplifiedArtist { + followers: Followers; + genres: string[]; + images: Image[]; + popularity: number; +} +export interface Artists { + artists: Artist[]; +} +export interface FollowedArtists { + artists: Page; +} +export interface Followers { + href: string | null; + total: number; +} +export interface ExternalUrls { + spotify: string; +} +interface ResourceTypeToResultKey { + album: 'albums'; + artist: 'artists'; + track: 'tracks'; + playlist: 'playlists'; + show: 'shows'; + episode: 'episodes'; + audiobook: 'audiobooks'; +} +interface SearchResultsMap { + album: SimplifiedAlbum; + artist: Artist; + track: Track; + playlist: PlaylistBase; + show: SimplifiedShow; + episode: SimplifiedEpisode; + audiobook: SimplifiedAudiobook; +} +export type PartialSearchResult = { + [K in ItemTypes as ResourceTypeToResultKey[K]]?: Page; +}; +/** + * Makes all properties in SearchResults optional, unless the type T is a tuple (literal array / tuple) of SearchTypes. + */ +export type SearchResults = Pick extends infer R ? number extends T['length'] ? R : Required : never; +export interface ArtistSearchResult { + href: string; + items: ArtistSearchResultItem[]; +} +export interface ArtistSearchResultItem { + id: string; + name: string; + popularity: number; + genres: string[]; +} +export interface TopTracksResult { + tracks: Track[]; +} +export interface Image { + url: string; + height: number; + width: number; +} +export interface SimplifiedAudiobook { + authors: Author[]; + available_markets: string[]; + copyrights: Copyright[]; + description: string; + edition: string; + explicit: boolean; + external_urls: ExternalUrls; + href: string; + html_description: string; + id: string; + images: Image[]; + languages: string[]; + media_type: string; + name: string; + narrators: Narrator[]; + publisher: string; + total_chapters: number; + type: string; + uri: string; +} +export interface Audiobook extends SimplifiedAudiobook { + chapters: Page; +} +export interface Audiobooks { + audiobooks: Audiobook[]; +} +export interface Categories { + categories: Page; +} +export interface Episodes { + episodes: Episode[]; +} +export interface Genres { + genres: string[]; +} +export interface Markets { + markets: string[]; +} +export interface Shows { + shows: Show[]; +} +export interface Category { + href: string; + icons: Icon[]; + id: string; + name: string; +} +export interface Icon { + height?: number; + url: string; + width?: number; +} +export interface Author { + name: string; +} +export interface SimplifiedChapter { + id: string; + description: string; + chapter_number: number; + duration_ms: number; + explicit: boolean; + images: Image[]; + languages: string[]; + name: string; + audio_preview_url: string; + release_date: string; + release_date_precision: string; + resume_point: ResumePoint; + html_description: string; + available_markets: Market[]; + type: string; + uri: string; + external_urls: ExternalUrls; + href: string; + is_playable: boolean; + restrictions?: Restrictions; +} +export interface Chapters { + chapters: Chapter[]; +} +export interface Chapter extends SimplifiedChapter { + audiobook: SimplifiedAudiobook; +} +export interface Restrictions { + reason: string; +} +export interface ResumePoint { + fully_played: boolean; + resume_position_ms: number; +} +export interface Narrator { + name: string; +} +export interface SimplifiedEpisode { + audio_preview_url: string; + description: string; + html_description: string; + duration_ms: number; + explicit: boolean; + external_urls: ExternalUrls; + href: string; + id: string; + images: Image[]; + is_externally_hosted: boolean; + is_playable: boolean; + language: string; + languages: string[]; + name: string; + release_date: string; + release_date_precision: string; + resume_point: ResumePoint; + type: string; + uri: string; + restrictions: Restrictions; +} +export interface Episode extends SimplifiedEpisode { + show: SimplifiedShow; +} +export interface SavedEpisode { + added_at: string; + episode: Episode; +} +export interface SimplifiedShow { + available_markets: string[]; + copyrights: Copyright[]; + description: string; + html_description: string; + explicit: boolean; + external_urls: ExternalUrls; + href: string; + id: string; + images: Image[]; + is_externally_hosted: boolean; + languages: string[]; + media_type: string; + name: string; + publisher: string; + type: string; + uri: string; + total_episodes: number; +} +export interface SavedShow { + added_at: string; + show: SimplifiedShow; +} +export interface Show extends SimplifiedShow { + episodes: Page; +} +export interface SnapshotReference { + snapshot_id: string; +} +interface PlaylistBase { + collaborative: boolean; + description: string; + external_urls: ExternalUrls; + followers: Followers; + href: string; + id: string; + images: Image[]; + name: string; + owner: UserReference; + primary_color: string; + public: boolean; + snapshot_id: string; + type: string; + uri: string; +} +export interface Playlist extends PlaylistBase { + tracks: Page>; +} +export interface FeaturedPlaylists { + message: string; + playlists: Page; +} +export interface SimplifiedPlaylist extends PlaylistBase { + tracks: TrackReference | null; +} +export interface TrackReference { + href: string; + total: number; +} +export interface UserReference { + display_name: string; + external_urls: ExternalUrls; + href: string; + id: string; + type: string; + uri: string; +} +export interface User { + display_name: string; + email: string; + external_urls: ExternalUrls; + followers: Followers; + href: string; + id: string; + images: Image[]; + type: string; + uri: string; +} +export interface UserProfile extends User { + country: string; + explicit_content: { + filter_enabled: boolean; + filter_locked: boolean; + }; + product: string; +} +export interface AudioFeatures { + danceability: number; + energy: number; + key: number; + loudness: number; + mode: number; + speechiness: number; + acousticness: number; + instrumentalness: number; + liveness: number; + valence: number; + tempo: number; + type: string; + id: string; + uri: string; + track_href: string; + analysis_url: string; + duration_ms: number; + time_signature: number; +} +export interface AudioFeaturesCollection { + audio_features: AudioFeatures[]; +} +export interface AudioAnalysis { + meta: Meta; + track: TrackAnalysis; + bars: Bar[]; + beats: Beat[]; + sections: Section[]; + segments: Segment[]; + tatums: Tatum[]; +} +export interface Meta { + analyzer_version: string; + platform: string; + detailed_status: string; + status_code: number; + timestamp: number; + analysis_time: number; + input_process: string; +} +export interface TrackAnalysis { + num_samples: number; + duration: number; + sample_md5: string; + offset_seconds: number; + window_seconds: number; + analysis_sample_rate: number; + analysis_channels: number; + end_of_fade_in: number; + start_of_fade_out: number; + loudness: number; + tempo: number; + tempo_confidence: number; + time_signature: number; + time_signature_confidence: number; + key: number; + key_confidence: number; + mode: number; + mode_confidence: number; + codestring: string; + code_version: number; + echoprintstring: string; + echoprint_version: number; + synchstring: string; + synch_version: number; + rhythmstring: string; + rhythm_version: number; +} +export interface Bar { + start: number; + duration: number; + confidence: number; +} +export interface Beat { + start: number; + duration: number; + confidence: number; +} +export interface Section { + start: number; + duration: number; + confidence: number; + loudness: number; + tempo: number; + tempo_confidence: number; + key: number; + key_confidence: number; + mode: number; + mode_confidence: number; + time_signature: number; + time_signature_confidence: number; +} +export interface Segment { + start: number; + duration: number; + confidence: number; + loudness_start: number; + loudness_max: number; + loudness_max_time: number; + loudness_end: number; + pitches: number[]; + timbre: number[]; +} +export interface Tatum { + start: number; + duration: number; + confidence: number; +} +export interface PlaybackState { + device: Device; + repeat_state: string; + shuffle_state: boolean; + context: Context | null; + timestamp: number; + progress_ms: number; + is_playing: boolean; + item: TrackItem; + currently_playing_type: string; + actions: Actions; +} +export interface Device { + id: string | null; + is_active: boolean; + is_private_session: boolean; + is_restricted: boolean; + name: string; + type: string; + volume_percent: number | null; +} +export interface Devices { + devices: Device[]; +} +export interface Context { + type: string; + href: string; + external_urls: ExternalUrls; + uri: string; +} +export interface Actions { + interrupting_playback?: boolean; + pausing?: boolean; + resuming?: boolean; + seeking?: boolean; + skipping_next?: boolean; + skipping_prev?: boolean; + toggling_repeat_context?: boolean; + toggling_shuffle?: boolean; + toggling_repeat_track?: boolean; + transferring_playback?: boolean; +} +export interface RecentlyPlayedTracksPage { + href: string; + limit: number; + next: string | null; + cursors: { + after: string; + before: string; + }; + total: number; + items: PlayHistory[]; +} +export interface PlayHistory { + track: Track; + played_at: string; + context: Context; +} +export interface Queue { + currently_playing: TrackItem | null; + queue: TrackItem[]; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/types.js b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/types.js new file mode 100644 index 0000000..e7d00e8 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/types.js @@ -0,0 +1,3 @@ +// Configuration types +export {}; +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/dist/mjs/types.js.map b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/types.js.map new file mode 100644 index 0000000..6dcd5e0 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/dist/mjs/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,sBAAsB"} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/example/.env.template b/node_modules/@spotify/web-api-ts-sdk/example/.env.template new file mode 100644 index 0000000..b364575 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example/.env.template @@ -0,0 +1,2 @@ +VITE_SPOTIFY_CLIENT_ID=your_spotify_client_id_for_tests +VITE_REDIRECT_TARGET=http://localhost:3000 \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/example/env.d.ts b/node_modules/@spotify/web-api-ts-sdk/example/env.d.ts new file mode 100644 index 0000000..acbaf3c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example/env.d.ts @@ -0,0 +1,8 @@ +interface ImportMetaEnv { + readonly VITE_SPOTIFY_CLIENT_ID: string + readonly VITE_REDIRECT_TARGET: string +} + +interface ImportMeta { + readonly env: ImportMetaEnv +} diff --git a/node_modules/@spotify/web-api-ts-sdk/example/index.html b/node_modules/@spotify/web-api-ts-sdk/example/index.html new file mode 100644 index 0000000..5406339 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example/index.html @@ -0,0 +1,26 @@ + + + + + + Example + + + + + +

Display Spotify profile data

+ +
+

Logged in as

+ +
    +
  • User ID:
  • +
  • Email:
  • +
  • Spotify URI:
  • +
  • Link:
  • +
  • Profile Image:
  • +
+
+ + diff --git a/node_modules/@spotify/web-api-ts-sdk/example/script.ts b/node_modules/@spotify/web-api-ts-sdk/example/script.ts new file mode 100644 index 0000000..9dc4734 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example/script.ts @@ -0,0 +1,26 @@ +import { SpotifyApi } from "../src/index"; +import AuthorizationCodeWithPKCEStrategy from "../src/auth/AuthorizationCodeWithPKCEStrategy"; + +const implicitGrantStrategy = new AuthorizationCodeWithPKCEStrategy( + import.meta.env.VITE_SPOTIFY_CLIENT_ID, + import.meta.env.VITE_REDIRECT_TARGET, + ['user-read-private', 'user-read-email', 'playlist-modify-public', 'playlist-modify-private, user-read-playback-state, user-modify-playback-state'] +); + +const spotify = new SpotifyApi(implicitGrantStrategy); +const profile = await spotify.currentUser.profile(); +console.log(profile); + +document.getElementById("displayName")!.innerText = profile.display_name; +if (profile.images[0]) { + const profileImage = new Image(200, 200); + profileImage.src = profile.images[0].url; + document.getElementById("avatar")!.appendChild(profileImage); +} +document.getElementById("id")!.innerText = profile.id; +document.getElementById("email")!.innerText = profile.email; +document.getElementById("uri")!.innerText = profile.uri; +document.getElementById("uri")!.setAttribute("href", profile.external_urls.spotify); +document.getElementById("url")!.innerText = profile.href; +document.getElementById("url")!.setAttribute("href", profile.href); +document.getElementById("imgUrl")!.innerText = profile.images[0]?.url ?? '(no profile image)'; diff --git a/node_modules/@spotify/web-api-ts-sdk/example/style.css b/node_modules/@spotify/web-api-ts-sdk/example/style.css new file mode 100644 index 0000000..f5dd46d --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example/style.css @@ -0,0 +1,33 @@ +html { + font-family: Arial, Helvetica, sans-serif; +} + +body { + margin: 0 auto; + max-width: 700px; +} + +section { + display: grid; + grid-template-columns: auto 1fr; +} + +h2 { + grid-column: span 2; +} + +ul { + max-width: 500px; + margin: 0; + list-style: none; + line-height: 1.5em; +} + +li { + font-weight: bold; +} + +li span { + font-weight: normal; + overflow-wrap: break-word; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/example_next/.env.template b/node_modules/@spotify/web-api-ts-sdk/example_next/.env.template new file mode 100644 index 0000000..67d87cf --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_next/.env.template @@ -0,0 +1,3 @@ +SPOTIFY_CLIENT_ID=your_spotify_client_id_for_tests +SPOTIFY_CLIENT_SECRET=your_spotify_client_secret_for_tests +NEXTAUTH_SECRET=random_string_for_nextauth diff --git a/node_modules/@spotify/web-api-ts-sdk/example_next/.eslintrc.json b/node_modules/@spotify/web-api-ts-sdk/example_next/.eslintrc.json new file mode 100644 index 0000000..bffb357 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_next/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/node_modules/@spotify/web-api-ts-sdk/example_next/next.config.js b/node_modules/@spotify/web-api-ts-sdk/example_next/next.config.js new file mode 100644 index 0000000..658404a --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_next/next.config.js @@ -0,0 +1,4 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = {}; + +module.exports = nextConfig; diff --git a/node_modules/@spotify/web-api-ts-sdk/example_next/package-lock.json b/node_modules/@spotify/web-api-ts-sdk/example_next/package-lock.json new file mode 100644 index 0000000..e2cbbed --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_next/package-lock.json @@ -0,0 +1,3517 @@ +{ + "name": "example_next", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "example_next", + "version": "0.1.0", + "dependencies": { + "@types/node": "20.5.9", + "@types/react": "18.2.21", + "@types/react-dom": "18.2.7", + "eslint": "8.48.0", + "eslint-config-next": "13.4.19", + "next": "13.4.19", + "next-auth": "^4.23.1", + "react": "18.2.0", + "react-dom": "18.2.0", + "typescript": "5.2.2" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz", + "integrity": "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.1.tgz", + "integrity": "sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", + "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, + "node_modules/@next/env": { + "version": "13.4.19", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.19.tgz", + "integrity": "sha512-FsAT5x0jF2kkhNkKkukhsyYOrRqtSxrEhfliniIq0bwWbuXLgyt3Gv0Ml+b91XwjwArmuP7NxCiGd++GGKdNMQ==" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "13.4.19", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.4.19.tgz", + "integrity": "sha512-N/O+zGb6wZQdwu6atMZHbR7T9Np5SUFUjZqCbj0sXm+MwQO35M8TazVB4otm87GkXYs2l6OPwARd3/PUWhZBVQ==", + "dependencies": { + "glob": "7.1.7" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "13.4.19", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.19.tgz", + "integrity": "sha512-vv1qrjXeGbuF2mOkhkdxMDtv9np7W4mcBtaDnHU+yJG+bBwa6rYsYSCI/9Xm5+TuF5SbZbrWO6G1NfTh1TMjvQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "13.4.19", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.19.tgz", + "integrity": "sha512-jyzO6wwYhx6F+7gD8ddZfuqO4TtpJdw3wyOduR4fxTUCm3aLw7YmHGYNjS0xRSYGAkLpBkH1E0RcelyId6lNsw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "13.4.19", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.19.tgz", + "integrity": "sha512-vdlnIlaAEh6H+G6HrKZB9c2zJKnpPVKnA6LBwjwT2BTjxI7e0Hx30+FoWCgi50e+YO49p6oPOtesP9mXDRiiUg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "13.4.19", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.19.tgz", + "integrity": "sha512-aU0HkH2XPgxqrbNRBFb3si9Ahu/CpaR5RPmN2s9GiM9qJCiBBlZtRTiEca+DC+xRPyCThTtWYgxjWHgU7ZkyvA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "13.4.19", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.19.tgz", + "integrity": "sha512-htwOEagMa/CXNykFFeAHHvMJeqZfNQEoQvHfsA4wgg5QqGNqD5soeCer4oGlCol6NGUxknrQO6VEustcv+Md+g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "13.4.19", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.19.tgz", + "integrity": "sha512-4Gj4vvtbK1JH8ApWTT214b3GwUh9EKKQjY41hH/t+u55Knxi/0wesMzwQRhppK6Ddalhu0TEttbiJ+wRcoEj5Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "13.4.19", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.19.tgz", + "integrity": "sha512-bUfDevQK4NsIAHXs3/JNgnvEY+LRyneDN788W2NYiRIIzmILjba7LaQTfihuFawZDhRtkYCv3JDC3B4TwnmRJw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "13.4.19", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.19.tgz", + "integrity": "sha512-Y5kikILFAr81LYIFaw6j/NrOtmiM4Sf3GtOc0pn50ez2GCkr+oejYuKGcwAwq3jiTKuzF6OF4iT2INPoxRycEA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "13.4.19", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.19.tgz", + "integrity": "sha512-YzA78jBDXMYiINdPdJJwGgPNT3YqBNNGhsthsDoWHL9p24tEJn9ViQf/ZqTbwSpX/RrkPupLfuuTH2sf73JBAw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@panva/hkdf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.1.1.tgz", + "integrity": "sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.3.3.tgz", + "integrity": "sha512-0xd7qez0AQ+MbHatZTlI1gu5vkG8r7MYRUJAHPAHJBmGLs16zpkrpAVLvjQKQOqaXPDUBwOiJzNc00znHSCVBw==" + }, + "node_modules/@swc/helpers": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.1.tgz", + "integrity": "sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "node_modules/@types/node": { + "version": "20.5.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.9.tgz", + "integrity": "sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "node_modules/@types/react": { + "version": "18.2.21", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.21.tgz", + "integrity": "sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.7.tgz", + "integrity": "sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.0.tgz", + "integrity": "sha512-jZKYwqNpNm5kzPVP5z1JXAuxjtl2uG+5NpaMocFPTNC2EdYIgbXIPImObOkhbONxtFTTdoZstLZefbaK+wXZng==", + "dependencies": { + "@typescript-eslint/scope-manager": "6.7.0", + "@typescript-eslint/types": "6.7.0", + "@typescript-eslint/typescript-estree": "6.7.0", + "@typescript-eslint/visitor-keys": "6.7.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.0.tgz", + "integrity": "sha512-lAT1Uau20lQyjoLUQ5FUMSX/dS07qux9rYd5FGzKz/Kf8W8ccuvMyldb8hadHdK/qOI7aikvQWqulnEq2nCEYA==", + "dependencies": { + "@typescript-eslint/types": "6.7.0", + "@typescript-eslint/visitor-keys": "6.7.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.0.tgz", + "integrity": "sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q==", + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.0.tgz", + "integrity": "sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ==", + "dependencies": { + "@typescript-eslint/types": "6.7.0", + "@typescript-eslint/visitor-keys": "6.7.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.0.tgz", + "integrity": "sha512-/C1RVgKFDmGMcVGeD8HjKv2bd72oI1KxQDeY8uc66gw9R0OK0eMq48cA+jv9/2Ag6cdrsUGySm1yzYmfz0hxwQ==", + "dependencies": { + "@typescript-eslint/types": "6.7.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", + "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" + }, + "node_modules/asynciterator.prototype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", + "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", + "dependencies": { + "has-symbols": "^1.0.3" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.8.1.tgz", + "integrity": "sha512-9l850jDDPnKq48nbad8SiEelCv4OrUWrKab/cPj0GScVg6cb6NbCCt/Ulk26QEq5jP9NnGr04Bit1BHyV6r5CQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", + "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001534", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001534.tgz", + "integrity": "sha512-vlPVrhsCS7XaSh2VvWluIQEzVhefrUQcEsQWSS5A5V+dM07uv1qHeQzAOTGIMy9i3e9bH15+muvI/UHojVgS/Q==", + "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/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/define-data-property": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", + "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-abstract": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", + "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", + "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "dependencies": { + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.0.1" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz", + "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.48.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-next": { + "version": "13.4.19", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.4.19.tgz", + "integrity": "sha512-WE8367sqMnjhWHvR5OivmfwENRQ1ixfNE9hZwQqNCsd+iM3KnuMc1V8Pt6ytgjxjf23D+xbesADv9x3xaKfT3g==", + "dependencies": { + "@next/eslint-plugin-next": "13.4.19", + "@rushstack/eslint-patch": "^1.1.3", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.31.7", + "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.0.tgz", + "integrity": "sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg==", + "dependencies": { + "debug": "^4.3.4", + "enhanced-resolve": "^5.12.0", + "eslint-module-utils": "^2.7.4", + "fast-glob": "^3.3.1", + "get-tsconfig": "^4.5.0", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.findlastindex": "^1.2.2", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.8.0", + "has": "^1.0.3", + "is-core-module": "^2.13.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.6", + "object.groupby": "^1.0.0", + "object.values": "^1.1.6", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", + "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", + "dependencies": { + "@babel/runtime": "^7.20.7", + "aria-query": "^5.1.3", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.6.2", + "axobject-query": "^3.1.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.3.3", + "language-tags": "=1.0.5", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "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/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "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==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", + "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", + "dependencies": { + "flatted": "^3.2.7", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.0.tgz", + "integrity": "sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/globals": { + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/jose": { + "version": "4.14.6", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.14.6.tgz", + "integrity": "sha512-EqJPEUlZD0/CSUMubKtMaYUOtWe91tZXTWMJZoKSbLk+KtdhNdcvppH8lA9XwVu2V4Ailvsj0GBZJ2ZwDjfesQ==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" + }, + "node_modules/language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "dependencies": { + "language-subtag-registry": "~0.3.2" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "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==", + "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/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/next": { + "version": "13.4.19", + "resolved": "https://registry.npmjs.org/next/-/next-13.4.19.tgz", + "integrity": "sha512-HuPSzzAbJ1T4BD8e0bs6B9C1kWQ6gv8ykZoRWs5AQoiIuqbGHHdQO7Ljuvg05Q0Z24E2ABozHe6FxDvI6HfyAw==", + "dependencies": { + "@next/env": "13.4.19", + "@swc/helpers": "0.5.1", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001406", + "postcss": "8.4.14", + "styled-jsx": "5.1.1", + "watchpack": "2.4.0", + "zod": "3.21.4" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=16.8.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "13.4.19", + "@next/swc-darwin-x64": "13.4.19", + "@next/swc-linux-arm64-gnu": "13.4.19", + "@next/swc-linux-arm64-musl": "13.4.19", + "@next/swc-linux-x64-gnu": "13.4.19", + "@next/swc-linux-x64-musl": "13.4.19", + "@next/swc-win32-arm64-msvc": "13.4.19", + "@next/swc-win32-ia32-msvc": "13.4.19", + "@next/swc-win32-x64-msvc": "13.4.19" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next-auth": { + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.23.1.tgz", + "integrity": "sha512-mL083z8KgRtlrIV6CDca2H1kduWJuK/3pTS0Fe2og15KOm4v2kkLGdSDfc2g+019aEBrJUT0pPW2Xx42ImN1WA==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@panva/hkdf": "^1.0.2", + "cookie": "^0.5.0", + "jose": "^4.11.4", + "oauth": "^0.9.15", + "openid-client": "^5.4.0", + "preact": "^10.6.3", + "preact-render-to-string": "^5.1.19", + "uuid": "^8.3.2" + }, + "peerDependencies": { + "next": "^12.2.5 || ^13", + "nodemailer": "^6.6.5", + "react": "^17.0.2 || ^18", + "react-dom": "^17.0.2 || ^18" + }, + "peerDependenciesMeta": { + "nodemailer": { + "optional": true + } + } + }, + "node_modules/oauth": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", + "integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.hasown": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", + "dependencies": { + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/oidc-token-hash": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.3.tgz", + "integrity": "sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==", + "engines": { + "node": "^10.13.0 || >=12.0.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/openid-client": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.5.0.tgz", + "integrity": "sha512-Y7Xl8BgsrkzWLHkVDYuroM67hi96xITyEDSkmWaGUiNX6CkcXC3XyQGdv5aWZ6dukVKBFVQCADi9gCavOmU14w==", + "dependencies": { + "jose": "^4.14.4", + "lru-cache": "^6.0.0", + "object-hash": "^2.2.0", + "oidc-token-hash": "^5.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/preact": { + "version": "10.17.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.17.1.tgz", + "integrity": "sha512-X9BODrvQ4Ekwv9GURm9AKAGaomqXmip7NQTZgY7gcNmr7XE83adOMJvd3N42id1tMFU7ojiynRsYnY6/BRFxLA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/preact-render-to-string": { + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz", + "integrity": "sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==", + "dependencies": { + "pretty-format": "^3.8.0" + }, + "peerDependencies": { + "preact": ">=10" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-format": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", + "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==" + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", + "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", + "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "set-function-name": "^2.0.0", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.21.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz", + "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/example_next/package.json b/node_modules/@spotify/web-api-ts-sdk/example_next/package.json new file mode 100644 index 0000000..a11b811 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_next/package.json @@ -0,0 +1,23 @@ +{ + "name": "example_next", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@types/node": "20.5.9", + "@types/react": "18.2.21", + "@types/react-dom": "18.2.7", + "eslint": "8.48.0", + "eslint-config-next": "13.4.19", + "next": "13.4.19", + "next-auth": "^4.23.1", + "react": "18.2.0", + "react-dom": "18.2.0", + "typescript": "5.2.2" + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/example_next/src/app/api/auth/[...nextauth]/SpotifyProfile.ts b/node_modules/@spotify/web-api-ts-sdk/example_next/src/app/api/auth/[...nextauth]/SpotifyProfile.ts new file mode 100644 index 0000000..03d1518 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_next/src/app/api/auth/[...nextauth]/SpotifyProfile.ts @@ -0,0 +1,66 @@ +import { JWT } from "next-auth/jwt"; +import SpotifyProvider from "next-auth/providers/spotify"; + +if (!process.env.SPOTIFY_CLIENT_ID) { + throw new Error("Missing SPOTIFY_CLIENT_ID"); +} + +if (!process.env.SPOTIFY_CLIENT_SECRET) { + throw new Error("Missing SPOTIFY_CLIENT_SECRET"); +} + +const spotifyProfile = SpotifyProvider({ + clientId: process.env.SPOTIFY_CLIENT_ID, + clientSecret: process.env.SPOTIFY_CLIENT_SECRET, +}); + +const authURL = new URL("https://accounts.spotify.com/authorize"); + +const scopes = [ + "user-read-email", + "user-read-private", + "user-read-playback-state", + "user-library-read", + "user-modify-playback-state", + "playlist-read-private", + "playlist-read-collaborative", +]; + +authURL.searchParams.append("scope", scopes.join(" ")); + +spotifyProfile.authorization = authURL.toString(); + +export default spotifyProfile; + +export async function refreshAccessToken(token: JWT) { + try { + const response = await fetch(authURL, { + headers: { + "Content-Type": "application/x-www-form-urlencoded", + }, + method: "POST", + }); + + const refreshedTokens = await response.json(); + + if (!response.ok) { + throw refreshedTokens; + } + + return { + ...token, + access_token: refreshedTokens.access_token, + token_type: refreshedTokens.token_type, + expires_at: refreshedTokens.expires_at, + expires_in: (refreshedTokens.expires_at ?? 0) - Date.now() / 1000, + refresh_token: refreshedTokens.refresh_token ?? token.refresh_token, + scope: refreshedTokens.scope, + }; + } catch (error) { + console.error(error); + return { + ...token, + error: "RefreshAccessTokenError", + }; + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/example_next/src/app/api/auth/[...nextauth]/authOptions.ts b/node_modules/@spotify/web-api-ts-sdk/example_next/src/app/api/auth/[...nextauth]/authOptions.ts new file mode 100644 index 0000000..c909278 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_next/src/app/api/auth/[...nextauth]/authOptions.ts @@ -0,0 +1,66 @@ +import spotifyProfile, { refreshAccessToken } from "./SpotifyProfile"; +import { Account, AuthOptions } from "next-auth"; +import { JWT } from "next-auth/jwt"; + +export type AuthUser = { + name: string; + email: string; + image: string; + access_token: string; + token_type: string; + expires_at: number; + expires_in: number; + refresh_token: string; + scope: string; + id: string; +}; + +const authOptions: AuthOptions = { + providers: [spotifyProfile], + session: { + maxAge: 60 * 60, // 1hr + }, + callbacks: { + async jwt({ token, account }: { token: JWT; account: Account | null }) { + if (!account) { + return token; + } + + const updatedToken = { + ...token, + access_token: account?.access_token, + token_type: account?.token_type, + expires_at: account?.expires_at ?? Date.now() / 1000, + expires_in: (account?.expires_at ?? 0) - Date.now() / 1000, + refresh_token: account?.refresh_token, + scope: account?.scope, + id: account?.providerAccountId, + }; + + if (Date.now() < updatedToken.expires_at) { + return refreshAccessToken(updatedToken); + } + + return updatedToken; + }, + async session({ session, token }: { session: any; token: any }) { + const user: AuthUser = { + ...session.user, + access_token: token.access_token, + token_type: token.token_type, + expires_at: token.expires_at, + expires_in: token.expires_in, + refresh_token: token.refresh_token, + scope: token.scope, + id: token.id, + }; + session.user = user; + session.error = token.error; + return session; + }, + }, + debug: process.env.NODE_ENV === "development", + secret: process.env.NEXTAUTH_SECRET, +}; + +export default authOptions; diff --git a/node_modules/@spotify/web-api-ts-sdk/example_next/src/app/api/auth/[...nextauth]/route.ts b/node_modules/@spotify/web-api-ts-sdk/example_next/src/app/api/auth/[...nextauth]/route.ts new file mode 100644 index 0000000..94428d5 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_next/src/app/api/auth/[...nextauth]/route.ts @@ -0,0 +1,6 @@ +import authOptions from "./authOptions"; +import NextAuth from "next-auth"; + +const handler = NextAuth(authOptions); + +export { handler as GET, handler as POST }; diff --git a/node_modules/@spotify/web-api-ts-sdk/example_next/src/app/globals.css b/node_modules/@spotify/web-api-ts-sdk/example_next/src/app/globals.css new file mode 100644 index 0000000..fa176d2 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_next/src/app/globals.css @@ -0,0 +1,34 @@ +:root { + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/example_next/src/app/layout.tsx b/node_modules/@spotify/web-api-ts-sdk/example_next/src/app/layout.tsx new file mode 100644 index 0000000..246fc19 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_next/src/app/layout.tsx @@ -0,0 +1,23 @@ +import authOptions from "@/app/api/auth/[...nextauth]/authOptions"; +import "@/globals.css"; +import AuthSessionProvider from "@/components/AuthSessionProvider"; +import { getServerSession } from "next-auth"; +import { Inter } from "next/font/google"; + +const inter = Inter({ subsets: ["latin"] }); + +export default async function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + const session = await getServerSession(authOptions); + + return ( + + + {children} + + + ); +} diff --git a/node_modules/@spotify/web-api-ts-sdk/example_next/src/app/page.tsx b/node_modules/@spotify/web-api-ts-sdk/example_next/src/app/page.tsx new file mode 100644 index 0000000..5e1c671 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_next/src/app/page.tsx @@ -0,0 +1,65 @@ +"use client"; + +import { SearchResults, SpotifyApi } from "@sdk/index.js"; // use "@spotify/web-api-ts-sdk" in your own project +import sdk from "@/lib/spotify-sdk/ClientInstance"; +import { useSession, signOut, signIn } from "next-auth/react"; +import { useEffect, useState } from "react"; + +export default function Home() { + const session = useSession(); + + if (!session || session.status !== "authenticated") { + return ( +
+

Spotify Web API Typescript SDK in Next.js

+ +
+ ); + } + + return ( +
+

Logged in as {session.data.user?.name}

+ + +
+ ); +} + +function SpotifySearch({ sdk }: { sdk: SpotifyApi }) { + const [results, setResults] = useState({} as SearchResults); + + useEffect(() => { + (async () => { + const results = await sdk.search("The Beatles", ["artist"]); + setResults(() => results); + })(); + }, [sdk]); + + // generate a table for the results + const tableRows = results.artists?.items.map((artist) => { + return ( + + {artist.name} + {artist.popularity} + {artist.followers.total} + + ); + }); + + return ( + <> +

Spotify Search for The Beatles

+ + + + + + + + + {tableRows} +
NamePopularityFollowers
+ + ); +} diff --git a/node_modules/@spotify/web-api-ts-sdk/example_next/src/components/AuthSessionProvider.tsx b/node_modules/@spotify/web-api-ts-sdk/example_next/src/components/AuthSessionProvider.tsx new file mode 100644 index 0000000..703f4be --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_next/src/components/AuthSessionProvider.tsx @@ -0,0 +1,17 @@ +"use client"; + +import type { Session } from "next-auth"; +import { SessionProvider } from "next-auth/react"; +import React from "react"; + +function AuthSessionProvider({ + session, + children, +}: { + children: React.ReactNode; + session: Session | null | undefined; +}) { + return {children}; +} + +export default AuthSessionProvider; diff --git a/node_modules/@spotify/web-api-ts-sdk/example_next/src/lib/spotify-sdk/ClientInstance.ts b/node_modules/@spotify/web-api-ts-sdk/example_next/src/lib/spotify-sdk/ClientInstance.ts new file mode 100644 index 0000000..b1541ed --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_next/src/lib/spotify-sdk/ClientInstance.ts @@ -0,0 +1,58 @@ +"use client"; + +import { + AccessToken, + IAuthStrategy, + SdkConfiguration, + SdkOptions, + SpotifyApi, +} from "@sdk/index.js"; // use "@spotify/web-api-ts-sdk" in your own project +import { AuthUser } from "@/app/api/auth/[...nextauth]/authOptions"; +import { getSession, signIn } from "next-auth/react"; + +/** + * A class that implements the IAuthStrategy interface and wraps the NextAuth functionality. + * It retrieves the access token and other information from the JWT session handled by NextAuth. + */ +class NextAuthStrategy implements IAuthStrategy { + public getOrCreateAccessToken(): Promise { + return this.getAccessToken(); + } + + public async getAccessToken(): Promise { + const session: any = await getSession(); + if (!session) { + return {} as AccessToken; + } + + if (session?.error === "RefreshAccessTokenError") { + await signIn(); + return this.getAccessToken(); + } + + const { user }: { user: AuthUser } = session; + + return { + access_token: user.access_token, + token_type: "Bearer", + expires_in: user.expires_in, + expires: user.expires_at, + refresh_token: user.refresh_token, + } as AccessToken; + } + + public removeAccessToken(): void { + console.warn("[Spotify-SDK][WARN]\nremoveAccessToken not implemented"); + } + + public setConfiguration(configuration: SdkConfiguration): void { + console.warn("[Spotify-SDK][WARN]\nsetConfiguration not implemented"); + } +} + +function withNextAuthStrategy(config?: SdkOptions) { + const strategy = new NextAuthStrategy(); + return new SpotifyApi(strategy, config); +} + +export default withNextAuthStrategy(); diff --git a/node_modules/@spotify/web-api-ts-sdk/example_next/tsconfig.json b/node_modules/@spotify/web-api-ts-sdk/example_next/tsconfig.json new file mode 100644 index 0000000..e5b9f66 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_next/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "target": "ESNext", + "lib": ["dom", "dom.iterable", "esnext"], + "module": "esnext", + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "preserve", + "allowJs": true, + "strict": true, + "esModuleInterop": true, + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"], + "@sdk/*": ["../dist/cjs/*"] + }, + "composite": true, + "allowSyntheticDefaultImports": true + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/node_modules/@spotify/web-api-ts-sdk/example_node/.env.template b/node_modules/@spotify/web-api-ts-sdk/example_node/.env.template new file mode 100644 index 0000000..8dda695 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_node/.env.template @@ -0,0 +1,2 @@ +SPOTIFY_CLIENT_ID=your_spotify_client_id_for_tests +SPOTIFY_CLIENT_SECRET=your_spotify_client_secret_for_tests \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/example_node/index.js b/node_modules/@spotify/web-api-ts-sdk/example_node/index.js new file mode 100644 index 0000000..240651f --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_node/index.js @@ -0,0 +1,19 @@ +import { SpotifyApi } from "../dist/cjs/index.js"; +import dotenv from "dotenv"; +dotenv.config(); + +console.log("Searching Spotify for The Beatles..."); + +const api = SpotifyApi.withClientCredentials( + process.env.SPOTIFY_CLIENT_ID, + process.env.SPOTIFY_CLIENT_SECRET +); + +const items = await api.search("The Beatles", ["artist"]); + +console.table(items.artists.items.map((item) => ({ + name: item.name, + followers: item.followers.total, + popularity: item.popularity, +}))); + diff --git a/node_modules/@spotify/web-api-ts-sdk/example_node/package-lock.json b/node_modules/@spotify/web-api-ts-sdk/example_node/package-lock.json new file mode 100644 index 0000000..8ca073c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_node/package-lock.json @@ -0,0 +1,31 @@ +{ + "name": "example_node", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "example_node", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "dotenv": "^16.0.3" + } + }, + "node_modules/dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "engines": { + "node": ">=12" + } + } + }, + "dependencies": { + "dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==" + } + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/example_node/package.json b/node_modules/@spotify/web-api-ts-sdk/example_node/package.json new file mode 100644 index 0000000..ef6ce71 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_node/package.json @@ -0,0 +1,15 @@ +{ + "name": "example_node", + "version": "1.0.0", + "description": "", + "main": "index.js", + "type": "module", + "scripts": { + "start": "node index.js" + }, + "author": "", + "license": "ISC", + "dependencies": { + "dotenv": "^16.0.3" + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/example_react/.env.template b/node_modules/@spotify/web-api-ts-sdk/example_react/.env.template new file mode 100644 index 0000000..b364575 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_react/.env.template @@ -0,0 +1,2 @@ +VITE_SPOTIFY_CLIENT_ID=your_spotify_client_id_for_tests +VITE_REDIRECT_TARGET=http://localhost:3000 \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/example_react/.eslintrc.cjs b/node_modules/@spotify/web-api-ts-sdk/example_react/.eslintrc.cjs new file mode 100644 index 0000000..4020bcb --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_react/.eslintrc.cjs @@ -0,0 +1,14 @@ +module.exports = { + env: { browser: true, es2020: true }, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:react-hooks/recommended', + ], + parser: '@typescript-eslint/parser', + parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, + plugins: ['react-refresh'], + rules: { + 'react-refresh/only-export-components': 'warn', + }, +} diff --git a/node_modules/@spotify/web-api-ts-sdk/example_react/index.html b/node_modules/@spotify/web-api-ts-sdk/example_react/index.html new file mode 100644 index 0000000..7e6449b --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_react/index.html @@ -0,0 +1,12 @@ + + + + + + Vite + React + TS + + +
+ + + diff --git a/node_modules/@spotify/web-api-ts-sdk/example_react/package-lock.json b/node_modules/@spotify/web-api-ts-sdk/example_react/package-lock.json new file mode 100644 index 0000000..8672de9 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_react/package-lock.json @@ -0,0 +1,2944 @@ +{ + "name": "vite-project", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "vite-project", + "version": "0.0.0", + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.0.28", + "@types/react-dom": "^18.0.11", + "@typescript-eslint/eslint-plugin": "^5.57.1", + "@typescript-eslint/parser": "^5.57.1", + "@vitejs/plugin-react": "^4.0.4", + "eslint": "^8.49.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.3.4", + "typescript": "^5.0.2", + "vite": "^4.4.9" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.22.19", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.19.tgz", + "integrity": "sha512-Q8Yj5X4LHVYTbLCKVz0//2D2aDmHF4xzCdEttYvKOnWvErGsa6geHXD6w46x64n5tP69VfeH+IfSrdyH3MLhwA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.22.15", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.22.19", + "@babel/helpers": "^7.22.15", + "@babel/parser": "^7.22.16", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.22.19", + "@babel/types": "^7.22.19", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz", + "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.22.19", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.19.tgz", + "integrity": "sha512-m6h1cJvn+OJ+R3jOHp30faq5xKJ7VbjwDj5RGgHuRlU9hrMeKsGC+JpihkR5w1g7IfseCPPtZ0r7/hB4UKaYlA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.19", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.19.tgz", + "integrity": "sha512-Tinq7ybnEPFFXhlYOYFiSjespWQk0dq2dRNAiMdRTOYQzEGqnnNyrTxPYHP5r6wGjlF1rFgABdDV0g8EwD6Qbg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.15.tgz", + "integrity": "sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", + "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", + "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.22.5.tgz", + "integrity": "sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.22.5.tgz", + "integrity": "sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.22.19", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.19.tgz", + "integrity": "sha512-ZCcpVPK64krfdScRbpxF6xA5fz7IOsfMwx1tcACvCzt6JY+0aHkBk7eIU8FRDSZRU5Zei6Z4JfgAxN1bqXGECg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.16", + "@babel/types": "^7.22.19", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.22.19", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.19.tgz", + "integrity": "sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.19", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.1.tgz", + "integrity": "sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.49.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.49.0.tgz", + "integrity": "sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "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/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.6.tgz", + "integrity": "sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.4.tgz", + "integrity": "sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.2.tgz", + "integrity": "sha512-yVrXupeHjRxLDcPKL10sGQ/QlVrA8J5IYOEWVqk0lJaSZP7X5DfnP7Ns3cc74/blmbipQ1htFNVGsHX6wsYm0A==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.59.2", + "@typescript-eslint/type-utils": "5.59.2", + "@typescript-eslint/utils": "5.59.2", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.2.tgz", + "integrity": "sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.59.2", + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/typescript-estree": "5.59.2", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.2.tgz", + "integrity": "sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/visitor-keys": "5.59.2" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.2.tgz", + "integrity": "sha512-b1LS2phBOsEy/T381bxkkywfQXkV1dWda/z0PhnIy3bC5+rQWQDS7fk9CSpcXBccPY27Z6vBEuaPBCKCgYezyQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.59.2", + "@typescript-eslint/utils": "5.59.2", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz", + "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.2.tgz", + "integrity": "sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/visitor-keys": "5.59.2", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.2.tgz", + "integrity": "sha512-kSuF6/77TZzyGPhGO4uVp+f0SBoYxCDf+lW3GKhtKru/L8k/Hd7NFQxyWUeY7Z/KGB2C6Fe3yf2vVi4V9TsCSQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.59.2", + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/typescript-estree": "5.59.2", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", + "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.0.4.tgz", + "integrity": "sha512-7wU921ABnNYkETiMaZy7XqpueMnpu5VxvVps13MjmCo+utBdD79sZzrApHawHtVX66cCJQQTXFcjH0y9dSUK8g==", + "dev": true, + "dependencies": { + "@babel/core": "^7.22.9", + "@babel/plugin-transform-react-jsx-self": "^7.22.5", + "@babel/plugin-transform-react-jsx-source": "^7.22.5", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0" + } + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "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": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "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.10", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", + "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.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001534", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001534.tgz", + "integrity": "sha512-vlPVrhsCS7XaSh2VvWluIQEzVhefrUQcEsQWSS5A5V+dM07uv1qHeQzAOTGIMy9i3e9bH15+muvI/UHojVgS/Q==", + "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/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "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/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.523", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.523.tgz", + "integrity": "sha512-9AreocSUWnzNtvLcbpng6N+GkXnCcBR80IQkxRC9Dfdyg4gaWNUPBujAHUpKkiUkoSoR9UlhA4zD/IgBklmhzg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "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/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.49.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.49.0.tgz", + "integrity": "sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.49.0", + "@humanwhocodes/config-array": "^0.11.11", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.3.5.tgz", + "integrity": "sha512-61qNIsc7fo9Pp/mju0J83kzvLm0Bsayu7OQSLEoJxLDCBjIIyb87bkzufoOvdDxLkSlMfkF7UxomC4+eztUBSA==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/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/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/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/eslint/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/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "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/fast-glob/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/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "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/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "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/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "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-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/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "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/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "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/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/postcss": { + "version": "8.4.29", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", + "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", + "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/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.29.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.2.tgz", + "integrity": "sha512-CJouHoZ27v6siztc21eEQGo0kIcE5D1gVPA571ez0mMYb25LGYGKnVNXpEj5MGlepmDWGXNjDB5q7uNiPHC11A==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "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/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/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/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=12.20" + } + }, + "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/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "4.4.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz", + "integrity": "sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/example_react/package.json b/node_modules/@spotify/web-api-ts-sdk/example_react/package.json new file mode 100644 index 0000000..ab0dff0 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_react/package.json @@ -0,0 +1,28 @@ +{ + "name": "vite-project", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.0.28", + "@types/react-dom": "^18.0.11", + "@typescript-eslint/eslint-plugin": "^5.57.1", + "@typescript-eslint/parser": "^5.57.1", + "@vitejs/plugin-react": "^4.0.4", + "eslint": "^8.49.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.3.4", + "typescript": "^5.0.2", + "vite": "^4.4.9" + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/example_react/src/App.css b/node_modules/@spotify/web-api-ts-sdk/example_react/src/App.css new file mode 100644 index 0000000..027945e --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_react/src/App.css @@ -0,0 +1,6 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/example_react/src/App.tsx b/node_modules/@spotify/web-api-ts-sdk/example_react/src/App.tsx new file mode 100644 index 0000000..f84e45b --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_react/src/App.tsx @@ -0,0 +1,59 @@ +import { useSpotify } from './hooks/useSpotify'; +import { Scopes, SearchResults, SpotifyApi } from '../../src'; +import { useEffect, useState } from 'react' +import './App.css' + +function App() { + + const sdk = useSpotify( + import.meta.env.VITE_SPOTIFY_CLIENT_ID, + import.meta.env.VITE_REDIRECT_TARGET, + Scopes.userDetails + ); + + return sdk + ? () + : (<>); +} + +function SpotifySearch({ sdk }: { sdk: SpotifyApi}) { + const [results, setResults] = useState>({} as SearchResults<["artist"]>); + + useEffect(() => { + (async () => { + const results = await sdk.search("The Beatles", ["artist"]); + setResults(() => results); + })(); + }, [sdk]); + + // generate a table for the results + const tableRows = results.artists?.items.map((artist) => { + return ( + + {artist.name} + {artist.popularity} + {artist.followers.total} + + ); + }); + + return ( + <> +

Spotify Search for The Beatles

+ + + + + + + + + + {tableRows} + +
NamePopularityFollowers
+ + ) +} + +export default App; diff --git a/node_modules/@spotify/web-api-ts-sdk/example_react/src/hooks/useSpotify.ts b/node_modules/@spotify/web-api-ts-sdk/example_react/src/hooks/useSpotify.ts new file mode 100644 index 0000000..6bdb769 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_react/src/hooks/useSpotify.ts @@ -0,0 +1,35 @@ +import { useEffect, useRef, useState } from 'react' +import { SpotifyApi, SdkOptions, AuthorizationCodeWithPKCEStrategy } from "../../../src"; + +export function useSpotify(clientId: string, redirectUrl: string, scopes: string[], config?: SdkOptions) { + + const [sdk, setSdk] = useState(null); + const { current: activeScopes } = useRef(scopes); + + useEffect(() => { + (async () => { + const auth = new AuthorizationCodeWithPKCEStrategy(clientId, redirectUrl, activeScopes); + const internalSdk = new SpotifyApi(auth, config); + + try { + const { authenticated } = await internalSdk.authenticate(); + + if (authenticated) { + setSdk(() => internalSdk); + } + } catch (e: Error | unknown) { + + const error = e as Error; + if (error && error.message && error.message.includes("No verifier found in cache")) { + console.error("If you are seeing this error in a React Development Environment it's because React calls useEffect twice. Using the Spotify SDK performs a token exchange that is only valid once, so React re-rendering this component will result in a second, failed authentication. This will not impact your production applications (or anything running outside of Strict Mode - which is designed for debugging components).", error); + } else { + console.error(e); + } + } + + })(); + }, [clientId, redirectUrl, config, activeScopes]); + + return sdk; +} + diff --git a/node_modules/@spotify/web-api-ts-sdk/example_react/src/index.css b/node_modules/@spotify/web-api-ts-sdk/example_react/src/index.css new file mode 100644 index 0000000..2c3e148 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_react/src/index.css @@ -0,0 +1,28 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/example_react/src/main.tsx b/node_modules/@spotify/web-api-ts-sdk/example_react/src/main.tsx new file mode 100644 index 0000000..91c03f3 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_react/src/main.tsx @@ -0,0 +1,10 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App.tsx' +import './index.css' + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + , +) diff --git a/node_modules/@spotify/web-api-ts-sdk/example_react/src/vite-env.d.ts b/node_modules/@spotify/web-api-ts-sdk/example_react/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_react/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/node_modules/@spotify/web-api-ts-sdk/example_react/tsconfig.json b/node_modules/@spotify/web-api-ts-sdk/example_react/tsconfig.json new file mode 100644 index 0000000..c81ef9f --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_react/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ESNext", + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/node_modules/@spotify/web-api-ts-sdk/example_react/tsconfig.node.json b/node_modules/@spotify/web-api-ts-sdk/example_react/tsconfig.node.json new file mode 100644 index 0000000..42872c5 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_react/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/node_modules/@spotify/web-api-ts-sdk/example_react/vite.config.ts b/node_modules/@spotify/web-api-ts-sdk/example_react/vite.config.ts new file mode 100644 index 0000000..49fa22e --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/example_react/vite.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + server: { + port: 3000, + strictPort: true, + host: true, + }, +}) diff --git a/node_modules/@spotify/web-api-ts-sdk/package.json b/node_modules/@spotify/web-api-ts-sdk/package.json new file mode 100644 index 0000000..54ae4df --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/package.json @@ -0,0 +1,56 @@ +{ + "name": "@spotify/web-api-ts-sdk", + "version": "1.2.0", + "description": "A typescript SDK for the Spotify Web API", + "main": "dist/cjs/index.js", + "module": "dist/mjs/index.js", + "types": "dist/mjs/index.d.ts", + "scripts": { + "start": "npx vite serve", + "test": "vitest run", + "ci": "npm run build", + "build": "npm run build:cjs && npm run build:mjs", + "build:mjs": "tsc --project tsconfig.mjs.json && cp res/package.mjs.json dist/mjs/package.json", + "build:cjs": "tsc --project tsconfig.cjs.json && cp res/package.cjs.json dist/cjs/package.json", + "build:win": "npm run build:cjs-win && npm run build:mjs-win", + "build:mjs-win": "tsc --project tsconfig.mjs.json && xcopy .\\res\\package.mjs.json .\\dist\\mjs\\package.json /-I /Y", + "build:cjs-win": "tsc --project tsconfig.cjs.json && xcopy .\\res\\package.cjs.json .\\dist\\cjs\\package.json /-I /Y" + }, + "exports": { + "import": "./dist/mjs/index.js", + "require": "./dist/cjs/index.js" + }, + "repository": { + "type": "git", + "url": "https://github.com/spotify/spotify-web-api-ts-sdk" + }, + "author": "Spotify", + "license": "Apache", + "devDependencies": { + "@semantic-release/changelog": "^6.0.3", + "@semantic-release/git": "^10.0.1", + "@types/node": "^20.3.2", + "@types/uuid": "^9.0.2", + "dotenv": "^16.3.1", + "jsdom": "^22.1.0", + "playwright": "^1.35.1", + "semantic-release": "^23.0.0", + "typescript": "^5.1.6", + "uuid": "^9.0.0", + "vite": "^4.3.9", + "vitest": "^0.32.2" + }, + "publishConfig": { + "access": "public" + }, + "keywords": [ + "spotify", + "webapi" + ], + "wallaby": { + "autoDetect": [ + "vitest" + ], + "trace": true + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/res/package.cjs.json b/node_modules/@spotify/web-api-ts-sdk/res/package.cjs.json new file mode 100644 index 0000000..5bbefff --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/res/package.cjs.json @@ -0,0 +1,3 @@ +{ + "type": "commonjs" +} diff --git a/node_modules/@spotify/web-api-ts-sdk/res/package.mjs.json b/node_modules/@spotify/web-api-ts-sdk/res/package.mjs.json new file mode 100644 index 0000000..3dbc1ca --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/res/package.mjs.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/Scopes.ts b/node_modules/@spotify/web-api-ts-sdk/src/Scopes.ts new file mode 100644 index 0000000..0e661c8 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/Scopes.ts @@ -0,0 +1,110 @@ +export class Scopes { + + public static get playlist() { + return [ + ...Scopes.playlistRead, + ...Scopes.playlistModify + ]; + } + + public static get playlistRead() { + return [ + "playlist-read-private", + "playlist-read-collaborative", + ]; + } + + public static get playlistModify() { + return [ + "playlist-modify-public", + "playlist-modify-private", + "ugc-image-upload" + ]; + } + + public static get userDetails() { + return [ + "user-read-private", + "user-read-email", + ]; + } + + public static get userLibrary() { + return [ + ...Scopes.userLibraryRead, + ...Scopes.userLibraryModify + ]; + } + + public static get userLibraryRead() { + return [ + "user-library-read", + ]; + } + + public static get userLibraryModify() { + return [ + "user-library-modify", + ]; + } + + public static get userRecents() { + return [ + "user-top-read", + "user-read-recently-played", + ]; + } + + public static get userFollow() { + return [ + ...Scopes.userFollowRead, + ...Scopes.userFollowModify + ]; + } + + public static get userFollowRead() { + return [ + "user-follow-read", + ]; + } + + public static get userFollowModify() { + return [ + "user-follow-modify", + ]; + } + + public static get userPlayback() { + return [ + ...Scopes.userPlaybackRead, + ...Scopes.userPlaybackModify + ]; + } + + public static get userPlaybackRead() { + return [ + "user-read-playback-position", + "user-read-playback-state", + "user-read-currently-playing", + ]; + } + + public static get userPlaybackModify() { + return [ + "user-modify-playback-state", + "app-remote-control", + "streaming" + ]; + } + + public static get all() { + return [ + ...Scopes.userDetails, + ...Scopes.playlist, + ...Scopes.userLibrary, + ...Scopes.userRecents, + ...Scopes.userFollow, + ...Scopes.userPlayback, + ]; + } +} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/src/SpotifyApi.test.ts b/node_modules/@spotify/web-api-ts-sdk/src/SpotifyApi.test.ts new file mode 100644 index 0000000..6d800c7 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/SpotifyApi.test.ts @@ -0,0 +1,127 @@ +import { beforeEach, describe, expect, it } from "vitest"; +import { SpotifyApi } from "./SpotifyApi"; +import { buildUnitTestSdkInstance } from "./test/SpotifyApiBuilder"; +import { FakeAuthStrategy } from "./test/FakeAuthStrategy"; +import { FetchApiMock } from "./test/FetchApiMock"; +import { validAlbumResult } from "./test/data/validAlbumResult"; +import AuthorizationCodeWithPKCEStrategy from "./auth/AuthorizationCodeWithPKCEStrategy"; +import ClientCredentialsStrategy from "./auth/ClientCredentialsStrategy"; +import ImplicitGrantStrategy from "./auth/ImplicitGrantStrategy"; +import ProvidedAccessTokenStrategy from "./auth/ProvidedAccessTokenStrategy"; +import { AccessToken, SdkOptions } from "./types"; +import InMemoryCachingStrategy from "./caching/InMemoryCachingStrategy"; + +describe("SpotifyAPI Instance", () => { + let sut: SpotifyApi; + let fetchMock: FetchApiMock; + beforeEach(() => { + [sut, fetchMock] = buildUnitTestSdkInstance(); + }); + + describe("uses provided authenticate strategy", () => { + it("makes API requests with API token returned form auth strategy", async () => { + fetchMock.queueResponseBody(200, validAlbumResult()); + + await sut.albums.get("album-id-here"); + + const [headers, bodyString] = fetchMock.issuedRequestHeadersAndBody(0); + expect((headers as any).Authorization).toBe(`Bearer ${FakeAuthStrategy.FAKE_AUTH_TOKEN}`) + }); + }); + + describe("has default handling or error codes", () => { + it("401 errors throw bad or expired token Error", async () => { + fetchMock.queueResponseBody(401, {}); + + await expect(async () => { + await sut.albums.get("album-id-here"); + }).rejects.toThrowError("Bad or expired token"); + }); + + it("403 errors throw oAuth Error", async () => { + fetchMock.queueResponseBody(403, {}); + + await expect(async () => { + await sut.albums.get("album-id-here"); + }).rejects.toThrowError("Bad OAuth request"); + }); + + it("429 errors throw rate limit Error", async () => { + fetchMock.queueResponseBody(429, {}); + + await expect(async () => { + await sut.albums.get("album-id-here"); + }).rejects.toThrowError("The app has exceeded its rate limits."); + }); + + it("204 returns null for no-content responses", async () => { + fetchMock.queueResponseBody(204, null); + + const result = await sut.albums.get("album-id-here"); + + expect(result).toBeNull(); + }); + + it("other Non-200 other response codes throws unrecognised response code error", async () => { + fetchMock.queueResponseBody(123, null); + + await expect(async () => { + await sut.albums.get("album-id-here"); + }).rejects.toThrowError("Unrecognised response code: 123"); + }); + + it("can create an instance with the authorization code strategy configured", async () => { + const sut = SpotifyApi.withUserAuthorization("client-id", "https://localhost:3000", ["scope1", "scope2"]); + expect(sut["authenticationStrategy"].constructor.name).toBe(AuthorizationCodeWithPKCEStrategy.name); + }); + + it("can create an instance with the client credentials strategy configured", async () => { + const sut = SpotifyApi.withClientCredentials("client-id", "secret", ["scope1", "scope2"]); + expect(sut["authenticationStrategy"].constructor.name).toBe(ClientCredentialsStrategy.name); + }); + + it("can create an instance with the implicit grant strategy configured", async () => { + const sut = SpotifyApi.withImplicitGrant("client-id", "secret", ["scope1", "scope2"]); + expect(sut["authenticationStrategy"].constructor.name).toBe(ImplicitGrantStrategy.name); + }); + + it("can create an instance with the provided access token strategy configured", async () => { + const sut = SpotifyApi.withAccessToken("client-id", {} as AccessToken); + expect(sut["authenticationStrategy"].constructor.name).toBe(ProvidedAccessTokenStrategy.name); + }); + + it("when access token provided, it is accurately retrieved taking precedence over any existing cached token.", async () => { + const config: SdkOptions = { cachingStrategy: new InMemoryCachingStrategy() }; + config.cachingStrategy?.setCacheItem("spotify-sdk:ProvidedAccessTokenStrategy:token", { access_token: "some-old-token" }); + + const sut = SpotifyApi.withAccessToken("client-id", { access_token: "some-new-token" } as AccessToken, config); + const token = await sut.getAccessToken(); + + expect(token?.access_token).toBe("some-new-token"); + }); + + }); + + describe("can authenticate and log out", () => { + it("null access token initially", async () => { + const accessToken = await sut.getAccessToken(); + expect(accessToken).toBe(null); + }); + + it("authenticates successfully", async () => { + const response = await sut.authenticate(); + expect(response.accessToken.access_token).toBe(FakeAuthStrategy.FAKE_AUTH_TOKEN); + expect(response.authenticated).toBe(true); + + const accessToken2 = await sut.getAccessToken(); + expect(accessToken2?.access_token).toBe(FakeAuthStrategy.FAKE_AUTH_TOKEN); + }); + + it("null access token after logging out", async () => { + sut.logOut(); + + const accessToken = await sut.getAccessToken(); + expect(accessToken).toBe(null); + }); + }); +}); diff --git a/node_modules/@spotify/web-api-ts-sdk/src/SpotifyApi.ts b/node_modules/@spotify/web-api-ts-sdk/src/SpotifyApi.ts new file mode 100644 index 0000000..cc34386 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/SpotifyApi.ts @@ -0,0 +1,237 @@ +import AlbumsEndpoints from "./endpoints/AlbumsEndpoints.js"; +import ArtistsEndpoints from "./endpoints/ArtistsEndpoints.js"; +import AudiobooksEndpoints from "./endpoints/AudiobooksEndpoints.js"; +import BrowseEndpoints from "./endpoints/BrowseEndpoints.js"; +import ChaptersEndpoints from "./endpoints/ChaptersEndpoints.js"; +import EpisodesEndpoints from "./endpoints/EpisodesEndpoints.js"; +import RecommendationsEndpoints from "./endpoints/RecommendationsEndpoints.js"; +import MarketsEndpoints from "./endpoints/MarketsEndpoints.js"; +import PlayerEndpoints from "./endpoints/PlayerEndpoints.js"; +import PlaylistsEndpoints from "./endpoints/PlaylistsEndpoints.js"; +import SearchEndpoints, { SearchExecutionFunction } from "./endpoints/SearchEndpoints.js"; +import ShowsEndpoints from "./endpoints/ShowsEndpoints.js"; +import TracksEndpoints from "./endpoints/TracksEndpoints.js"; +import IAuthStrategy, { isEmptyAccessToken } from "./auth/IAuthStrategy.js"; +import UsersEndpoints from "./endpoints/UsersEndpoints.js"; +import CurrentUserEndpoints from "./endpoints/CurrentUserEndpoints.js"; +import ClientCredentialsStrategy from "./auth/ClientCredentialsStrategy.js"; +import ImplicitGrantStrategy from "./auth/ImplicitGrantStrategy.js"; +import AuthorizationCodeWithPKCEStrategy from "./auth/AuthorizationCodeWithPKCEStrategy.js"; +import DefaultResponseDeserializer from "./serialization/DefaultResponseDeserializer.js"; +import DefaultResponseValidator from "./responsevalidation/DefaultResponseValidator.js"; +import NoOpErrorHandler from "./errorhandling/NoOpErrorHandler.js"; +import DocumentLocationRedirectionStrategy from "./redirection/DocumentLocationRedirectionStrategy.js"; +import LocalStorageCachingStrategy from "./caching/LocalStorageCachingStrategy.js"; +import InMemoryCachingStrategy from "./caching/InMemoryCachingStrategy.js"; +import ProvidedAccessTokenStrategy from "./auth/ProvidedAccessTokenStrategy.js"; +import type { AccessToken, SdkConfiguration, SdkOptions, AuthenticationResponse } from "./types.js"; + +export class SpotifyApi { + private sdkConfig: SdkConfiguration; + private static rootUrl: string = "https://api.spotify.com/v1/"; + + private authenticationStrategy: IAuthStrategy; + + public albums: AlbumsEndpoints; + public artists: ArtistsEndpoints; + public audiobooks: AudiobooksEndpoints; + public browse: BrowseEndpoints; + public chapters: ChaptersEndpoints; + public episodes: EpisodesEndpoints; + public recommendations: RecommendationsEndpoints; + public markets: MarketsEndpoints; + public player: PlayerEndpoints; + public playlists: PlaylistsEndpoints; + public shows: ShowsEndpoints; + public tracks: TracksEndpoints; + public users: UsersEndpoints; + public search: SearchExecutionFunction; + + public currentUser: CurrentUserEndpoints; + + public constructor(authentication: IAuthStrategy, config?: SdkOptions) { + this.sdkConfig = this.initializeSdk(config); + + this.albums = new AlbumsEndpoints(this); + this.artists = new ArtistsEndpoints(this); + this.audiobooks = new AudiobooksEndpoints(this); + this.browse = new BrowseEndpoints(this); + this.chapters = new ChaptersEndpoints(this); + this.episodes = new EpisodesEndpoints(this); + this.recommendations = new RecommendationsEndpoints(this); + this.markets = new MarketsEndpoints(this); + this.player = new PlayerEndpoints(this); + this.playlists = new PlaylistsEndpoints(this); + this.shows = new ShowsEndpoints(this); + this.tracks = new TracksEndpoints(this); + this.users = new UsersEndpoints(this); + this.currentUser = new CurrentUserEndpoints(this); + + const search = new SearchEndpoints(this); + this.search = search.execute.bind(search); + + this.authenticationStrategy = authentication; + this.authenticationStrategy.setConfiguration(this.sdkConfig); + } + + public async makeRequest(method: "GET" | "POST" | "PUT" | "DELETE", url: string, body: any = undefined, contentType: string | undefined = undefined): Promise { + try { + const accessToken = await this.authenticationStrategy.getOrCreateAccessToken(); + if (isEmptyAccessToken(accessToken)) { + console.warn("No access token found, authenticating now."); + return null as TReturnType; + } + + const token = accessToken?.access_token; + + const fullUrl = SpotifyApi.rootUrl + url; + const opts: RequestInit = { + method: method, + headers: { + Authorization: `Bearer ${token}`, + "Content-Type": contentType ?? "application/json" + }, + body: body ? typeof body === "string" ? body : JSON.stringify(body) : undefined + }; + + this.sdkConfig.beforeRequest(fullUrl, opts); + const result = await this.sdkConfig.fetch(fullUrl, opts); + this.sdkConfig.afterRequest(fullUrl, opts, result); + + if (result.status === 204) { + return null as TReturnType; + } + + await this.sdkConfig.responseValidator.validateResponse(result); + return this.sdkConfig.deserializer.deserialize(result); + } catch (error) { + const handled = await this.sdkConfig.errorHandler.handleErrors(error); + if (!handled) { + throw error; + } + return null as TReturnType; + } + } + + private initializeSdk(config: SdkOptions | undefined): SdkConfiguration { + const isBrowser = typeof window !== 'undefined'; + + const defaultConfig: SdkConfiguration = { + fetch: (req: RequestInfo | URL, init: RequestInit | undefined) => fetch(req, init), + beforeRequest: (_: string, __: RequestInit) => { }, + afterRequest: (_: string, __: RequestInit, ___: Response) => { }, + deserializer: new DefaultResponseDeserializer(), + responseValidator: new DefaultResponseValidator(), + errorHandler: new NoOpErrorHandler(), + redirectionStrategy: new DocumentLocationRedirectionStrategy(), + cachingStrategy: isBrowser + ? new LocalStorageCachingStrategy() + : new InMemoryCachingStrategy() + }; + + return { ...defaultConfig, ...config }; + } + + public switchAuthenticationStrategy(authentication: IAuthStrategy) { + this.authenticationStrategy = authentication; + this.authenticationStrategy.setConfiguration(this.sdkConfig); + this.authenticationStrategy.getOrCreateAccessToken(); // trigger any redirects + } + + /** + * Use this when you're running in a browser and you want to control when first authentication+redirect happens. + */ + public async authenticate(): Promise { + const response = await this.authenticationStrategy.getOrCreateAccessToken(); // trigger any redirects + + return { + authenticated: response.expires! > Date.now() && !isEmptyAccessToken(response), + accessToken: response + }; + } + + /** + * @returns the current access token. null implies the SpotifyApi is not yet authenticated. + */ + public async getAccessToken(): Promise { + return this.authenticationStrategy.getAccessToken(); + } + + /** + * Removes the access token if it exists. + */ + public logOut(): void { + this.authenticationStrategy.removeAccessToken(); + } + + public static withUserAuthorization(clientId: string, redirectUri: string, scopes: string[] = [], config?: SdkOptions): SpotifyApi { + const strategy = new AuthorizationCodeWithPKCEStrategy(clientId, redirectUri, scopes); + return new SpotifyApi(strategy, config); + } + + public static withClientCredentials(clientId: string, clientSecret: string, scopes: string[] = [], config?: SdkOptions): SpotifyApi { + const strategy = new ClientCredentialsStrategy(clientId, clientSecret, scopes); + return new SpotifyApi(strategy, config); + } + + public static withImplicitGrant(clientId: string, redirectUri: string, scopes: string[] = [], config?: SdkOptions): SpotifyApi { + const strategy = new ImplicitGrantStrategy(clientId, redirectUri, scopes); + return new SpotifyApi(strategy, config); + } + + /** + * Use this when you're running in a Node environment, and accepting the access token from a client-side `performUserAuthorization` call. + * You can also use this method if you already have an access token and don't want to use the built-in authentication strategies. + */ + public static withAccessToken(clientId: string, token: AccessToken, config?: SdkOptions): SpotifyApi { + const strategy = new ProvidedAccessTokenStrategy(clientId, token); + return new SpotifyApi(strategy, config); + } + + /** + * Use this when you're running in the browser, and want to perform the user authorization flow to post back to your server with the access token. + * @param clientId Your Spotify client ID + * @param redirectUri The URI to redirect to after the user has authorized your app + * @param scopes The scopes to request + * @param postbackUrl The URL to post the access token to + * @param config Optional configuration + */ + public static async performUserAuthorization(clientId: string, redirectUri: string, scopes: string[], postbackUrl: string, config?: SdkOptions): Promise; + + /** + * Use this when you're running in the browser, and want to perform the user authorization flow to post back to your server with the access token. + * This overload is provided for you to perform the postback yourself, if you want to do something other than a simple HTTP POST to a URL - for example, if you want to use a WebSocket, or provide custom authentication. + * @param clientId Your Spotify client ID + * @param redirectUri The URI to redirect to after the user has authorized your app + * @param scopes The scopes to request + * @param onAuthorization A function to call with the access token where YOU perform the server-side postback + * @param config Optional configuration + */ + public static async performUserAuthorization(clientId: string, redirectUri: string, scopes: string[], onAuthorization: (token: AccessToken) => Promise, config?: SdkOptions): Promise; + + public static async performUserAuthorization(clientId: string, redirectUri: string, scopes: string[], onAuthorizationOrUrl: ((token: AccessToken) => Promise) | string, config?: SdkOptions): Promise { + const strategy = new AuthorizationCodeWithPKCEStrategy(clientId, redirectUri, scopes); + const client = new SpotifyApi(strategy, config); + const accessToken = await client.authenticationStrategy.getOrCreateAccessToken(); + + if (!isEmptyAccessToken(accessToken)) { + if (typeof onAuthorizationOrUrl === "string") { + console.log("Posting access token to postback URL."); + await fetch(onAuthorizationOrUrl, { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify(accessToken) + }); + } else { + await onAuthorizationOrUrl(accessToken); + } + } + + return { + authenticated: accessToken.expires! > Date.now() && !isEmptyAccessToken(accessToken), + accessToken + }; + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/auth/AccessTokenHelpers.ts b/node_modules/@spotify/web-api-ts-sdk/src/auth/AccessTokenHelpers.ts new file mode 100644 index 0000000..7c56942 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/auth/AccessTokenHelpers.ts @@ -0,0 +1,70 @@ +import type { AccessToken, ICachable } from "../types.js"; +import { Crypto } from "./Crypto.js"; + +export default class AccessTokenHelpers { + public static async refreshCachedAccessToken(clientId: string, item: AccessToken) { + const updated = await AccessTokenHelpers.refreshToken(clientId, item.refresh_token); + return AccessTokenHelpers.toCachable(updated); + } + + public static toCachable(item: AccessToken): ICachable & AccessToken { + if (item.expires && item.expires === -1) { + return item; + } + + return { ...item, expires: this.calculateExpiry(item) }; + } + + public static calculateExpiry(item: AccessToken) { + return Date.now() + (item.expires_in * 1000); + } + + private static async refreshToken(clientId: string, refreshToken: string): Promise { + const params = new URLSearchParams(); + params.append("client_id", clientId); + params.append("grant_type", "refresh_token"); + params.append("refresh_token", refreshToken); + + const result = await fetch("https://accounts.spotify.com/api/token", { + method: "POST", + headers: { "Content-Type": "application/x-www-form-urlencoded" }, + body: params + }); + + const text = await result.text(); + + if (!result.ok) { + throw new Error(`Failed to refresh token: ${result.statusText}, ${text}`); + } + + const json: AccessToken = JSON.parse(text); + return json; + } + + public static generateCodeVerifier(length: number) { + let text = ''; + let possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + + for (let i = 0; i < length; i++) { + text += possible.charAt(Math.floor(Math.random() * possible.length)); + } + return text; + } + + public static async generateCodeChallenge(codeVerifier: string) { + const data = new TextEncoder().encode(codeVerifier); + const digest = await Crypto.current.subtle.digest('SHA-256', data); + + const digestBytes = [...new Uint8Array(digest)]; + const hasBuffer = typeof Buffer !== 'undefined'; + + const digestAsBase64 = hasBuffer + ? Buffer.from(digest).toString('base64') + : btoa(String.fromCharCode.apply(null, digestBytes)); + + return digestAsBase64 + .replace(/\+/g, '-') + .replace(/\//g, '_') + .replace(/=+$/, ''); + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/auth/AuthorizationCodeWithPKCEStrategy.ts b/node_modules/@spotify/web-api-ts-sdk/src/auth/AuthorizationCodeWithPKCEStrategy.ts new file mode 100644 index 0000000..0b01558 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/auth/AuthorizationCodeWithPKCEStrategy.ts @@ -0,0 +1,134 @@ +import type { ICachable, SdkConfiguration, AccessToken, ICachingStrategy } from "../types.js"; +import AccessTokenHelpers from "./AccessTokenHelpers.js"; +import IAuthStrategy, { emptyAccessToken } from "./IAuthStrategy.js"; + +interface CachedVerifier extends ICachable { + verifier: string; + expiresOnAccess: boolean; +} + +export default class AuthorizationCodeWithPKCEStrategy implements IAuthStrategy { + + private static readonly cacheKey = "spotify-sdk:AuthorizationCodeWithPKCEStrategy:token"; + private configuration: SdkConfiguration | null = null; + protected get cache(): ICachingStrategy { return this.configuration!.cachingStrategy; } + + constructor( + protected clientId: string, + protected redirectUri: string, + protected scopes: string[] + ) { + } + + public setConfiguration(configuration: SdkConfiguration): void { + this.configuration = configuration; + } + + public async getOrCreateAccessToken(): Promise { + const token = await this.cache.getOrCreate( + AuthorizationCodeWithPKCEStrategy.cacheKey, + async () => { + const token = await this.redirectOrVerifyToken(); + return AccessTokenHelpers.toCachable(token); + }, async (expiring) => { + return AccessTokenHelpers.refreshCachedAccessToken(this.clientId, expiring); + }, + ); + + return token; + } + + public async getAccessToken(): Promise { + const token = await this.cache.get(AuthorizationCodeWithPKCEStrategy.cacheKey); + return token; + } + + public removeAccessToken(): void { + this.cache.remove(AuthorizationCodeWithPKCEStrategy.cacheKey); + } + + private async redirectOrVerifyToken(): Promise { + const hashParams = new URLSearchParams(window.location.search); + const code = hashParams.get("code"); + + if (code) { + const token = await this.verifyAndExchangeCode(code); + this.removeCodeFromUrl(); + return token; + } + + this.redirectToSpotify(); + return emptyAccessToken; // Redirected away at this point, just make TypeScript happy :) + } + + private async redirectToSpotify() { + const verifier = AccessTokenHelpers.generateCodeVerifier(128); + const challenge = await AccessTokenHelpers.generateCodeChallenge(verifier); + + const singleUseVerifier: CachedVerifier = { verifier, expiresOnAccess: true }; + this.cache.setCacheItem("spotify-sdk:verifier", singleUseVerifier); + + const redirectTarget = await this.generateRedirectUrlForUser(this.scopes, challenge); + await this.configuration!.redirectionStrategy.redirect(redirectTarget); + } + + private async verifyAndExchangeCode(code: string) { + const cachedItem = await this.cache.get("spotify-sdk:verifier"); + const verifier = cachedItem?.verifier; + + if (!verifier) { + throw new Error("No verifier found in cache - can't validate query string callback parameters."); + } + + await this.configuration!.redirectionStrategy.onReturnFromRedirect(); + return await this.exchangeCodeForToken(code, verifier!); + } + + private removeCodeFromUrl() { + const url = new URL(window.location.href); + url.searchParams.delete("code"); + + const newUrl = url.search ? url.href : url.href.replace('?', ''); + window.history.replaceState({}, document.title, newUrl); + } + + protected async generateRedirectUrlForUser(scopes: string[], challenge: string) { + const scope = scopes.join(' '); + + const params = new URLSearchParams(); + params.append("client_id", this.clientId); + params.append("response_type", "code"); + params.append("redirect_uri", this.redirectUri); + params.append("scope", scope); + params.append("code_challenge_method", "S256"); + params.append("code_challenge", challenge); + + return `https://accounts.spotify.com/authorize?${params.toString()}`; + } + + protected async exchangeCodeForToken(code: string, verifier: string): Promise { + const params = new URLSearchParams(); + params.append("client_id", this.clientId); + params.append("grant_type", "authorization_code"); + params.append("code", code); + params.append("redirect_uri", this.redirectUri); + params.append("code_verifier", verifier!); + + const result = await fetch("https://accounts.spotify.com/api/token", { + method: "POST", + headers: { "Content-Type": "application/x-www-form-urlencoded" }, + body: params + }); + + const text = await result.text(); + + if (!result.ok) { + throw new Error(`Failed to exchange code for token: ${result.statusText}, ${text}`); + } + + const json: AccessToken = JSON.parse(text); + return json; + } + +} + diff --git a/node_modules/@spotify/web-api-ts-sdk/src/auth/ClientCredentialsStrategy.ts b/node_modules/@spotify/web-api-ts-sdk/src/auth/ClientCredentialsStrategy.ts new file mode 100644 index 0000000..414e049 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/auth/ClientCredentialsStrategy.ts @@ -0,0 +1,77 @@ +import type { SdkConfiguration, ICachingStrategy, AccessToken } from "../types.js"; +import AccessTokenHelpers from "./AccessTokenHelpers.js"; +import IAuthStrategy from "./IAuthStrategy.js"; + +export default class ClientCredentialsStrategy implements IAuthStrategy { + + private static readonly cacheKey = "spotify-sdk:ClientCredentialsStrategy:token"; + private configuration: SdkConfiguration | null = null; + private get cache(): ICachingStrategy { return this.configuration!.cachingStrategy; } + + constructor( + private clientId: string, + private clientSecret: string, + private scopes: string[] = [] + ) { + } + + public setConfiguration(configuration: SdkConfiguration): void { + this.configuration = configuration; + } + + public async getOrCreateAccessToken(): Promise { + const token = await this.cache.getOrCreate( + ClientCredentialsStrategy.cacheKey, + async () => { + const token = await this.getTokenFromApi(); + return AccessTokenHelpers.toCachable(token); + }, + async (_) => { + const refreshed = await this.getTokenFromApi(); + return AccessTokenHelpers.toCachable(refreshed); + } + ); + + return token; + } + + public async getAccessToken(): Promise { + const token = await this.cache.get(ClientCredentialsStrategy.cacheKey); + return token; + } + + public removeAccessToken(): void { + this.cache.remove(ClientCredentialsStrategy.cacheKey); + } + + private async getTokenFromApi(): Promise { + const options = { + grant_type: 'client_credentials', + scope: this.scopes.join(' ') + } as any; + + const bodyAsString = Object.keys(options).map(key => key + '=' + options[key]).join('&'); + const hasBuffer = typeof Buffer !== 'undefined'; + const credentials = `${this.clientId}:${this.clientSecret}`; + + const basicAuth = hasBuffer + ? Buffer.from(credentials).toString('base64') + : btoa(credentials); + + const result = await fetch("https://accounts.spotify.com/api/token", { + method: 'POST', + headers: { + "Content-Type": "application/x-www-form-urlencoded", + "Authorization": `Basic ${basicAuth}` + }, + body: bodyAsString + }); + + if (result.status !== 200) { + throw new Error("Failed to get access token."); + } + + const json = await result.json(); + return json; + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/auth/Crypto.ts b/node_modules/@spotify/web-api-ts-sdk/src/auth/Crypto.ts new file mode 100644 index 0000000..df1a9d3 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/auth/Crypto.ts @@ -0,0 +1,20 @@ +export class Crypto { + public static get current() { + return this.hasSubtleCrypto ? window.crypto : this.tryLoadNodeWebCrypto(); + } + + private static get hasSubtleCrypto() { + return typeof window !== 'undefined' && typeof window.crypto !== 'undefined' && typeof window.crypto.subtle !== 'undefined'; + } + + private static tryLoadNodeWebCrypto() { + try { + // Deliberately avoid bundling for browsers depending + // on node by doing this require during execution. + const { webcrypto } = require('crypto'); + return webcrypto; + } catch (e) { + throw e; + } + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/auth/IAuthStrategy.ts b/node_modules/@spotify/web-api-ts-sdk/src/auth/IAuthStrategy.ts new file mode 100644 index 0000000..f5f24d3 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/auth/IAuthStrategy.ts @@ -0,0 +1,13 @@ +import type { AccessToken, SdkConfiguration } from "../types.js"; + +export const emptyAccessToken: AccessToken = { access_token: "emptyAccessToken", token_type: "", expires_in: 0, refresh_token: "", expires: -1 }; +export function isEmptyAccessToken(value: any): boolean { + return value === emptyAccessToken; +} + +export default interface IAuthStrategy { + setConfiguration(configuration: SdkConfiguration): void; + getOrCreateAccessToken(): Promise; + getAccessToken(): Promise; + removeAccessToken(): void; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/auth/ImplicitGrantStrategy.ts b/node_modules/@spotify/web-api-ts-sdk/src/auth/ImplicitGrantStrategy.ts new file mode 100644 index 0000000..714856a --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/auth/ImplicitGrantStrategy.ts @@ -0,0 +1,73 @@ +import type { SdkConfiguration, AccessToken, ICachingStrategy } from "../types.js"; +import AccessTokenHelpers from "./AccessTokenHelpers.js"; +import IAuthStrategy, { emptyAccessToken } from "./IAuthStrategy.js"; + +export default class ImplicitGrantStrategy implements IAuthStrategy { + + private static readonly cacheKey = "spotify-sdk:ImplicitGrantStrategy:token"; + private configuration: SdkConfiguration | null = null; + private get cache(): ICachingStrategy { return this.configuration!.cachingStrategy; } + + constructor( + private clientId: string, + private redirectUri: string, + private scopes: string[] + ) { + } + + public setConfiguration(configuration: SdkConfiguration): void { + this.configuration = configuration; + } + + public async getOrCreateAccessToken(): Promise { + const token = await this.cache.getOrCreate( + ImplicitGrantStrategy.cacheKey, + async () => { + const token = await this.redirectOrVerifyToken(); + return AccessTokenHelpers.toCachable(token); + }, async (expiring) => { + return AccessTokenHelpers.refreshCachedAccessToken(this.clientId, expiring); + }, + ); + + return token; + } + + public async getAccessToken(): Promise { + const token = await this.cache.get(ImplicitGrantStrategy.cacheKey); + return token; + } + + public removeAccessToken(): void { + this.cache.remove(ImplicitGrantStrategy.cacheKey); + } + + private async redirectOrVerifyToken(): Promise { + const hashParams = new URLSearchParams(window.location.hash.substring(1)); + const accessToken = hashParams.get("access_token"); + + if (accessToken) { + return Promise.resolve({ + access_token: accessToken, + token_type: hashParams.get("token_type") ?? "", + expires_in: parseInt(hashParams.get("expires_in") ?? "0"), + refresh_token: hashParams.get("refresh_token") ?? "", + expires: Number(hashParams.get("expires")) || 0 + }); + } + + const scopes = this.scopes ?? []; + var scope = scopes.join(' '); + + const params = new URLSearchParams(); + params.append("client_id", this.clientId); + params.append("response_type", "token"); + params.append("redirect_uri", this.redirectUri); + params.append("scope", scope); + + const authUrl = 'https://accounts.spotify.com/authorize?' + params.toString(); + + this.configuration!.redirectionStrategy.redirect(authUrl); + return emptyAccessToken; + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/auth/ProvidedAccessTokenStrategy.test.ts b/node_modules/@spotify/web-api-ts-sdk/src/auth/ProvidedAccessTokenStrategy.test.ts new file mode 100644 index 0000000..11b4108 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/auth/ProvidedAccessTokenStrategy.test.ts @@ -0,0 +1,67 @@ +import { describe, expect, it } from "vitest"; +import ProvidedAccessTokenStrategy from "./ProvidedAccessTokenStrategy"; + +describe('ProvidedAccessTokenStrategy', () => { + + it("getAccesToken, no expires property provided, generates one", async () => { + const sut = new ProvidedAccessTokenStrategy("some-client-id", tokenWithoutExpiresProperty()); + const token = await sut.getAccessToken(); + + expect(token!.expires).toBeDefined(); + }); + + it("getAccesToken, no expires property provided, expires property is calculated using expires_in value", async () => { + const now = Date.now(); + const providedToken = tokenWithoutExpiresProperty(); + + const sut = new ProvidedAccessTokenStrategy("some-client-id", providedToken); + const token = await sut.getAccessToken(); + + expect(token!.expires).toBeGreaterThan(now + providedToken.expires_in); + }); + + it("getOrCreateAccessToken, expiry in the future, returns token stored in instance", async () => { + const providedToken = validToken("original", 60 * 1000); + + const sut = new ProvidedAccessTokenStrategy("some-client-id", providedToken); + const token = await sut.getOrCreateAccessToken(); + + expect(token!.access_token).toBe("original"); + }); + + it("getOrCreateAccessToken, expiry in the past, requests refreshed token", async () => { + const refreshedTokenValue = "refreshed"; + const providedToken = expiredAccessToken(); + + const sut = new ProvidedAccessTokenStrategy("some-client-id", providedToken, () => { + return Promise.resolve(validToken(refreshedTokenValue)); + }); + + const token = await sut.getOrCreateAccessToken(); + + expect(token!.access_token).toBe(refreshedTokenValue); + }); +}); + +const validToken = (value: string, expiresIn: number = 1000) => ({ + access_token: value, + token_type: "", + expires_in: expiresIn, + refresh_token: "", + expires: Date.now() + expiresIn +}); + +const tokenWithoutExpiresProperty = (value: string = "") => ({ + access_token: value, + token_type: "", + expires_in: 1000, + refresh_token: "", +}); + +const expiredAccessToken = () => ({ + access_token: "expired", + token_type: "", + expires_in: 0, + refresh_token: "", + expires: Date.now() - 1, +}); \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/src/auth/ProvidedAccessTokenStrategy.ts b/node_modules/@spotify/web-api-ts-sdk/src/auth/ProvidedAccessTokenStrategy.ts new file mode 100644 index 0000000..4dd96ff --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/auth/ProvidedAccessTokenStrategy.ts @@ -0,0 +1,60 @@ +import { AccessToken, SdkConfiguration } from "../types.js"; +import AccessTokenHelpers from "./AccessTokenHelpers.js"; +import IAuthStrategy from "./IAuthStrategy.js"; + +/** + * This strategy is used when you already have an access token and want to use it. + * The authentication strategy will automatically renew the token when it expires. + * Designed to allow a browser-based-app to post the access token to the server and use it from there. + * @constructor + * @param {string} clientId - Spotify application client id. + * @param {string} accessToken - The access token returned from a client side Authorization Code with PKCE flow. + */ +export default class ProvidedAccessTokenStrategy implements IAuthStrategy { + private refreshTokenAction: (clientId: string, token: AccessToken) => Promise; + + constructor( + protected clientId: string, + protected accessToken: AccessToken, + refreshTokenAction?: (clientId: string, token: AccessToken) => Promise + ) { + this.refreshTokenAction = refreshTokenAction || AccessTokenHelpers.refreshCachedAccessToken; + + // If the raw token from the jwt response is provided here + // Calculate an absolute `expiry` value. + // Caveat: If this token isn't fresh, this value will be off. + // It's the responsibility of the calling code to either set a valid + // expires property, or ensure expires_in accounts for any lag between + // issuing and passing here. + + if (!this.accessToken.expires) { + this.accessToken.expires = AccessTokenHelpers.calculateExpiry(this.accessToken); + } + } + + public setConfiguration(_: SdkConfiguration): void { + } + + public async getOrCreateAccessToken(): Promise { + if (this.accessToken.expires && this.accessToken.expires <= Date.now()) { + const refreshed = await this.refreshTokenAction(this.clientId, this.accessToken); + this.accessToken = refreshed; + } + + return this.accessToken; + } + + public async getAccessToken(): Promise { + return this.accessToken; + } + + public removeAccessToken(): void { + this.accessToken = { + access_token: "", + token_type: "", + expires_in: 0, + refresh_token: "", + expires: 0 + }; + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/caching/GenericCache.test.ts b/node_modules/@spotify/web-api-ts-sdk/src/caching/GenericCache.test.ts new file mode 100644 index 0000000..a679d40 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/caching/GenericCache.test.ts @@ -0,0 +1,189 @@ +import { beforeEach, describe, expect, it } from "vitest"; +import GenericCache from "./GenericCache"; +import { ICacheStore } from "./ICacheStore"; + +describe('GenericCache', () => { + + let store: ICacheStore; + let sut: GenericCache; + beforeEach(() => { + store = new TestCacheStore(); + sut = new GenericCache(store); + }); + + it("get item that isn't in the cache, returns null", async () => { + const result = await sut.get<{ test: string }>('test'); + expect(result).toBeNull(); + }); + + it('should set and get a value', async () => { + sut.set('test', { test: "test" }, 1000); + const result = await sut.get<{ test: string }>('test'); + expect(result?.test).toBe('test'); + }); + + it('should remove a value', async () => { + sut.set('test', { test: "test" }, 1000); + sut.remove('test'); + const result = await sut.get<{ test: string }>('test'); + expect(result).toBeNull(); + }); + + it('should return null for expired value', async () => { + sut.set('test', { test: "test" }, 0); + const result = await sut.get<{ test: string }>('test'); + expect(result).toBeNull(); + }); + + it("should return and remove value if expiresOnAccess is true", async () => { + const value = { test: "test", expiresOnAccess: true }; + sut.setCacheItem('test', value); + + const result = await sut.get<{ test: string }>('test'); + expect(result).toEqual(value); + + const result2 = await sut.get<{ test: string }>('test'); + expect(result2).toBeNull(); + }); + + it("should throw an error if the factory func fails to create an object", async () => { + await expect(sut.getOrCreate('test', async () => { + return null as any; + })).rejects.toThrow("Could not create cache item"); + }); + + it("should return the created object if the factory func succeeds", async () => { + const result = await sut.getOrCreate('test', async () => { + return { test: "test" }; + }); + expect(result.test).toBe("test"); + }); + + it("should return existing item if it exists in the cache when getOrCreate is called", async () => { + sut.set('test', { test: "test" }, 1000); + + const result = await sut.getOrCreate('test', async () => { + return { test: "test2" }; + }); + + expect(result.test).toBe("test"); + }); + + it("can renew an item if an update function is provided and it's within two minutes of expiry", async () => { + sut = new GenericCache(store, new Map(), 100); // Auto-renew checks every 100ms + const expiry = Date.now() + (1 * (60 * 1000)); // One minute from now + + await sut.getOrCreate('test', async () => { + return { test: "test", expires: expiry, }; + }, async (item) => { + return { test: "test2", expires: Date.now() + 10 * (60 * 1000) }; + }); + + await wait(500); + + const result = await sut.get<{ test: string }>('test'); + + expect(result!.test).toBe("test2"); + }); + + it("does not renew an item if an update function is provided and it's not yet within two minutes of expiry", async () => { + sut = new GenericCache(store, new Map(), 100); // Auto-renew checks every 100ms + const expiry = Date.now() + (3 * (60 * 1000)); // Three minutes from now + + await sut.getOrCreate('test', async () => { + return { test: "test", expires: expiry, }; + }, async (item) => { + throw new Error("Should not be called"); + }); + + await wait(500); + + const result = await sut.get<{ test: string }>('test'); + + expect(result!.test).toBe("test"); + }); + + it("renewal triggered by get request when auto-renewal disabled and item within refresh window", async () => { + sut = new GenericCache(store, new Map(), -1); // Auto-renewal disabled + const expiry = Date.now() + (1 * (60 * 1000)); // One minute from now + + await sut.getOrCreate('test', async () => { + return { test: "test", expires: expiry, }; + }, async (item) => { + return { test: "test2", expires: Date.now() + 10 * (60 * 1000) }; + }); + + let result = await sut.get<{ test: string }>('test'); + + expect(result!.test).toBe("test2"); + }); + + it("renewal triggered by get request, which errors, when auto-renewal disabled, returns un-renewed item", async () => { + sut = new GenericCache(store, new Map(), -1); // Auto-renewal disabled + const expiry = Date.now() + (1 * (60 * 1000)); // One minute from now + + await sut.getOrCreate('test', async () => { + return { test: "test", expires: expiry, }; + }, async (item) => { + throw new Error("Test error"); + }); + + let result = await sut.get<{ test: string }>('test'); + + expect(result!.test).toBe("test"); + }); + + it("renewal triggered by autorenew, fails gracefully, returns un-renewed item", async () => { + sut = new GenericCache(store, new Map(), 100); // Auto-renew checks every 100ms + const expiry = Date.now() + (1 * (60 * 1000)); // One minute from now + + await sut.getOrCreate('test', async () => { + return { test: "test", expires: expiry, }; + }, async (item) => { + throw new Error("Test error"); + }); + + await wait(500); + + const result = await sut.get<{ test: string }>('test'); + + expect(result!.test).toBe("test"); + }); + + it("renewal triggered for item which has already been explicitly removed, skips renewal attempt", async () => { + sut = new GenericCache(store, new Map(), 10); // Auto-renew checks every 100ms + const expiry = Date.now() + (1 * (60 * 1000)); // One minute from now + + let renewCalled = false; + + await sut.getOrCreate('test', async () => { + return { test: "test", expires: expiry, }; + }, async (item) => { + renewCalled = true; + throw new Error("Should not be called"); + }); + + sut.remove('test'); + + await wait(50); + expect(renewCalled).toBe(false); + }); +}); + +const wait = (ms: number) => new Promise(resolve => setTimeout(resolve, ms)); + +class TestCacheStore implements ICacheStore { + private cache = new Map(); + + public get(key: string): string | null { + return this.cache.get(key) ?? null; + } + + public set(key: string, value: string): void { + this.cache.set(key, value); + } + + public remove(key: string): void { + this.cache.delete(key); + } +} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/src/caching/GenericCache.ts b/node_modules/@spotify/web-api-ts-sdk/src/caching/GenericCache.ts new file mode 100644 index 0000000..5a6d1a0 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/caching/GenericCache.ts @@ -0,0 +1,124 @@ +import { isEmptyAccessToken } from "../auth/IAuthStrategy.js"; +import { ICachingStrategy, ICachable } from "../types.js"; +import { ICacheStore } from "./ICacheStore.js"; + +export default class GenericCache implements ICachingStrategy { + constructor( + private storage: ICacheStore, + private updateFunctions: Map Promise> = new Map(), + private autoRenewInterval: number = 0, + private autoRenewWindow: number = 2 * 60 * 1000 // Two minutes + ) { + if (this.autoRenewInterval > 0) { + setInterval(() => this.autoRenewRenewableItems(), this.autoRenewInterval); + } + } + + public async getOrCreate( + cacheKey: string, + createFunction: () => Promise, + updateFunction?: (item: T) => Promise + ): Promise { + if (updateFunction) { + this.updateFunctions.set(cacheKey, updateFunction); + } + + const item = await this.get(cacheKey); + if (item) { + return item; + } + + const newCacheItem = await createFunction(); + if (!newCacheItem) { + throw new Error("Could not create cache item"); + } + + if (!isEmptyAccessToken(newCacheItem)) { + this.setCacheItem(cacheKey, newCacheItem); + } + + return newCacheItem; + } + + public async get(cacheKey: string): Promise { + let asString = this.storage.get(cacheKey); + let cachedItem: T & ICachable = asString ? JSON.parse(asString) : null; + + if (this.itemDueToExpire(cachedItem) && this.updateFunctions.has(cacheKey)) { + const updateFunction = this.updateFunctions.get(cacheKey); + await this.tryUpdateItem(cacheKey, cachedItem, updateFunction!); + + // Ensure updated item is returned + asString = this.storage.get(cacheKey); + cachedItem = asString ? JSON.parse(asString) : null; + } + + if (!cachedItem) { + return null; + } + + if (cachedItem.expires && (cachedItem.expires === -1 || cachedItem.expires <= Date.now())) { + this.remove(cacheKey); + return null; + } + + if (cachedItem.expiresOnAccess && cachedItem.expiresOnAccess === true) { + this.remove(cacheKey); + return cachedItem; + } + + return cachedItem; + } + + public set(cacheKey: string, value: object, expiresIn: number): void { + const expires = Date.now() + expiresIn; + const cacheItem: ICachable = { ...value, expires }; + this.setCacheItem(cacheKey, cacheItem); + } + + public setCacheItem(cacheKey: string, cacheItem: ICachable): void { + const asString = JSON.stringify(cacheItem); + this.storage.set(cacheKey, asString); + } + + public remove(cacheKey: string): void { + this.storage.remove(cacheKey); + } + + private itemDueToExpire(item: ICachable): boolean { + if (!item) { + return false; + } + + if (!item.expires) { + return false; + } + + return item.expires - Date.now() < (this.autoRenewWindow); + } + + private async autoRenewRenewableItems() { + this.updateFunctions.forEach(async (updateFunction, key) => { + const cachedItem = await this.get(key); + if (!cachedItem) { + return; + } + + if (updateFunction && this.itemDueToExpire(cachedItem)) { + await this.tryUpdateItem(key, cachedItem, updateFunction); + } + }); + } + + private async tryUpdateItem(key: string, cachedItem: ICachable, updateFunction: (item: ICachable) => Promise) { + try { + const updated = await updateFunction(cachedItem); + if (updated) { + this.setCacheItem(key, updated); + } + } catch (e) { + console.error(e); + } + } + +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/caching/ICacheStore.ts b/node_modules/@spotify/web-api-ts-sdk/src/caching/ICacheStore.ts new file mode 100644 index 0000000..198783e --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/caching/ICacheStore.ts @@ -0,0 +1,5 @@ +export interface ICacheStore { + get(key: string): string | null; + set(key: string, value: string): void; + remove(key: string): void; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/caching/InMemoryCachingStrategy.ts b/node_modules/@spotify/web-api-ts-sdk/src/caching/InMemoryCachingStrategy.ts new file mode 100644 index 0000000..48a1961 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/caching/InMemoryCachingStrategy.ts @@ -0,0 +1,24 @@ +import GenericCache from "./GenericCache.js"; +import type { ICacheStore } from "./ICacheStore.js"; + +export default class InMemoryCachingStrategy extends GenericCache { + constructor() { + super(new DictionaryCacheStore()); + } +} + +class DictionaryCacheStore implements ICacheStore { + private cache = new Map(); + + public get(key: string): string | null { + return this.cache.get(key) ?? null; + } + + public set(key: string, value: string): void { + this.cache.set(key, value); + } + + public remove(key: string): void { + this.cache.delete(key); + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/caching/LocalStorageCachingStrategy.ts b/node_modules/@spotify/web-api-ts-sdk/src/caching/LocalStorageCachingStrategy.ts new file mode 100644 index 0000000..86b0e32 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/caching/LocalStorageCachingStrategy.ts @@ -0,0 +1,22 @@ +import GenericCache from "./GenericCache.js"; +import type { ICacheStore } from "./ICacheStore.js"; + +export default class LocalStorageCachingStrategy extends GenericCache { + constructor() { + super(new LocalStorageCacheStore()); + } +} + +class LocalStorageCacheStore implements ICacheStore { + public get(key: string): string | null { + return localStorage.getItem(key); + } + + public set(key: string, value: string): void { + localStorage.setItem(key, value); + } + + public remove(key: string): void { + localStorage.removeItem(key); + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/AlbumsEndpoints.test.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/AlbumsEndpoints.test.ts new file mode 100644 index 0000000..8850d72 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/AlbumsEndpoints.test.ts @@ -0,0 +1,40 @@ +import { beforeEach, describe, expect, it } from "vitest"; +import { buildIntegrationTestSdkInstance } from "../test/SpotifyApiBuilder"; +import { validAlbumTracksResult } from "../test/data/validAlbumTracksResult"; +import { validAlbumResult } from "../test/data/validAlbumResult"; +import { SpotifyApi } from "../SpotifyApi"; +import { FetchApiSpy } from "../test/FetchApiSpy"; + +describe("Integration: Albums Endpoints", () => { + let sut: SpotifyApi; + let fetchSpy: FetchApiSpy; + + beforeEach(() => { + [sut, fetchSpy] = buildIntegrationTestSdkInstance(); + }); + + it("getAlbum can return information for valid album", async () => { + const item = validAlbumResult(); + const result = await sut.albums.get(item.id); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/albums/${item.id}`); + expect(result.name).toBe(item.name); + }); + + it("getAlbums can return multiple items at once", async () => { + const item = validAlbumResult(); + const result = await sut.albums.get([item.id, item.id]); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/albums?ids=${item.id}%2C${item.id}`); + expect(result.length).toBe(2); + expect(result[0].id).toBe(item.id); + expect(result[1].id).toBe(item.id); + }); + + it("getAlbumTracks returns correct tracks for valid album", async () => { + const item = validAlbumResult(); + const result = await sut.albums.tracks(item.id); + + expect(result.items.length).toBe(validAlbumTracksResult().items.length); + }); +}); diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/AlbumsEndpoints.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/AlbumsEndpoints.ts new file mode 100644 index 0000000..79311e5 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/AlbumsEndpoints.ts @@ -0,0 +1,25 @@ +import type { Market, Album, Albums, MaxInt, Page, SimplifiedTrack } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; + +export default class AlbumsEndpoints extends EndpointsBase { + + public async get(id: string, market?: Market): Promise; + public async get(ids: string[], market?: Market): Promise; + public async get(idOrIds: string | string[], market?: Market) { + if (typeof idOrIds === 'string') { + const params = this.paramsFor({ market }); + const album = await this.getRequest(`albums/${idOrIds}${params}`); + return album; + } + + const params = this.paramsFor({ ids: idOrIds, market }); + // TODO: only returns top 20, validate here + const response = await this.getRequest(`albums${params}`); + return response.albums; + } + + public tracks(albumId: string, market?: Market, limit?: MaxInt<50>, offset?: number) { + const params = this.paramsFor({ market, limit, offset }); + return this.getRequest>(`albums/${albumId}/tracks${params}`); + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/ArtistsEndpoint.test.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/ArtistsEndpoint.test.ts new file mode 100644 index 0000000..4a6e3ee --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/ArtistsEndpoint.test.ts @@ -0,0 +1,57 @@ +import { beforeEach, describe, expect, it } from "vitest"; +import { buildIntegrationTestSdkInstance } from "../test/SpotifyApiBuilder"; +import { validArtist } from "../test/data/validArtist"; +import { SpotifyApi } from "../SpotifyApi"; +import { FetchApiSpy } from "../test/FetchApiSpy"; + +describe("Integration: Artists Endpoints", () => { + let sut: SpotifyApi; + let fetchSpy: FetchApiSpy; + + beforeEach(() => { + [sut, fetchSpy] = buildIntegrationTestSdkInstance(); + }); + + it("getArtist can return information", async () => { + const valid = validArtist(); + const result = await sut.artists.get(valid.id); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/artists/${valid.id}`); + expect(result.name).toBe(valid.name); + }); + + it("getArtists can return multiple items", async () => { + const valid = validArtist(); + const result = await sut.artists.get([valid.id, valid.id]); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/artists?ids=${valid.id}%2C${valid.id}`); + expect(result.length).toBe(2); + expect(result[0].name).toBe(valid.name); + expect(result[1].name).toBe(valid.name); + }); + + it("getArtistAlbums can return information", async () => { + const valid = validArtist(); + const result = await sut.artists.albums(valid.id); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/artists/${valid.id}/albums`); + expect(result.items.length).toBeGreaterThan(0); + }); + + it("getArtistTopTracks can return information", async () => { + const valid = validArtist(); + const result = await sut.artists.topTracks(valid.id, "GB"); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/artists/${valid.id}/top-tracks?market=GB`); + expect(result.tracks.length).toBeGreaterThan(0); + }); + + it("getArtistRelatedArtists can return information", async () => { + const valid = validArtist(); + const result = await sut.artists.relatedArtists(valid.id); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/artists/${valid.id}/related-artists`); + expect(result.artists.length).toBeGreaterThan(0); + }); + +}); diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/ArtistsEndpoints.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/ArtistsEndpoints.ts new file mode 100644 index 0000000..f1e95ca --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/ArtistsEndpoints.ts @@ -0,0 +1,58 @@ + +import type { + Artist, + Artists, + Market, + MaxInt, + Page, + SimplifiedAlbum, + TopTracksResult, +} from "../types.js"; +import EndpointsBase from "./EndpointsBase.js"; + +export default class ArtistsEndpoints extends EndpointsBase { + public async get(id: string): Promise; + public async get(ids: string[]): Promise; + public async get(idOrIds: string | string[]) { + if (typeof idOrIds === "string") { + const artist = this.getRequest(`artists/${idOrIds}`); + return artist; + } + + const params = this.paramsFor({ ids: idOrIds }); + const response = await this.getRequest(`artists${params}`); + return response.artists; + } + + public albums( + id: string, + includeGroups?: string, + market?: Market, + limit?: MaxInt<50>, + offset?: number + ) { + const params = this.paramsFor({ + include_groups: includeGroups, + market, + limit, + offset, + }); + return this.getRequest>( + `artists/${id}/albums${params}` + ); + } + + public topTracks(id: string, market: Market) { + // BUG: market is flagged as optional in the docs, but it's actually required for this endpoint + // otherwise you get a 400 + + const params = this.paramsFor({ market }); + return this.getRequest( + `artists/${id}/top-tracks${params}` + ); + } + + public relatedArtists(id: string) { + return this.getRequest(`artists/${id}/related-artists`); + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/AudiobooksEndpoints.test.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/AudiobooksEndpoints.test.ts new file mode 100644 index 0000000..4fe458a --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/AudiobooksEndpoints.test.ts @@ -0,0 +1,43 @@ +import { beforeEach, describe, expect, it } from "vitest"; +import { buildIntegrationTestSdkInstance } from "../test/SpotifyApiBuilder"; +import { validAudioBook } from "../test/data/validAudioBook"; +import { SpotifyApi } from "../SpotifyApi"; +import { FetchApiSpy } from "../test/FetchApiSpy"; +import { validAudiobookChapters } from "../test/data/validAudiobookChapters"; + +describe("Integration: Audiobooks Endpoints", () => { + let sut: SpotifyApi; + let fetchSpy: FetchApiSpy; + + beforeEach(() => { + [sut, fetchSpy] = buildIntegrationTestSdkInstance(); + }); + + it("getAudiobook can return information", async () => { + const item = validAudioBook(); + const result = await sut.audiobooks.get(item.id); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/audiobooks/${item.id}`); + expect(result.id).toBe(item.id); + }); + + it("getAudiobooks can return multiple items at once", async () => { + const item = validAudioBook(); + const result = await sut.audiobooks.get([item.id, item.id]); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/audiobooks?ids=${item.id}%2C${item.id}`); + expect(result.length).toBe(2); + expect(result[0].id).toBe(item.id); + expect(result[1].id).toBe(item.id); + }); + + it("getAudiobookChapters can return information", async () => { + const item = validAudioBook(); + const chapters = validAudiobookChapters(); + + const result = await sut.audiobooks.getAudiobookChapters(item.id); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/audiobooks/${item.id}/chapters`); + expect(result.items.length).toBeGreaterThan(0); + }); +}); diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/AudiobooksEndpoints.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/AudiobooksEndpoints.ts new file mode 100644 index 0000000..ceaa646 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/AudiobooksEndpoints.ts @@ -0,0 +1,23 @@ +import type { Market, Audiobook, Audiobooks, MaxInt, Page, SimplifiedChapter } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; + +export default class AudiobooksEndpoints extends EndpointsBase { + public async get(id: string, market?: Market): Promise; + public async get(ids: string[], market?: Market): Promise; + public async get(idOrIds: string | string[], market?: Market) { + if (typeof idOrIds === 'string') { + const params = this.paramsFor({ market }); + return this.getRequest(`audiobooks/${idOrIds}${params}`); + } + + const params = this.paramsFor({ ids: idOrIds, market }); + const response = await this.getRequest(`audiobooks${params}`); + return response.audiobooks; + } + + public getAudiobookChapters(id: string, market?: Market, limit?: MaxInt<50>, offset?: number) { + const params = this.paramsFor({ market, limit, offset }); + return this.getRequest>(`audiobooks/${id}/chapters${params}`); + } + +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/BrowseEndpoints.test.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/BrowseEndpoints.test.ts new file mode 100644 index 0000000..44aefc8 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/BrowseEndpoints.test.ts @@ -0,0 +1,45 @@ +import { beforeEach, describe, expect, it } from "vitest"; +import { buildIntegrationTestSdkInstance } from "../test/SpotifyApiBuilder"; +import { SpotifyApi } from "../SpotifyApi"; +import { FetchApiSpy } from "../test/FetchApiSpy"; +import { validCategory } from "../test/data/validCategory"; + +describe("Integration: Browse Categories Endpoints", () => { + let sut: SpotifyApi; + let fetchSpy: FetchApiSpy; + + beforeEach(() => { + [sut, fetchSpy] = buildIntegrationTestSdkInstance(); + }); + + it("getCategories can return information", async () => { + const result = await sut.browse.getCategories(); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/browse/categories`); + expect(result.categories.items.length).toBeGreaterThan(0); + }); + + it("getCategory can return information", async () => { + const valid = validCategory(); + + const result = await sut.browse.getCategory(valid.id); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/browse/categories/${valid.id}`); + expect(result).toStrictEqual(valid); + }); + + it("getCategorysPlaylists returns playlists", async () => { + // Seems broken? + + const valid = validCategory(); + const result = await sut.browse.getPlaylistsForCategory(valid.id); + + expect(fetchSpy.lastRequest().input).toBe(`https://api.spotify.com/v1/browse/categories/${valid.id}/playlists`); + expect(result.playlists.items.length).toBeGreaterThan(0); + }); + + it("getNewReleases returns some new releases", async () => { + const result = await sut.browse.getNewReleases(); + expect(result.albums.items.length).toBeGreaterThan(0); + }); +}); \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/BrowseEndpoints.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/BrowseEndpoints.ts new file mode 100644 index 0000000..ef586ba --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/BrowseEndpoints.ts @@ -0,0 +1,32 @@ +import type { CountryCodeA2, MaxInt, Categories, Category, NewReleases, FeaturedPlaylists } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; + +export default class BrowseEndpoints extends EndpointsBase { + + public getCategories(country?: CountryCodeA2, locale?: string, limit?: MaxInt<50>, offset?: number) { + const params = this.paramsFor({ country, locale, limit, offset }); + + return this.getRequest(`browse/categories${params}`); + } + + public getCategory(categoryId: string, country?: CountryCodeA2, locale?: string) { + const params = this.paramsFor({ country, locale }); + + return this.getRequest(`browse/categories/${categoryId}${params}`); + } + + public getNewReleases(country?: string, limit?: MaxInt<50>, offset?: number) { + const params = this.paramsFor({ country, limit, offset }); + return this.getRequest(`browse/new-releases${params}`); + } + + public getFeaturedPlaylists(country?: CountryCodeA2, locale?: string, timestamp?: string, limit?: MaxInt<50>, offset?: number) { + const params = this.paramsFor({ country, locale, timestamp, limit, offset }); + return this.getRequest(`browse/featured-playlists${params}`); + } + + public getPlaylistsForCategory(category_id: string, country?: CountryCodeA2, limit?: MaxInt<50>, offset?: number) { + const params = this.paramsFor({ country, limit, offset }); + return this.getRequest(`browse/categories/${category_id}/playlists${params}`); + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/ChaptersEndpoints.test.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/ChaptersEndpoints.test.ts new file mode 100644 index 0000000..13f57d7 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/ChaptersEndpoints.test.ts @@ -0,0 +1,31 @@ +import { beforeEach, describe, expect, it } from "vitest"; +import { buildIntegrationTestSdkInstance } from "../test/SpotifyApiBuilder"; +import { SpotifyApi } from "../SpotifyApi"; +import { FetchApiSpy } from "../test/FetchApiSpy"; +import { validAudiobookChapterResponse } from "../test/data/validChapterApiResponse"; + +describe("Integration: Chapters Endpoints", () => { + let sut: SpotifyApi; + let fetchSpy: FetchApiSpy; + + beforeEach(() => { + [sut, fetchSpy] = buildIntegrationTestSdkInstance(); + }); + + it("getChapter can return information", async () => { + const valid = validAudiobookChapterResponse(); + const result = await sut.chapters.get(valid.id, "GB"); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/chapters/${valid.id}?market=GB`); + expect(result.id).toBe(valid.id); + }); + + it("getChapters can return multiple items at once", async () => { + const valid = validAudiobookChapterResponse(); + const result = await sut.chapters.get([valid.id, valid.id], "GB"); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/chapters?ids=${valid.id}%2C${valid.id}&market=GB`); + expect(result[0].id).toBe(valid.id); + expect(result[1].id).toBe(valid.id); + }); +}); diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/ChaptersEndpoints.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/ChaptersEndpoints.ts new file mode 100644 index 0000000..80afd92 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/ChaptersEndpoints.ts @@ -0,0 +1,21 @@ +import type { Chapter, Chapters } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; + +// These are mandatory, and the only supported market codes for the Chapters API +export type ChapterMarket = "GB" | "US" | "IE" | "NZ" | "AU"; + +export default class ChaptersEndpoints extends EndpointsBase { + public get(id: string, market: ChapterMarket): Promise; + public get(ids: string[], market: ChapterMarket): Promise; + public async get(idOrIds: string | string[], market: ChapterMarket) { + if (typeof idOrIds === 'string') { + const params = this.paramsFor({ market }); + return this.getRequest(`chapters/${idOrIds}${params}`); + } + + // TODO: Only returns top 50, validate / pre-check here + const params = this.paramsFor({ ids: idOrIds, market }); + const response = await this.getRequest(`chapters${params}`); + return response.chapters; + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/CurrentUserEndpoints.test.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/CurrentUserEndpoints.test.ts new file mode 100644 index 0000000..21b2bc6 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/CurrentUserEndpoints.test.ts @@ -0,0 +1,313 @@ +import fs from "fs"; +import { afterAll, beforeAll, describe, expect, it } from "vitest"; +import { buildIntegrationTestUserSdkInstance } from "../test/SpotifyApiBuilder"; +import { SpotifyApi } from "../SpotifyApi"; +import { FetchApiSpy } from "../test/FetchApiSpy"; +import { validArtist } from "../test/data/validArtist"; +import { validAlbumResult } from "../test/data/validAlbumResult"; +import { validAudioBook } from "../test/data/validAudioBook"; +import { validShow } from "../test/data/validShow"; + +describe("Integration: Users Endpoints (logged in user)", () => { + let sut: SpotifyApi; + let fetchSpy: FetchApiSpy; + + let artistId: string; + let wasArtistFollowed: boolean; + + let albumId: string; + let wasAlbumSaved: boolean; + + let audioBookId: string; + let wasAudioBookSaved: boolean; + + let showId: string; + let wasShowSaved: boolean; + + beforeAll(async () => { + [sut, fetchSpy] = buildIntegrationTestUserSdkInstance(); + + artistId = validArtist().id; + wasArtistFollowed = (await sut.currentUser.followsArtistsOrUsers([artistId], "artist"))[0]; + if (!wasArtistFollowed) { + await sut.currentUser.followArtistsOrUsers([artistId], "artist"); + } + + albumId = validAlbumResult().id; + wasAlbumSaved = (await sut.currentUser.albums.hasSavedAlbums([albumId]))[0]; + if (!wasAlbumSaved) { + await sut.currentUser.albums.saveAlbums([albumId]); + } + + audioBookId = validAudioBook().id; + wasAudioBookSaved = (await sut.currentUser.audiobooks.hasSavedAudiobooks([audioBookId]))[0]; + if (!wasAudioBookSaved) { + await sut.currentUser.audiobooks.saveAudiobooks([audioBookId]); + } + + showId = validShow().id; + wasShowSaved = (await sut.currentUser.shows.hasSavedShow([showId]))[0]; + if (!wasShowSaved) { + await sut.currentUser.shows.saveShows([showId]); + } + }); + + afterAll(async () => { + if (wasArtistFollowed) { + await sut.currentUser.followArtistsOrUsers([artistId], "artist"); + } else { + await sut.currentUser.unfollowArtistsOrUsers([artistId], "artist"); + } + + if (wasAlbumSaved) { + await sut.currentUser.albums.saveAlbums([albumId]); + } else { + await sut.currentUser.albums.removeSavedAlbums([albumId]); + } + + if (wasAudioBookSaved) { + await sut.currentUser.audiobooks.saveAudiobooks([audioBookId]); + } else { + await sut.currentUser.audiobooks.removeSavedAudiobooks([audioBookId]); + } + + if (wasShowSaved) { + await sut.currentUser.shows.saveShows([showId]); + } else { + await sut.currentUser.shows.removeSavedShows([showId]); + } + }); + + it("getCurrentUsersProfile returns a real user", async () => { + const result = await sut.currentUser.profile(); + + expect(fetchSpy.lastRequest().input).toBe("https://api.spotify.com/v1/me"); + expect(result.id.length).toBeGreaterThan(0); + }); + + it("getUsersTopItems returns items for tracks", async () => { + const result = await sut.currentUser.topItems("tracks"); + + expect(fetchSpy.lastRequest().input).toBe("https://api.spotify.com/v1/me/top/tracks"); + expect(result.limit).toBeGreaterThan(0); + }); + + it("getUsersTopItems returns items for artists", async () => { + const result = await sut.currentUser.topItems("artists"); + + expect(fetchSpy.lastRequest().input).toBe("https://api.spotify.com/v1/me/top/artists"); + expect(result.limit).toBeGreaterThan(0); + }); + + it("getUsersTopItems returns items for tracks and time_range", async () => { + const result = await sut.currentUser.topItems("tracks", 'medium_term'); + + expect(fetchSpy.lastRequest().input).toBe("https://api.spotify.com/v1/me/top/tracks?time_range=medium_term"); + expect(result.limit).toBeGreaterThan(0); + }); + + it("getUsersTopItems returns items for artists and time_range", async () => { + const result = await sut.currentUser.topItems("artists", 'short_term'); + + expect(fetchSpy.lastRequest().input).toBe("https://api.spotify.com/v1/me/top/artists?time_range=short_term"); + expect(result.limit).toBeGreaterThan(0); + }); + + it("getFollowedArtists returns artists", async () => { + const result = await sut.currentUser.followedArtists(); + + expect(fetchSpy.lastRequest().input).toBe("https://api.spotify.com/v1/me/following?type=artist"); + expect(result.artists.items.length).toBeGreaterThan(0); + }); + + it("un/followArtistsOrUsersforCurrentUser can add and remove follows for artists", async () => { + await sut.currentUser.followArtistsOrUsers([artistId], "artist"); + expect(fetchSpy.lastRequest().input).toBe("https://api.spotify.com/v1/me/following?type=artist"); + + const result = await sut.currentUser.followedArtists(); + expect(result.artists.items.find((a) => a.id === artistId)).toBeTruthy(); + + await sut.currentUser.unfollowArtistsOrUsers([artistId], "artist"); + expect(fetchSpy.lastRequest().input).toBe("https://api.spotify.com/v1/me/following?type=artist"); + + const result2 = await sut.currentUser.followedArtists(); + expect(result2.artists.items.find((a) => a.id === artistId)).toBeFalsy(); + }); + + it("checkUserFollowsArtistsOrUsers correctly identifies followed artist", async () => { + await sut.currentUser.followArtistsOrUsers([artistId], "artist"); + + const result = await sut.currentUser.followsArtistsOrUsers([artistId], "artist"); + + expect(fetchSpy.lastRequest().input).toBe(`https://api.spotify.com/v1/me/following/contains?ids=${artistId}&type=artist`); + expect(result[0]).toBeTruthy(); + }); + + it("getUsersSavedAlbums returns items", async () => { + const result = await sut.currentUser.albums.savedAlbums(); + + expect(fetchSpy.lastRequest().input).toBe("https://api.spotify.com/v1/me/albums"); + expect(result.items.length).toBeGreaterThan(0); + }); + + it("checkCurrentUsersSavedAlbums returns true for saved known album", async () => { + const result = await sut.currentUser.albums.hasSavedAlbums([albumId]); + + expect(fetchSpy.lastRequest().input).toBe(`https://api.spotify.com/v1/me/albums/contains?ids=${albumId}`); + expect(result[0]).toBe(true); + }); + + it("create and modify playlists for a user works", async () => { + const valid = validAlbumResult(); + const validTrack = valid.tracks.items[0]; + + const me = await sut.currentUser.profile(); + + const result = await sut.playlists.createPlaylist(me.id, { + name: "test playlist name!", + description: "test playlist description!" + }); + + const file = fs.readFileSync("./src/test/valid-image.jpg", { encoding: "base64" }); + + await sut.playlists.addCustomPlaylistCoverImage(result.id, file); + await sut.playlists.addItemsToPlaylist(result.id, [validTrack.uri, validTrack.uri, validTrack.uri, "spotify:track:0ZEigpVOtVunIcimL7dJuh"]); + + const snapshotUpdated = await sut.playlists.movePlaylistItems(result.id, 3, 1, 0); // Move last track to start + + let playlist = await sut.playlists.getPlaylist(result.id); + expect(playlist.tracks.items.length).toBe(4); + expect(playlist.tracks.items[1].track.id).toBe(validTrack.id); + + await sut.playlists.removeItemsFromPlaylist(result.id, { + snapshot_id: snapshotUpdated.snapshot_id, + tracks: [{ uri: validTrack.uri }] + }); + + const playlistWithoutTracks = await sut.playlists.getPlaylist(result.id); + expect(playlistWithoutTracks.tracks.items.length).toBe(1); + + await sut.playlists.changePlaylistDetails(result.id, { + name: "test playlist name 2", + description: "test playlist description 2" + }); + + const playlist2 = await sut.playlists.getPlaylist(result.id); + expect(playlist2.name).toBe("test playlist name 2"); + + await sut.currentUser.playlists.unfollow(result.id); + }); + + it("can set valid image form file (node.js)", async () => { + const me = await sut.currentUser.profile(); + + const result = await sut.playlists.createPlaylist(me.id, { + name: "test playlist name!", + description: "test playlist description!" + }); + + const file = fs.readFileSync("./src/test/valid-image.jpg", { encoding: "base64" }); + + await sut.playlists.addCustomPlaylistCoverImage(result.id, file); + await sut.currentUser.playlists.unfollow(result.id); + }); + + it("getCurrentUsersPlaylists returns playlists", async () => { + const result = await sut.currentUser.playlists.playlists(); + + expect(fetchSpy.lastRequest().input).toBe("https://api.spotify.com/v1/me/playlists"); + expect(result.items.length).toBeGreaterThan(0); + }); + + it("can save and remove album for user", async () => { + await sut.currentUser.albums.saveAlbums([albumId]); + expect(fetchSpy.lastRequest().input).toBe(`https://api.spotify.com/v1/me/albums`); + + const result = await sut.currentUser.albums.savedAlbums(); + expect(result.items.find((a) => a.album.id === albumId)).toBeTruthy(); + + await sut.currentUser.albums.removeSavedAlbums([albumId]); + expect(fetchSpy.lastRequest().input).toBe(`https://api.spotify.com/v1/me/albums`); + + const result2 = await sut.currentUser.albums.savedAlbums(); + expect(result2.items.find((a) => a.album.id === albumId)).toBeFalsy(); + }); + + it("getFeaturedPlaylists returns playlists", async () => { + const result = await sut.browse.getFeaturedPlaylists(); + + expect(fetchSpy.lastRequest().input).toBe("https://api.spotify.com/v1/browse/featured-playlists"); + expect(result.playlists.items.length).toBeGreaterThan(0); + }); + + it("getCategorysPlaylists returns playlists", async () => { + const category_id = "0JQ5DAqbMKFEC4WFtoNRpw"; + const result = await sut.browse.getPlaylistsForCategory(category_id); + + expect(fetchSpy.lastRequest().input).toBe(`https://api.spotify.com/v1/browse/categories/${category_id}/playlists`); + expect(result.playlists.items.length).toBeGreaterThan(0); + }); + + it("getCurrentUsersSavedAudiobooks returns playlists", async () => { + const result = await sut.currentUser.audiobooks.savedAudiobooks(); + + expect(fetchSpy.lastRequest().input).toBe("https://api.spotify.com/v1/me/audiobooks"); + expect(result.items.length).toBeGreaterThan(0); + }); + + it("checkCurrentUsersSavedAudiobooks returns true for saved book", async () => { + const result = await sut.currentUser.audiobooks.hasSavedAudiobooks([audioBookId]); + + expect(fetchSpy.lastRequest().input).toBe(`https://api.spotify.com/v1/me/audiobooks/contains?ids=${audioBookId}`); + expect(result[0]).toBeTruthy(); + }); + + it("can save and remove audiobook for user", async () => { + await sut.currentUser.audiobooks.saveAudiobooks([audioBookId]); + expect(fetchSpy.lastRequest().input).toBe(`https://api.spotify.com/v1/me/audiobooks`); + + const result2 = await sut.currentUser.audiobooks.savedAudiobooks(); + expect(result2.items.find((a) => a.id === audioBookId)).toBeTruthy(); + + await sut.currentUser.audiobooks.removeSavedAudiobooks([audioBookId]); + expect(fetchSpy.lastRequest().input).toBe(`https://api.spotify.com/v1/me/audiobooks`); + + const result3 = await sut.currentUser.audiobooks.savedAudiobooks(); + expect(result3.items.find((a) => a.id === audioBookId)).toBeFalsy(); + }); + + it("savedShows returns shows", async () => { + const result = await sut.currentUser.shows.savedShows(); + + expect(fetchSpy.lastRequest().input).toBe("https://api.spotify.com/v1/me/shows"); + expect(result.items.length).toBeGreaterThan(0); + }); + + it("hasSavedShow returns true for saved show", async () => { + const result = await sut.currentUser.shows.hasSavedShow([showId]); + + expect(fetchSpy.lastRequest().input).toBe(`https://api.spotify.com/v1/me/shows/contains?ids=${showId}`); + expect(result[0]).toBeTruthy(); + }); + + it("hasSavedShow issues correct request for multiple saved shows", async () => { + await sut.currentUser.shows.hasSavedShow([showId, showId]); + + expect(fetchSpy.lastRequest().input).toBe(`https://api.spotify.com/v1/me/shows/contains?ids=${showId}%2C${showId}`); + }); + + it("can save and remove show for user", async () => { + await sut.currentUser.shows.removeSavedShows([showId]); + expect(fetchSpy.lastRequest().input).toBe(`https://api.spotify.com/v1/me/shows?ids=${showId}`); + + const result = await sut.currentUser.shows.savedShows(); + expect(result.items.find((s) => s.show.id === showId)).toBeFalsy(); + + await sut.currentUser.shows.saveShows([showId]); + expect(fetchSpy.lastRequest().input).toBe(`https://api.spotify.com/v1/me/shows?ids=${showId}`); + + const result2 = await sut.currentUser.shows.savedShows(); + expect(result2.items.find((s) => s.show.id === showId)).toBeTruthy(); + }); + +}, { timeout: 20000 }); diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/CurrentUserEndpoints.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/CurrentUserEndpoints.ts new file mode 100644 index 0000000..c3847c3 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/CurrentUserEndpoints.ts @@ -0,0 +1,175 @@ +import { SpotifyApi } from '../SpotifyApi.js'; +import type { User, Page, Artist, Track, MaxInt, FollowedArtists, Market, SavedAlbum, SimplifiedAudiobook, SimplifiedPlaylist, SavedEpisode, SavedShow, SavedTrack, UserProfile } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; + +export default class CurrentUserEndpoints extends EndpointsBase { + public albums: CurrentUserAlbumsEndpoints; + public audiobooks: CurrentUserAudiobooksEndpoints; + public episodes: CurrentUserEpisodesEndpoints; + public playlists: CurrentUserPlaylistsEndpoints; + public shows: CurrentUserShowsEndpoints; + public tracks: CurrentUserTracksEndpoints; + + constructor(api: SpotifyApi) { + super(api); + + this.albums = new CurrentUserAlbumsEndpoints(api); + this.audiobooks = new CurrentUserAudiobooksEndpoints(api); + this.episodes = new CurrentUserEpisodesEndpoints(api); + this.playlists = new CurrentUserPlaylistsEndpoints(api); + this.shows = new CurrentUserShowsEndpoints(api); + this.tracks = new CurrentUserTracksEndpoints(api); + } + + public profile() { + return this.getRequest('me'); + } + + public topItems(type: T, time_range?: 'short_term' | 'medium_term' | 'long_term', limit?: MaxInt<50>, offset?: number) { + const params = this.paramsFor({ time_range, limit, offset }); + return this.getRequest>(`me/top/${type}${params}`); + } + + public followedArtists(after?: string, limit?: MaxInt<50>) { + const params = this.paramsFor({ type: "artist", after, limit }); + return this.getRequest(`me/following${params}`); + } + + public async followArtistsOrUsers(ids: string[], type: 'artist' | 'user') { + const params = this.paramsFor({ type }); + await this.putRequest(`me/following${params}`, { ids }); + } + + public async unfollowArtistsOrUsers(ids: string[], type: 'artist' | 'user') { + const params = this.paramsFor({ type }); + await this.deleteRequest(`me/following${params}`, { ids }); + } + + public followsArtistsOrUsers(ids: string[], type: 'artist' | 'user') { + const params = this.paramsFor({ ids, type }); + return this.getRequest(`me/following/contains${params}`); + } +} + + +class CurrentUserAlbumsEndpoints extends EndpointsBase { + public savedAlbums(limit?: MaxInt<50>, offset?: number, market?: Market) { + const params = this.paramsFor({ limit, offset, market }); + return this.getRequest>(`me/albums${params}`); + } + + public async saveAlbums(ids: string[]) { + await this.putRequest('me/albums', ids); + } + + public async removeSavedAlbums(ids: string[]) { + await this.deleteRequest('me/albums', ids); + } + + public hasSavedAlbums(ids: string[]) { + const params = this.paramsFor({ ids }); + return this.getRequest(`me/albums/contains${params}`); + } +} + +class CurrentUserAudiobooksEndpoints extends EndpointsBase { + public savedAudiobooks(limit?: MaxInt<50>, offset?: number) { + const params = this.paramsFor({ limit, offset }); + return this.getRequest>(`me/audiobooks${params}`); + } + + public async saveAudiobooks(ids: string[]) { + await this.putRequest('me/audiobooks', ids); + } + + public async removeSavedAudiobooks(ids: string[]) { + await this.deleteRequest('me/audiobooks', ids); + } + + public hasSavedAudiobooks(ids: string[]) { + const params = this.paramsFor({ ids }); + return this.getRequest(`me/audiobooks/contains${params}`); + } +} + +class CurrentUserEpisodesEndpoints extends EndpointsBase { + public savedEpisodes(market?: Market, limit?: MaxInt<50>, offset?: number) { + const params = this.paramsFor({ market, limit, offset }); + return this.getRequest>(`me/episodes${params}`); + } + + public async saveEpisodes(ids: string[]) { + await this.putRequest(`me/episodes`, ids) + } + + public async removeSavedEpisodes(ids: string[]) { + await this.deleteRequest(`me/episodes`, ids) + } + + public hasSavedEpisodes(ids: string[]) { + const params = this.paramsFor({ ids }); + return this.getRequest(`me/episodes/contains${params}`); + } +} + +class CurrentUserPlaylistsEndpoints extends EndpointsBase { + public playlists(limit?: MaxInt<50>, offset?: number) { + const params = this.paramsFor({ limit, offset }); + return this.getRequest>(`me/playlists${params}`); + } + + public async follow(playlist_id: string) { + await this.putRequest(`playlists/${playlist_id}/followers`); + } + + public async unfollow(playlist_id: string) { + await this.deleteRequest(`playlists/${playlist_id}/followers`); + } + + public isFollowing(playlistId: string, ids: string[]) { + const params = this.paramsFor({ ids }); + return this.getRequest(`playlists/${playlistId}/followers/contains${params}`) + } +} + +class CurrentUserShowsEndpoints extends EndpointsBase { + public savedShows(limit?: MaxInt<50>, offset?: number) { + const params = this.paramsFor({ limit, offset }) + return this.getRequest>(`me/shows${params}`); + } + + public saveShows(ids: string[]) { + const params = this.paramsFor({ ids }); + return this.putRequest(`me/shows${params}`); + } + + public removeSavedShows(ids: string[], market?: Market) { + const params = this.paramsFor({ ids, market }); + return this.deleteRequest(`me/shows${params}`); + } + + public hasSavedShow(ids: string[]) { + const params = this.paramsFor({ ids }); + return this.getRequest(`me/shows/contains${params}`); + } +} + +class CurrentUserTracksEndpoints extends EndpointsBase { + public savedTracks(limit?: MaxInt<50>, offset?: number, market?: Market) { + const params = this.paramsFor({ limit, offset, market }); + return this.getRequest>(`me/tracks${params}`); + } + public async saveTracks(ids: string[]) { + await this.putRequest('me/tracks', ids); + } + + public async removeSavedTracks(ids: string[]) { + await this.deleteRequest('me/tracks', ids); + } + + public hasSavedTracks(ids: string[]) { + const params = this.paramsFor({ ids }); + return this.getRequest(`me/tracks/contains${params}`); + } +} + diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/EndpointsBase.test.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/EndpointsBase.test.ts new file mode 100644 index 0000000..7fbbe29 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/EndpointsBase.test.ts @@ -0,0 +1,79 @@ +import { beforeEach, describe, expect, it } from "vitest"; +import { buildIntegrationTestUserSdkInstance } from "../test/SpotifyApiBuilder"; +import EndpointsBase from "./EndpointsBase"; +import { FetchApiSpy } from "../test/FetchApiSpy"; +import { SpotifyApi } from "../SpotifyApi"; + +describe("EndpointsBase", async () => { + + let api: SpotifyApi; + let sut: FakeEndPoints; + let fetchSpy: FetchApiSpy; + + beforeEach(() => { + [api, fetchSpy] = buildIntegrationTestUserSdkInstance(); + sut = new FakeEndPoints(api); + }); + + it("paramsFor omits undefined", () => { + const result = sut.functionThatPassesUndefined(); + expect(result).toBe(""); + }); + + it("paramsFor omits null", () => { + const result = sut.functionThatPassesNull(); + expect(result).toBe(""); + }); + + it("paramsFor can correctly url encode a string", () => { + const result = sut.functionWithStringParam("one"); + expect(result).toBe("?id=one"); + }); + + it("paramsFor can correctly url encode an array", () => { + const result = sut.functionWithStringArrayParam(["one", "two"]); + expect(result).toBe("?ids=one%2Ctwo"); + }); + + it("paramsFor can correctly url encode a false boolean", () => { + const result = sut.functionWithBooleanParam(false); + expect(result).toBe("?id=false"); + }); + + it("paramsFor can correctly url encode a 0", () => { + const result = sut.functionWitNumericParam(0); + expect(result).toBe("?id=0"); + }); + + it("paramsFor can correctly url encode a non-zero number", () => { + const result = sut.functionWitNumericParam(1); + expect(result).toBe("?id=1"); + }); +}); + + +class FakeEndPoints extends EndpointsBase { + public functionThatPassesUndefined() { + return this.paramsFor({ id: undefined }); + } + + public functionThatPassesNull() { + return this.paramsFor({ id: null }); + } + + public functionWithStringParam(id: string) { + return this.paramsFor({ id }); + } + + public functionWithStringArrayParam(ids: string[]) { + return this.paramsFor({ ids }); + } + + public functionWithBooleanParam(id: boolean) { + return this.paramsFor({ id }); + } + + public functionWitNumericParam(id: number) { + return this.paramsFor({ id }); + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/EndpointsBase.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/EndpointsBase.ts new file mode 100644 index 0000000..588270c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/EndpointsBase.ts @@ -0,0 +1,33 @@ +import { SpotifyApi } from "../SpotifyApi.js"; + +export default class EndpointsBase { + constructor(protected api: SpotifyApi) { + } + + protected async getRequest(url: string): Promise { + return await this.api.makeRequest("GET", url); + } + + protected async postRequest(url: string, body?: TBody, contentType: string | undefined = undefined): Promise { + return await this.api.makeRequest("POST", url, body, contentType); + } + + protected async putRequest(url: string, body?: TBody, contentType: string | undefined = undefined): Promise { + return await this.api.makeRequest("PUT", url, body, contentType); + } + + protected async deleteRequest(url: string, body?: TBody): Promise { + return await this.api.makeRequest("DELETE", url, body); + } + + protected paramsFor(args: any) { + const params = new URLSearchParams(); + for (let key of Object.getOwnPropertyNames(args)) { + if (args[key] || (args[key] === 0) || (!args[key] && typeof args[key] === 'boolean')) { + params.append(key, args[key].toString()); + } + } + return [...params].length > 0 ? `?${params.toString()}` : ""; + } +} + diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/EpisodesEndpoints.test.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/EpisodesEndpoints.test.ts new file mode 100644 index 0000000..eef4969 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/EpisodesEndpoints.test.ts @@ -0,0 +1,37 @@ +import { beforeEach, describe, expect, it } from "vitest"; +import { buildIntegrationTestSdkInstance } from "../test/SpotifyApiBuilder"; +import { SpotifyApi } from "../SpotifyApi"; +import { FetchApiSpy } from "../test/FetchApiSpy"; +import { validEpisode } from "../test/data/validEpisode"; + +describe("Integration: Episodes Endpoints", () => { + let sut: SpotifyApi; + let fetchSpy: FetchApiSpy; + + beforeEach(() => { + [sut, fetchSpy] = buildIntegrationTestSdkInstance(); + }); + + it("getEpisode can return information", async () => { + const valid = validEpisode(); + const result = await sut.episodes.get(valid.id, "GB"); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/episodes/${valid.id}?market=GB`); + + // replace inconsistent properties + if (result.show) { + result.show.total_episodes = valid.show.total_episodes; + } + + expect(result).toStrictEqual(valid); + }); + + it("getEpisodes can return multiple items at once", async () => { + const valid = validEpisode(); + const result = await sut.episodes.get([valid.id, valid.id], "GB"); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/episodes?ids=${valid.id}%2C${valid.id}&market=GB`); + expect(result[0].id).toBe(valid.id); + expect(result[1].id).toBe(valid.id); + }); +}); diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/EpisodesEndpoints.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/EpisodesEndpoints.ts new file mode 100644 index 0000000..c002e87 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/EpisodesEndpoints.ts @@ -0,0 +1,18 @@ +import type { Market, Episode, Episodes } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; + +export default class EpisodesEndpoints extends EndpointsBase { + + public get(id: string, market: Market): Promise + public get(ids: string[], market: Market): Promise + public async get(idOrIds: string | string[], market: Market) { + if (typeof idOrIds === 'string') { + const params = this.paramsFor({ market }); + return this.getRequest(`episodes/${idOrIds}${params}`); + } + + const params = this.paramsFor({ ids: idOrIds, market }); + const response = await this.getRequest(`episodes${params}`); + return response.episodes; + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/MarketsEndpoints.test.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/MarketsEndpoints.test.ts new file mode 100644 index 0000000..1137913 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/MarketsEndpoints.test.ts @@ -0,0 +1,22 @@ +import { beforeEach, describe, expect, it } from "vitest"; +import { buildIntegrationTestSdkInstance } from "../test/SpotifyApiBuilder"; +import { SpotifyApi } from "../SpotifyApi"; +import { FetchApiSpy } from "../test/FetchApiSpy"; +import { validMarkets } from "../test/data/validMarkets"; + +describe("Integration: Episodes Endpoints", () => { + let sut: SpotifyApi; + let fetchSpy: FetchApiSpy; + + beforeEach(() => { + [sut, fetchSpy] = buildIntegrationTestSdkInstance(); + }); + + it("getAvailableMarkets can return information", async () => { + const valid = validMarkets(); + const result = await sut.markets.getAvailableMarkets(); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/markets`); + expect(result).toStrictEqual(valid); + }); +}); \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/MarketsEndpoints.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/MarketsEndpoints.ts new file mode 100644 index 0000000..c5e2fc1 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/MarketsEndpoints.ts @@ -0,0 +1,8 @@ +import type { Markets } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; + +export default class MarketsEndpoints extends EndpointsBase { + public getAvailableMarkets() { + return this.getRequest('markets'); + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/PlayerEndpoints.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/PlayerEndpoints.ts new file mode 100644 index 0000000..c468acc --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/PlayerEndpoints.ts @@ -0,0 +1,95 @@ +import type { Devices, Market, MaxInt, PlaybackState, Queue, RecentlyPlayedTracksPage } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; + +interface QueryRange { + timestamp: number; + type: "before" | "after" +} + +export default class PlayerEndpoints extends EndpointsBase { + + public getPlaybackState(market?: Market, additional_types?: string) { + const params = this.paramsFor({ market, additional_types }); + return this.getRequest(`me/player${params}`); + } + + public getAvailableDevices() { + return this.getRequest('me/player/devices'); + } + + public getCurrentlyPlayingTrack(market?: Market, additional_types?: string) { + const params = this.paramsFor({ market, additional_types }); + return this.getRequest(`me/player/currently-playing${params}`); + } + + public getRecentlyPlayedTracks(limit?: MaxInt<50>, queryRange?: QueryRange) { + const paramObj: any = { limit }; + + if (queryRange) { + if (queryRange.type === "before") { + paramObj.before = queryRange.timestamp + } else if (queryRange.type === "after") { + paramObj.after = queryRange.timestamp + } + } + + const params = this.paramsFor(paramObj); + return this.getRequest(`me/player/recently-played${params}`); + } + + public getUsersQueue() { + return this.getRequest('me/player/queue'); + } + + public async transferPlayback(device_ids: string[], play?: boolean) { + if (device_ids.length > 1) { + throw new Error("Although an array is accepted, only a single device_id is currently supported. Supplying more than one will return 400 Bad Request"); + } + await this.putRequest('me/player', { device_ids, play }); + } + + public async startResumePlayback(device_id: string, context_uri?: string, uris?: string[], offset?: object, positionMs?: number) { + const params = this.paramsFor({ device_id }); + await this.putRequest(`me/player/play${params}`, { context_uri, uris, offset, positionMs }); + } + + public async pausePlayback(device_id: string) { + const params = this.paramsFor({ device_id }); + await this.putRequest(`me/player/pause${params}`); + } + + public async skipToNext(device_id: string) { + const params = this.paramsFor({ device_id }); + await this.postRequest(`me/player/next${params}`); + } + + public async skipToPrevious(device_id: string) { + const params = this.paramsFor({ device_id }); + await this.postRequest(`me/player/previous${params}`); + } + + public async seekToPosition(position_ms: number, device_id?: string) { + const params = this.paramsFor({ position_ms, device_id }); + await this.putRequest(`me/player/seek${params}`); + } + + public async setRepeatMode(state: 'track' | 'context' | 'off', device_id?: string) { + const params = this.paramsFor({ state, device_id }); + await this.putRequest(`me/player/repeat${params}`); + } + + public async setPlaybackVolume(volume_percent: number, device_id?: string) { + const params = this.paramsFor({ volume_percent, device_id }); + await this.putRequest(`me/player/volume${params}`); + } + + public async togglePlaybackShuffle(state: boolean, device_id?: string) { + const params = this.paramsFor({ state, device_id }); + await this.putRequest(`me/player/shuffle${params}`); + } + + public async addItemToPlaybackQueue(uri: string, device_id?: string) { + const params = this.paramsFor({ uri, device_id }); + await this.postRequest(`me/player/queue${params}`); + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/PlaylistsEndpoints.test.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/PlaylistsEndpoints.test.ts new file mode 100644 index 0000000..b97a948 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/PlaylistsEndpoints.test.ts @@ -0,0 +1,63 @@ +import { beforeEach, describe, expect, it } from "vitest"; +import { buildIntegrationTestSdkInstance } from "../test/SpotifyApiBuilder"; +import { SpotifyApi } from "../SpotifyApi"; +import { FetchApiSpy } from "../test/FetchApiSpy"; +import { validPlaylist } from "../test/data/validPlaylist"; +import { validUser } from "../test/data/validUser"; + +describe("Integration: Playlists Endpoints", () => { + let sut: SpotifyApi; + let fetchSpy: FetchApiSpy; + + beforeEach(() => { + [sut, fetchSpy] = buildIntegrationTestSdkInstance(); + }); + + it("getPlaylist can return information", async () => { + const valid = validPlaylist(); + const result = await sut.playlists.getPlaylist(valid.id); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/playlists/${valid.id}`); + expect(result.tracks.items.length).toBeGreaterThan(0); + }); + + it("getPlaylist can return information with additional_types", async () => { + const valid = validPlaylist(); + const result = await sut.playlists.getPlaylist(valid.id, undefined, undefined, ['episode']); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/playlists/${valid.id}?additional_types=episode`); + expect(result.tracks.items.length).toBeGreaterThan(0); + }); + + it("getPlaylistItems can return information", async () => { + const valid = validPlaylist(); + const result = await sut.playlists.getPlaylistItems(valid.id); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/playlists/${valid.id}/tracks`); + expect(result.items.length).toBeGreaterThan(0); + }); + + it("getPlaylistItems can return information with additional_types", async () => { + const valid = validPlaylist(); + const result = await sut.playlists.getPlaylistItems(valid.id, undefined, undefined, 1, 0, ['episode']); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/playlists/${valid.id}/tracks?additional_types=episode`); + expect(result.items.length).toBeGreaterThan(0); + }); + + it("getUsersPlaylists can return information", async () => { + const valid = validUser(); + const result = await sut.playlists.getUsersPlaylists(valid.id); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/users/${valid.id}/playlists`); + expect(result.items.length).toBeGreaterThan(0); + }); + + it("getPlaylistCoverImage returns image info", async () => { + const playlistId = "37i9dQZF1DWXIcbzpLauPS"; + const result = await sut.playlists.getPlaylistCoverImage(playlistId); + + expect(fetchSpy.lastRequest().input).toBe(`https://api.spotify.com/v1/playlists/${playlistId}/images`); + expect(result[0].url.length).toBeGreaterThan(0); + }); +}); diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/PlaylistsEndpoints.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/PlaylistsEndpoints.ts new file mode 100644 index 0000000..1698656 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/PlaylistsEndpoints.ts @@ -0,0 +1,116 @@ +import type { Market, Playlist, MaxInt, Page, Track, SnapshotReference, Image, PlaylistedTrack, QueryAdditionalTypes, TrackItem } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; + +export default class PlaylistsEndpoints extends EndpointsBase { + + public getPlaylist( + playlist_id: string, market?: Market, fields?: string, additional_types?: AdditionalTypes + ) { + // TODO: better support for fields + const params = this.paramsFor({ market, fields, additional_types: additional_types?.join(',') }); + return this.getRequest>(`playlists/${playlist_id}${params}`); + } + + public getPlaylistItems( + playlist_id: string, market?: Market, fields?: string, limit?: MaxInt<50>, offset?: number, additional_types?: AdditionalTypes + ) { + // TODO: better support for fields + const params = this.paramsFor({ market, fields, limit, offset, additional_types: additional_types?.join(',') }); + return this.getRequest>>(`playlists/${playlist_id}/tracks${params}`); + } + + public async changePlaylistDetails(playlist_id: string, request: ChangePlaylistDetailsRequest) { + await this.putRequest(`playlists/${playlist_id}`, request); + } + + public movePlaylistItems(playlist_id: string, range_start: number, range_length: number, moveToPosition: number) { + return this.updatePlaylistItems(playlist_id, { + range_start, + range_length, + insert_before: moveToPosition + }); + } + + public updatePlaylistItems(playlist_id: string, request: UpdatePlaylistItemsRequest) { + return this.putRequest(`playlists/${playlist_id}/tracks`, request); + } + + public async addItemsToPlaylist(playlist_id: string, uris?: string[], position?: number) { + await this.postRequest(`playlists/${playlist_id}/tracks`, { position, uris: uris }); + } + + public async removeItemsFromPlaylist(playlist_id: string, request: RemovePlaylistItemsRequest) { + await this.deleteRequest(`playlists/${playlist_id}/tracks`, request); + } + + public getUsersPlaylists(user_id: string, limit?: MaxInt<50>, offset?: number) { + const params = this.paramsFor({ limit, offset }); + return this.getRequest>(`users/${user_id}/playlists${params}`); + } + + public createPlaylist(user_id: string, request: CreatePlaylistRequest) { + return this.postRequest(`users/${user_id}/playlists`, request); + } + + public getPlaylistCoverImage(playlist_id: string) { + return this.getRequest(`playlists/${playlist_id}/images`); + } + + public async addCustomPlaylistCoverImage(playlist_id: string, imageData: Buffer | HTMLImageElement | HTMLCanvasElement | string) { + let base64EncodedJpeg: string = ""; + + if (imageData instanceof Buffer) { + base64EncodedJpeg = imageData.toString("base64"); + } else if (imageData instanceof HTMLCanvasElement) { + base64EncodedJpeg = imageData.toDataURL("image/jpeg").split(';base64,')[1]; + } else if (imageData instanceof HTMLImageElement) { + const canvas = document.createElement("canvas"); + canvas.width = imageData.width; + canvas.height = imageData.height; + const ctx = canvas.getContext("2d"); + if (!ctx) { + throw new Error("Could not get canvas context"); + } + ctx.drawImage(imageData, 0, 0); + base64EncodedJpeg = canvas.toDataURL("image/jpeg").split(';base64,')[1]; + } else if (typeof imageData === "string") { + base64EncodedJpeg = imageData; + } else { + throw new Error("ImageData must be a Buffer, HTMLImageElement, HTMLCanvasElement, or string containing a base64 encoded jpeg"); + } + + await this.addCustomPlaylistCoverImageFromBase64String(playlist_id, base64EncodedJpeg); + } + + public async addCustomPlaylistCoverImageFromBase64String(playlist_id: string, base64EncodedJpeg: string) { + await this.putRequest(`playlists/${playlist_id}/images`, base64EncodedJpeg, "image/jpeg"); + } +} + +interface RemovePlaylistItemsRequest { + tracks: Array<{ uri: string }>; + snapshot_id?: string; +} + +interface UpdatePlaylistItemsRequest { + uris?: string[]; + range_start?: number; + insert_before?: number; + range_length?: number; + snapshot_id?: string; +} + +interface ChangePlaylistDetailsRequest { + name?: string; + public?: boolean; + collaborative?: boolean; + description?: string; +} + +// TODO: deduplicate this from above +interface CreatePlaylistRequest { + name: string; + public?: boolean; + collaborative?: boolean; + description?: string; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/RecommendationsEndpoints.test.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/RecommendationsEndpoints.test.ts new file mode 100644 index 0000000..bdc2a17 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/RecommendationsEndpoints.test.ts @@ -0,0 +1,32 @@ +import { beforeEach, describe, expect, it } from "vitest"; +import { buildIntegrationTestSdkInstance } from "../test/SpotifyApiBuilder"; +import { SpotifyApi } from "../SpotifyApi"; +import { FetchApiSpy } from "../test/FetchApiSpy"; +import { validGenres } from "../test/data/validGenres"; + +describe("Integration: Episodes Endpoints", () => { + let sut: SpotifyApi; + let fetchSpy: FetchApiSpy; + + beforeEach(() => { + [sut, fetchSpy] = buildIntegrationTestSdkInstance(); + }); + + it("getGenres can return information", async () => { + const valid = validGenres(); + const result = await sut.recommendations.genreSeeds(); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/recommendations/available-genre-seeds`); + expect(result).toStrictEqual(valid); + }); + + it("get can return recommendations", async () => { + const result = await sut.recommendations.get({ + seed_artists: ["0oSGxfWSnnOXhD2fKuz2Gy"], + seed_genres: ["rock"], + seed_tracks: ["0c6xIDDpzE81m2q797ordA"] + }); + + expect(result.tracks.length).toBeGreaterThan(0); + }) +}); diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/RecommendationsEndpoints.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/RecommendationsEndpoints.ts new file mode 100644 index 0000000..3ee1d87 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/RecommendationsEndpoints.ts @@ -0,0 +1,81 @@ +import type { Genres, Track } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; + +export default class RecommendationsEndpoints extends EndpointsBase { + public get(request: RecommendationsRequestRequiredArguments | RecommendationsRequest) { + const params = this.paramsFor(request); + return this.getRequest(`recommendations${params}`); + } + + public genreSeeds() { + return this.getRequest('recommendations/available-genre-seeds'); + } +} + +export interface RecommendationsRequestRequiredArguments { + seed_artists?: string[]; + seed_genres?: string[]; + seed_tracks?: string[]; +} + +export interface RecommendationsRequest extends RecommendationsRequestRequiredArguments { + limit?: number; + market?: string; + min_acousticness?: number; + max_acousticness?: number; + target_acousticness?: number; + min_danceability?: number; + max_danceability?: number; + target_danceability?: number; + min_duration_ms?: number; + max_duration_ms?: number; + target_duration_ms?: number; + min_energy?: number; + max_energy?: number; + target_energy?: number; + min_instrumentalness?: number; + max_instrumentalness?: number; + target_instrumentalness?: number; + min_key?: number; + max_key?: number; + target_key?: number; + min_liveness?: number; + max_liveness?: number; + target_liveness?: number; + min_loudness?: number; + max_loudness?: number; + target_loudness?: number; + min_mode?: number; + max_mode?: number; + target_mode?: number; + min_popularity?: number; + max_popularity?: number; + target_popularity?: number; + min_speechiness?: number; + max_speechiness?: number; + target_speechiness?: number; + min_tempo?: number; + max_tempo?: number; + target_tempo?: number; + min_time_signature?: number; + max_time_signature?: number; + target_time_signature?: number; + min_valence?: number; + max_valence?: number; + target_valence?: number; +} + +export interface RecommendationsResponse { + seeds: RecommendationSeed[]; + tracks: Track[]; +} + +export interface RecommendationSeed { + id: string; + href: string; + type: string; + + initialPoolSize: number; + afterFilteringSize: number; + afterRelinkingSize: number; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/SearchEndpoints.test.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/SearchEndpoints.test.ts new file mode 100644 index 0000000..55c25f9 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/SearchEndpoints.test.ts @@ -0,0 +1,39 @@ +import { beforeEach, describe, expect, expectTypeOf, it } from "vitest"; +import { buildIntegrationTestSdkInstance } from "../test/SpotifyApiBuilder"; +import { SpotifyApi } from "../SpotifyApi"; +import { FetchApiSpy } from "../test/FetchApiSpy"; +import { Artist, ItemTypes, Page } from "../types"; + +describe("Integration: Search Endpoints", () => { + let sut: SpotifyApi; + let fetchSpy: FetchApiSpy; + + beforeEach(() => { + [sut, fetchSpy] = buildIntegrationTestSdkInstance(); + }); + + it("getTrack can return information", async () => { + const q = "Katatonia" + const result = await sut.search(q, ["artist"]); + + const allMentionedArtists = result.artists.items.map(artist => artist.name); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/search?q=${q}&type=artist`); + expect(allMentionedArtists).toContain("Katatonia"); + }); + + it("result type should mark properties as optional if they can\'t be determined", async () => { + const q = "Katatonia" + const types: ItemTypes[] = ["artist"] + const result = await sut.search(q, types); + + expectTypeOf(result).toMatchTypeOf<{ artists?: Page }> + }) + + it("result type should assert property as present if types are passed as a tuple", async () => { + const q = "Katatonia" + const result = await sut.search(q, ['artist']); + + expectTypeOf(result).toEqualTypeOf<{ artists: Page }> + }) +}); \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/SearchEndpoints.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/SearchEndpoints.ts new file mode 100644 index 0000000..c6d08d2 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/SearchEndpoints.ts @@ -0,0 +1,13 @@ +import type { ItemTypes, Market, MaxInt, SearchResults } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; + +export interface SearchExecutionFunction { + (q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise>; +} + +export default class SearchEndpoints extends EndpointsBase { + public async execute(q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string) { + const params = this.paramsFor({ q, type, market, limit, offset, include_external }); + return await this.getRequest>(`search${params}`); + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/ShowsEndpoints.test.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/ShowsEndpoints.test.ts new file mode 100644 index 0000000..d28bede --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/ShowsEndpoints.test.ts @@ -0,0 +1,39 @@ +import { beforeEach, describe, expect, it } from "vitest"; +import { buildIntegrationTestSdkInstance } from "../test/SpotifyApiBuilder"; +import { SpotifyApi } from "../SpotifyApi"; +import { FetchApiSpy } from "../test/FetchApiSpy"; +import { validShow } from "../test/data/validShow"; + +describe("Integration: Shows Endpoints", () => { + let sut: SpotifyApi; + let fetchSpy: FetchApiSpy; + + beforeEach(() => { + [sut, fetchSpy] = buildIntegrationTestSdkInstance(); + }); + + it("getShow can return information", async () => { + const valid = validShow(); + const result = await sut.shows.get(valid.id, "GB"); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/shows/${valid.id}?market=GB`); + expect(result.id).toBe(valid.id); + }); + + it("getShows can return information", async () => { + const valid = validShow(); + const result = await sut.shows.get([valid.id, valid.id], "GB"); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/shows?ids=${valid.id}%2C${valid.id}&market=GB`); + expect(result[0].id).toBe(valid.id); + expect(result[1].id).toBe(valid.id); + }); + + it("getShowEpisodes can return information", async () => { + const valid = validShow(); + const result = await sut.shows.episodes(valid.id, "GB"); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/shows/${valid.id}/episodes?market=GB`); + expect(result.items.length).toBeGreaterThan(0); + }); +}); diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/ShowsEndpoints.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/ShowsEndpoints.ts new file mode 100644 index 0000000..664c3a6 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/ShowsEndpoints.ts @@ -0,0 +1,24 @@ +import type { Market, Show, Shows, MaxInt, Page, SimplifiedEpisode } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; + +export default class ShowsEndpoints extends EndpointsBase { + + public get(id: string, market: Market): Promise; + public get(ids: string[], market: Market): Promise + public async get(idOrIds: string | string[], market: Market) { + if (typeof idOrIds === 'string') { + const params = this.paramsFor({ market }) + return this.getRequest(`shows/${idOrIds}${params}`); + } + + // TODO: only returns 50, validate here + const params = this.paramsFor({ ids: idOrIds, market }); + const response = await this.getRequest(`shows${params}`); + return response.shows; + } + + public episodes(id: string, market?: Market, limit?: MaxInt<50>, offset?: number) { + const params = this.paramsFor({ market, limit, offset }) + return this.getRequest>(`shows/${id}/episodes${params}`); + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/TracksEndpoints.test.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/TracksEndpoints.test.ts new file mode 100644 index 0000000..06f3d4c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/TracksEndpoints.test.ts @@ -0,0 +1,57 @@ +import { beforeEach, describe, expect, it } from "vitest"; +import { buildIntegrationTestSdkInstance } from "../test/SpotifyApiBuilder"; +import { SpotifyApi } from "../SpotifyApi"; +import { FetchApiSpy } from "../test/FetchApiSpy"; +import { validTrack } from "../test/data/validTrack"; + +describe("Integration: Tracks Endpoints", () => { + let sut: SpotifyApi; + let fetchSpy: FetchApiSpy; + + beforeEach(() => { + [sut, fetchSpy] = buildIntegrationTestSdkInstance(); + }); + + it("getTrack can return information", async () => { + const valid = validTrack(); + const result = await sut.tracks.get(valid.id); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/tracks/${valid.id}`); + expect(result.id).toBe(valid.id); + }); + + it("getTracks can return multiple items", async () => { + const valid = validTrack(); + const result = await sut.tracks.get([valid.id, valid.id]); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/tracks?ids=${valid.id}%2C${valid.id}`); + expect(result[0].id).toBe(valid.id); + expect(result[1].id).toBe(valid.id); + }); + + it("audioFeatures can return information", async () => { + const valid = validTrack(); + const result = await sut.tracks.audioFeatures(valid.id); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/audio-features/${valid.id}`); + expect(result.id).toBe(valid.id); + }); + + it("audioFeatures can return multiple items", async () => { + const valid = validTrack(); + const result = await sut.tracks.audioFeatures([valid.id, valid.id]); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/audio-features?ids=${valid.id}%2C${valid.id}`); + expect(result[0].id).toBe(valid.id); + expect(result[1].id).toBe(valid.id); + }); + + it("audioAnalysis can return information", async () => { + const valid = validTrack(); + const result = await sut.tracks.audioAnalysis(valid.id); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/audio-analysis/${valid.id}`); + expect(result.track.tempo).toBeGreaterThan(0); + }); + +}); diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/TracksEndpoints.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/TracksEndpoints.ts new file mode 100644 index 0000000..c801977 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/TracksEndpoints.ts @@ -0,0 +1,35 @@ +import type { Market, Track, Tracks, AudioFeatures, AudioFeaturesCollection, AudioAnalysis } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; + +export default class TracksEndpoints extends EndpointsBase { + + public get(id: string, market?: Market): Promise + public get(ids: string[], market?: Market): Promise + public async get(idOrIds: string | string[], market?: Market) { + if (typeof idOrIds === 'string') { + const params = this.paramsFor({ market }); + return this.getRequest(`tracks/${idOrIds}${params}`); + } + + const params = this.paramsFor({ ids: idOrIds, market }); + // TODO: only returns top 20, validate here + const response = await this.getRequest(`tracks${params}`); + return response.tracks; + } + + public audioFeatures(id: string): Promise + public audioFeatures(ids: string[]): Promise + public async audioFeatures(idOrIds: string | string[]) { + if (typeof idOrIds === 'string') { + return this.getRequest(`audio-features/${idOrIds}`); + } + const params = this.paramsFor({ ids: idOrIds }); + const response = await this.getRequest(`audio-features${params}`); + return response.audio_features; + } + + public audioAnalysis(id: string) { + return this.getRequest(`audio-analysis/${id}`); + } + +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/UsersEndpoints.test.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/UsersEndpoints.test.ts new file mode 100644 index 0000000..eb2bf75 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/UsersEndpoints.test.ts @@ -0,0 +1,23 @@ +import { beforeEach, describe, expect, it } from "vitest"; +import { buildIntegrationTestSdkInstance } from "../test/SpotifyApiBuilder"; +import { SpotifyApi } from "../SpotifyApi"; +import { FetchApiSpy } from "../test/FetchApiSpy"; +import { validUser } from "../test/data/validUser"; + +describe("Integration: Users Endpoints", () => { + let sut: SpotifyApi; + let fetchSpy: FetchApiSpy; + + beforeEach(() => { + [sut, fetchSpy] = buildIntegrationTestSdkInstance(); + }); + + it("getUserProfile can return information", async () => { + const valid = validUser(); + const result = await sut.users.profile(valid.id); + + expect(fetchSpy.request(0).input).toBe(`https://api.spotify.com/v1/users/${valid.id}`); + expect(result.id).toBe(valid.id); + expect(result.display_name).toBe(valid.display_name); + }); +}); diff --git a/node_modules/@spotify/web-api-ts-sdk/src/endpoints/UsersEndpoints.ts b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/UsersEndpoints.ts new file mode 100644 index 0000000..9b2e518 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/endpoints/UsersEndpoints.ts @@ -0,0 +1,9 @@ +import type { User } from '../types.js'; +import EndpointsBase from './EndpointsBase.js'; + +export default class UsersEndpoints extends EndpointsBase { + + public profile(userId: string) { + return this.getRequest(`users/${userId}`); + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/errorhandling/ConsoleLoggingErrorHandler.ts b/node_modules/@spotify/web-api-ts-sdk/src/errorhandling/ConsoleLoggingErrorHandler.ts new file mode 100644 index 0000000..e2a1bb3 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/errorhandling/ConsoleLoggingErrorHandler.ts @@ -0,0 +1,8 @@ +import type { IHandleErrors } from "../types.js"; + +export default class ConsoleLoggingErrorHandler implements IHandleErrors { + public async handleErrors(error: any): Promise { + console.log(error); + return false; + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/errorhandling/NoOpErrorHandler.ts b/node_modules/@spotify/web-api-ts-sdk/src/errorhandling/NoOpErrorHandler.ts new file mode 100644 index 0000000..642ec7a --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/errorhandling/NoOpErrorHandler.ts @@ -0,0 +1,7 @@ +import type { IHandleErrors } from "../types.js"; + +export default class NoOpErrorHandler implements IHandleErrors { + public async handleErrors(_: any): Promise { + return false; + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/index.ts b/node_modules/@spotify/web-api-ts-sdk/src/index.ts new file mode 100644 index 0000000..c930787 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/index.ts @@ -0,0 +1,38 @@ +import { SpotifyApi } from "./SpotifyApi.js"; +import AuthorizationCodeWithPKCEStrategy from "./auth/AuthorizationCodeWithPKCEStrategy.js"; +import ClientCredentialsStrategy from "./auth/ClientCredentialsStrategy.js"; +import IAuthStrategy from "./auth/IAuthStrategy.js"; +import InMemoryCachingStrategy from "./caching/InMemoryCachingStrategy.js"; +import LocalStorageCachingStrategy from "./caching/LocalStorageCachingStrategy.js"; +import { ICacheStore } from "./caching/ICacheStore.js"; +import GenericCache from "./caching/GenericCache.js"; +import ConsoleLoggingErrorHandler from "./errorhandling/ConsoleLoggingErrorHandler.js"; +import NoOpErrorHandler from "./errorhandling/NoOpErrorHandler.js"; +import DocumentLocationRedirectionStrategy from "./redirection/DocumentLocationRedirectionStrategy.js"; +import DefaultResponseValidator from "./responsevalidation/DefaultResponseValidator.js"; +import DefaultResponseDeserializer from "./serialization/DefaultResponseDeserializer.js"; +import { Scopes } from "./Scopes.js"; +import { emptyAccessToken } from "./auth/IAuthStrategy.js"; + +export { + SpotifyApi, + AuthorizationCodeWithPKCEStrategy, + ClientCredentialsStrategy, + InMemoryCachingStrategy, + LocalStorageCachingStrategy, + GenericCache, + ConsoleLoggingErrorHandler, + NoOpErrorHandler, + DocumentLocationRedirectionStrategy, + DefaultResponseValidator, + DefaultResponseDeserializer, + Scopes, + emptyAccessToken +} + +export type * from "./types.js"; + +export type { + IAuthStrategy, + ICacheStore, +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/redirection/DocumentLocationRedirectionStrategy.ts b/node_modules/@spotify/web-api-ts-sdk/src/redirection/DocumentLocationRedirectionStrategy.ts new file mode 100644 index 0000000..a6a9f9a --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/redirection/DocumentLocationRedirectionStrategy.ts @@ -0,0 +1,10 @@ +import type { IRedirectionStrategy } from "../types.js"; + +export default class DocumentLocationRedirectionStrategy implements IRedirectionStrategy { + public async redirect(targetUrl: string | URL): Promise { + document.location = targetUrl.toString(); + } + + public async onReturnFromRedirect(): Promise { + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/responsevalidation/DefaultResponseValidator.ts b/node_modules/@spotify/web-api-ts-sdk/src/responsevalidation/DefaultResponseValidator.ts new file mode 100644 index 0000000..8c6153f --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/responsevalidation/DefaultResponseValidator.ts @@ -0,0 +1,22 @@ +import type { IValidateResponses } from "../types.js"; + +export default class DefaultResponseValidator implements IValidateResponses { + public async validateResponse(response: Response): Promise { + + switch (response.status) { + case 401: + throw new Error("Bad or expired token. This can happen if the user revoked a token or the access token has expired. You should re-authenticate the user."); + case 403: + const body = await response.text(); + throw new Error(`Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here. Body: ${body}`); + case 429: + throw new Error("The app has exceeded its rate limits."); + default: + if (!response.status.toString().startsWith('20')) { + const body = await response.text(); + throw new Error(`Unrecognised response code: ${response.status} - ${response.statusText}. Body: ${body}`); + } + } + + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/serialization/DefaultResponseDeserializer.ts b/node_modules/@spotify/web-api-ts-sdk/src/serialization/DefaultResponseDeserializer.ts new file mode 100644 index 0000000..b4d1fce --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/serialization/DefaultResponseDeserializer.ts @@ -0,0 +1,14 @@ +import type { IResponseDeserializer } from "../types.js"; + +export default class DefaultResponseDeserializer implements IResponseDeserializer { + public async deserialize(response: Response): Promise { + const text = await response.text(); + + if (text.length > 0) { + const json = JSON.parse(text); + return json as TReturnType; + } + + return null as TReturnType; + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/AuthAsRealUserForTests.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/AuthAsRealUserForTests.ts new file mode 100644 index 0000000..45040f3 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/AuthAsRealUserForTests.ts @@ -0,0 +1,85 @@ +import playwright from "playwright"; +import AuthorizationCodeWithPKCEStrategy from "../auth/AuthorizationCodeWithPKCEStrategy"; +import AccessTokenHelpers from "../auth/AccessTokenHelpers"; +import type { AccessToken } from "../types"; + +export default class AuthAsSpecificUserForTests extends AuthorizationCodeWithPKCEStrategy { + private static headless = true; + private static memoryCachedTokens: Map = new Map(); + private cacheKey: string; + + constructor( + protected clientId: string, + protected scopes: string[], + private email: string, + private password: string + ) { + super(clientId, "http://localhost:3000", scopes); + this.cacheKey = `test-user-${email}`; + } + + public async getOrCreateAccessToken(): Promise { + if (AuthAsSpecificUserForTests.memoryCachedTokens.has(this.cacheKey)) { + return AuthAsSpecificUserForTests.memoryCachedTokens.get(this.cacheKey)!; + } + + const token = await this.useBrowserAutomationToGetToken(); + AuthAsSpecificUserForTests.memoryCachedTokens.set(this.cacheKey, token); + return token; + } + + private async useBrowserAutomationToGetToken(): Promise { + const verifier = AccessTokenHelpers.generateCodeVerifier(128); + const challenge = await AccessTokenHelpers.generateCodeChallenge(verifier); + + const location = await super.generateRedirectUrlForUser(this.scopes, challenge); + + // Redirect to Spotify auth page using playwright + const browser = await playwright.chromium.launch({ + headless: AuthAsSpecificUserForTests.headless + }); + + const context = await browser.newContext({ + userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36" + }); + + const page = await context.newPage(); + page.setViewportSize({ width: 1024, height: 2000 }); + + await page.goto(location); + await page.waitForSelector('input[id="login-username"]'); + + await page.fill('input[id="login-username"]', this.email); + await page.fill('input[id="login-password"]', this.password); + + // Wait for between 1-3 seconds + await page.waitForTimeout(Math.floor(Math.random() * 2000) + 1000); + + await page.waitForSelector('button[id="login-button"]',); + await page.click('button[id="login-button"]'); + + await page.waitForSelector('button[data-testid="auth-accept"]'); + + let capturedUrl = ""; + try { + await page.click('button[data-testid="auth-accept"]'); + await page.waitForRequest(r => { + const url = r.url(); + capturedUrl = url; + return url.includes("http://localhost:3000"); + }); + } catch (e) { + console.log(capturedUrl, e); + } + + const url = new URL(capturedUrl); + const hashParams = new URLSearchParams(url.searchParams); + const code = hashParams.get("code"); + + // Close the browser + await browser.close(); + + // Exchange the code for a token + return await this.exchangeCodeForToken(code!, verifier); + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/FakeAuthStrategy.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/FakeAuthStrategy.ts new file mode 100644 index 0000000..5296def --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/FakeAuthStrategy.ts @@ -0,0 +1,42 @@ +import IAuthStrategy from "../auth/IAuthStrategy"; +import InMemoryCachingStrategy from "../caching/InMemoryCachingStrategy"; +import type { AccessToken, ICachingStrategy, SdkConfiguration } from "../types"; + +export class FakeAuthStrategy implements IAuthStrategy { + + public static readonly FAKE_AUTH_TOKEN = "fake-auth-token"; + private static readonly cacheKey = "spotify-sdk:FakeAuthStrategy:token"; + protected cache: ICachingStrategy; + + constructor( + protected accessToken: string = FakeAuthStrategy.FAKE_AUTH_TOKEN, + ) { + this.cache = new InMemoryCachingStrategy(); + } + + public setConfiguration(_: SdkConfiguration): void { + } + + public async getOrCreateAccessToken(): Promise { + const token = await this.cache.getOrCreate( + FakeAuthStrategy.cacheKey, + async () => { + return { + access_token: this.accessToken, + expires: Date.now() + 3600 * 1000, + } as AccessToken; + }, + ); + + return token; + } + + public async getAccessToken(): Promise { + const token = await this.cache.get(FakeAuthStrategy.cacheKey); + return token; + } + + public removeAccessToken(): void { + this.cache.remove(FakeAuthStrategy.cacheKey); + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/FetchApiMock.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/FetchApiMock.ts new file mode 100644 index 0000000..d1354e4 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/FetchApiMock.ts @@ -0,0 +1,44 @@ +export type FetchParams = { input: RequestInfo | URL; init?: RequestInit; }; + +export class FetchApiMock { + public issuedRequests: Array = []; + private responseQueue: Array = []; + + public fetch(input: RequestInfo | URL, init?: RequestInit | undefined): Promise { + this.issuedRequests.push({ input, init }); + return Promise.resolve(this.responseQueue.pop()!); + } + + public queueResponse(response: Response) { + this.responseQueue.push(response); + } + + public queueResponseBody(status: number, body: any) { + this.queueRawResponseBody(status, JSON.stringify(body)); + } + + public queueRawResponseBody(status: number, body: string) { + const fakeResponse = { + status: status, + text: () => { + return JSON.stringify(body); + } + } as any; + + this.queueResponse(fakeResponse); + } + + public isssuedRequest(offset: number) { + return this.issuedRequests[offset]; + } + + public issuedRequestHeadersAndBody(offset: number): [HeadersInit, string] { + const request = this.isssuedRequest(offset); + const { init } = request; + const headers = init?.headers as any; + const body = init?.body as string; + return [headers, body]; + } +} + + diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/FetchApiSpy.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/FetchApiSpy.ts new file mode 100644 index 0000000..831b768 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/FetchApiSpy.ts @@ -0,0 +1,49 @@ +import fs from 'fs'; +import { v4 as uuidv4 } from "uuid"; + +export class FetchApiSpy { + private issuedRequests: Array<{ input: RequestInfo | URL; init?: RequestInit; }> = []; + private logResults: boolean; + + constructor(logResults: boolean = false) { + this.logResults = logResults; + } + + public async fetch(input: RequestInfo | URL, init?: RequestInit | undefined): Promise { + this.issuedRequests.push({ input, init }); + const result = fetch(input, init); + + if (this.logResults) { + const awaited = await result; + const clone = awaited.clone(); + + if (!fs.existsSync("temp")) { + fs.mkdirSync("temp"); + } + + const uniqueId = uuidv4(); + const bodyText = await clone.text(); + + const fileContents = ` +// URL: ${awaited.url} +// Status: ${awaited.status} +// Status Text: ${awaited.statusText} + +${bodyText}`.trim(); + + fs.writeFileSync(`temp/${uniqueId}.json`, fileContents); + + return awaited; + } + + return result; + } + + public request(offset: number) { + return this.issuedRequests[0]; + } + + public lastRequest() { + return this.issuedRequests[this.issuedRequests.length - 1]; + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/SpotifyApiBuilder.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/SpotifyApiBuilder.ts new file mode 100644 index 0000000..9be754f --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/SpotifyApiBuilder.ts @@ -0,0 +1,81 @@ +import { SpotifyApi } from "../SpotifyApi"; +import ClientCredentialsStrategy from "../auth/ClientCredentialsStrategy"; +import { FakeAuthStrategy } from "./FakeAuthStrategy"; +import { FetchApiMock } from "./FetchApiMock"; +import { FetchApiSpy } from "./FetchApiSpy"; +import AuthAsSpecifcUserForTests from "./AuthAsRealUserForTests"; +import InMemoryCachingStrategy from "../caching/InMemoryCachingStrategy"; +import { Scopes } from "../Scopes"; + +import dotenv from "dotenv"; +import { SdkOptions } from "../types"; +dotenv.config(); + +export function buildIntegrationTestSdkInstance(logResults: boolean = false): [SpotifyApi, FetchApiSpy] { + // This should be replaced with a representative server-side auth flow + // that returns a valid access token. + + // We'll load access keys from the .env file, so if it's not provided + // all the integration tests will deliberately fail and not hit + // the Spotify API + + const clientId = process.env.INTEGRATION_TESTS_SPOTIFY_CLIENT_ID; + const clientSecret = process.env.INTEGRATION_TESTS_SPOTIFY_CLIENT_SECRET; + + if (!clientId || !clientSecret) { + throw new Error("No client ID or secret provided. Please provide a valid Spotify client ID and secret in the /.env file as: INTEGRATION_TESTS_SPOTIFY_CLIENT_ID and INTEGRATION_TESTS_SPOTIFY_CLIENT_SECRET"); + } + + const authStrat = new ClientCredentialsStrategy(clientId, clientSecret); + + const fetchSpy = new FetchApiSpy(logResults); + const sdkConfig = { + fetch: (input: RequestInfo | URL, init?: RequestInit | undefined) => { + return fetchSpy.fetch(input, init); + }, + cachingStrategy: new InMemoryCachingStrategy() + } + + const sdkInstance = new SpotifyApi(authStrat, sdkConfig); + + return [sdkInstance, fetchSpy]; +} + +export function buildIntegrationTestUserSdkInstance(logResults: boolean = false): [SpotifyApi, FetchApiSpy] { + const clientId = process.env.INTEGRATION_TESTS_SPOTIFY_CLIENT_ID; + const email = process.env.INTEGRATION_TESTS_USER_EMAIL; + const password = process.env.INTEGRATION_TESTS_USER_PASSWORD; + + if (!clientId || !email || !password) { + throw new Error("No client ID, or secret, or email, or password provided. Please provide a valid Spotify client ID and secret in the /.env file."); + } + + const authStrat = new AuthAsSpecifcUserForTests(clientId, Scopes.all, email, password); + + const fetchSpy = new FetchApiSpy(logResults); + const sdkConfig = { + fetch: (input: RequestInfo | URL, init?: RequestInit | undefined) => { + return fetchSpy.fetch(input, init); + }, + cachingStrategy: new InMemoryCachingStrategy() + } + + const sdkInstance = new SpotifyApi(authStrat, sdkConfig); + + return [sdkInstance, fetchSpy]; +} + +export function buildUnitTestSdkInstance(): [SpotifyApi, FetchApiMock] { + const authStrat = new FakeAuthStrategy(); + const fetchMock = new FetchApiMock(); + const sdkConfig: SdkOptions = { + fetch: (input: RequestInfo | URL, init?: RequestInit | undefined) => { + return fetchMock.fetch(input, init); + }, + cachingStrategy: new InMemoryCachingStrategy() + }; + + const sdkInstance = new SpotifyApi(authStrat, sdkConfig); + + return [sdkInstance, fetchMock]; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/data/validAlbumResult.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validAlbumResult.ts new file mode 100644 index 0000000..3f417bf --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validAlbumResult.ts @@ -0,0 +1,349 @@ +export function validAlbumResult() { + return { + "album_group": "album", + "album_type": "album", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AU", "AZ", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "MG", "MH", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RW", "SA", "SB", "SC", "SE", "SG", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "ZA", "ZM", "ZW"], + "copyrights": [{ + "text": "(C) 2022 Napalm Records Handels GmbH", + "type": "C" + }, { + "text": "(P) 2022 Napalm Records Handels Gmbh", + "type": "P" + }], + "external_ids": { + "upc": "840588171736" + }, + "external_urls": { + "spotify": "https://open.spotify.com/album/4EcfbzCtbJDk2wMwhT4D1h" + }, + "genres": [], + "href": "https://api.spotify.com/v1/albums/4EcfbzCtbJDk2wMwhT4D1h", + "id": "4EcfbzCtbJDk2wMwhT4D1h", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2731465df104ab9c7772fe0da9b", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e021465df104ab9c7772fe0da9b", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048511465df104ab9c7772fe0da9b", + "width": 64 + }], + "label": "Napalm Records Handels GmbH", + "name": "Sky Void of Stars", + "popularity": 57, + "release_date": "2023-01-20", + "release_date_precision": "day", + "total_tracks": 11, + "tracks": { + "href": "https://api.spotify.com/v1/albums/4EcfbzCtbJDk2wMwhT4D1h/tracks?offset=0&limit=50&locale=*", + "items": [{ + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 221200, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/2RM5Lx7VIp6GrLRsg2yXwW" + }, + "href": "https://api.spotify.com/v1/tracks/2RM5Lx7VIp6GrLRsg2yXwW", + "id": "2RM5Lx7VIp6GrLRsg2yXwW", + "is_local": false, + "name": "Austerity", + "preview_url": "https://p.scdn.co/mp3-preview/92060dafd9885ae188be4b7bb3640ad41bf221b3?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 1, + "type": "track", + "uri": "spotify:track:2RM5Lx7VIp6GrLRsg2yXwW" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 269106, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/64izlxZoHpcP1BSMLOFVld" + }, + "href": "https://api.spotify.com/v1/tracks/64izlxZoHpcP1BSMLOFVld", + "id": "64izlxZoHpcP1BSMLOFVld", + "is_local": false, + "name": "Colossal Shade", + "preview_url": "https://p.scdn.co/mp3-preview/1bb8e2f22742f172fda20afb8f5b74b9ab3423df?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 2, + "type": "track", + "uri": "spotify:track:64izlxZoHpcP1BSMLOFVld" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 300560, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/3wFpyxWBsobjg8jOTgcdCM" + }, + "href": "https://api.spotify.com/v1/tracks/3wFpyxWBsobjg8jOTgcdCM", + "id": "3wFpyxWBsobjg8jOTgcdCM", + "is_local": false, + "name": "Opaline", + "preview_url": "https://p.scdn.co/mp3-preview/6656b1ba8062c76b3d10daed8e49b82adbda7485?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 3, + "type": "track", + "uri": "spotify:track:3wFpyxWBsobjg8jOTgcdCM" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 248533, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/1ARmblMbvIf4hD5IVhwCkB" + }, + "href": "https://api.spotify.com/v1/tracks/1ARmblMbvIf4hD5IVhwCkB", + "id": "1ARmblMbvIf4hD5IVhwCkB", + "is_local": false, + "name": "Birds", + "preview_url": "https://p.scdn.co/mp3-preview/a63b5da204ce6c24c2f119ddb439d98eabd7c9fb?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 4, + "type": "track", + "uri": "spotify:track:1ARmblMbvIf4hD5IVhwCkB" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 239613, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/57oPzGWcjklkbwX1Zxu3aI" + }, + "href": "https://api.spotify.com/v1/tracks/57oPzGWcjklkbwX1Zxu3aI", + "id": "57oPzGWcjklkbwX1Zxu3aI", + "is_local": false, + "name": "Drab Moon", + "preview_url": "https://p.scdn.co/mp3-preview/7319eb4d38de1036062499ec20757b9daff60439?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 5, + "type": "track", + "uri": "spotify:track:57oPzGWcjklkbwX1Zxu3aI" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 257426, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/7aAkwLYl0dguLeCzzHXap7" + }, + "href": "https://api.spotify.com/v1/tracks/7aAkwLYl0dguLeCzzHXap7", + "id": "7aAkwLYl0dguLeCzzHXap7", + "is_local": false, + "name": "Author", + "preview_url": "https://p.scdn.co/mp3-preview/95ab24e1a3922735ceb64d57bb00bfc6d2e10a26?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 6, + "type": "track", + "uri": "spotify:track:7aAkwLYl0dguLeCzzHXap7" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 312373, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/2JurXfd61zNHSRj7d5Pb6O" + }, + "href": "https://api.spotify.com/v1/tracks/2JurXfd61zNHSRj7d5Pb6O", + "id": "2JurXfd61zNHSRj7d5Pb6O", + "is_local": false, + "name": "Impermanence", + "preview_url": "https://p.scdn.co/mp3-preview/67db9ed10548d6627fa863927476563f24f57431?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 7, + "type": "track", + "uri": "spotify:track:2JurXfd61zNHSRj7d5Pb6O" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 285080, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/5FVFwjpC20OGjApOhPacVi" + }, + "href": "https://api.spotify.com/v1/tracks/5FVFwjpC20OGjApOhPacVi", + "id": "5FVFwjpC20OGjApOhPacVi", + "is_local": false, + "name": "Sclera", + "preview_url": "https://p.scdn.co/mp3-preview/fc1af73a9b197ce646b9867c301e6b86681dfc18?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 8, + "type": "track", + "uri": "spotify:track:5FVFwjpC20OGjApOhPacVi" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 248760, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/6miZE4vSkmreF5eZUX1l0I" + }, + "href": "https://api.spotify.com/v1/tracks/6miZE4vSkmreF5eZUX1l0I", + "id": "6miZE4vSkmreF5eZUX1l0I", + "is_local": false, + "name": "Atrium", + "preview_url": "https://p.scdn.co/mp3-preview/f0db211f6c1d67206a76dc954a58bf09c279483f?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 9, + "type": "track", + "uri": "spotify:track:6miZE4vSkmreF5eZUX1l0I" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 368213, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/2wmyK7qt2IwSLl34OFk432" + }, + "href": "https://api.spotify.com/v1/tracks/2wmyK7qt2IwSLl34OFk432", + "id": "2wmyK7qt2IwSLl34OFk432", + "is_local": false, + "name": "No Beacon to Illuminate Our Fall", + "preview_url": "https://p.scdn.co/mp3-preview/9852171c62fdb2630768467d840c10550458c826?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 10, + "type": "track", + "uri": "spotify:track:2wmyK7qt2IwSLl34OFk432" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 287840, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/4FbvnEoKHsPlwwBzCc7S4S" + }, + "href": "https://api.spotify.com/v1/tracks/4FbvnEoKHsPlwwBzCc7S4S", + "id": "4FbvnEoKHsPlwwBzCc7S4S", + "is_local": false, + "name": "Absconder (Bonus Track)", + "preview_url": "https://p.scdn.co/mp3-preview/a31db9a76acbc061ad5a5613bfebfcda71d771f2?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 11, + "type": "track", + "uri": "spotify:track:4FbvnEoKHsPlwwBzCc7S4S" + }], + "limit": 50, + "next": null, + "offset": 0, + "previous": null, + "total": 11 + }, + "type": "album", + "uri": "spotify:album:4EcfbzCtbJDk2wMwhT4D1h" + }; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/data/validAlbumTracksResult.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validAlbumTracksResult.ts new file mode 100644 index 0000000..cc53212 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validAlbumTracksResult.ts @@ -0,0 +1,297 @@ +export function validAlbumTracksResult() { + return { + "href": "https://api.spotify.com/v1/albums/4EcfbzCtbJDk2wMwhT4D1h/tracks?offset=0&limit=20&locale=*", + "items": [{ + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 221200, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/2RM5Lx7VIp6GrLRsg2yXwW" + }, + "href": "https://api.spotify.com/v1/tracks/2RM5Lx7VIp6GrLRsg2yXwW", + "id": "2RM5Lx7VIp6GrLRsg2yXwW", + "is_local": false, + "name": "Austerity", + "preview_url": "https://p.scdn.co/mp3-preview/92060dafd9885ae188be4b7bb3640ad41bf221b3?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 1, + "type": "track", + "uri": "spotify:track:2RM5Lx7VIp6GrLRsg2yXwW" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 269106, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/64izlxZoHpcP1BSMLOFVld" + }, + "href": "https://api.spotify.com/v1/tracks/64izlxZoHpcP1BSMLOFVld", + "id": "64izlxZoHpcP1BSMLOFVld", + "is_local": false, + "name": "Colossal Shade", + "preview_url": "https://p.scdn.co/mp3-preview/1bb8e2f22742f172fda20afb8f5b74b9ab3423df?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 2, + "type": "track", + "uri": "spotify:track:64izlxZoHpcP1BSMLOFVld" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 300560, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/3wFpyxWBsobjg8jOTgcdCM" + }, + "href": "https://api.spotify.com/v1/tracks/3wFpyxWBsobjg8jOTgcdCM", + "id": "3wFpyxWBsobjg8jOTgcdCM", + "is_local": false, + "name": "Opaline", + "preview_url": "https://p.scdn.co/mp3-preview/6656b1ba8062c76b3d10daed8e49b82adbda7485?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 3, + "type": "track", + "uri": "spotify:track:3wFpyxWBsobjg8jOTgcdCM" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 248533, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/1ARmblMbvIf4hD5IVhwCkB" + }, + "href": "https://api.spotify.com/v1/tracks/1ARmblMbvIf4hD5IVhwCkB", + "id": "1ARmblMbvIf4hD5IVhwCkB", + "is_local": false, + "name": "Birds", + "preview_url": "https://p.scdn.co/mp3-preview/a63b5da204ce6c24c2f119ddb439d98eabd7c9fb?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 4, + "type": "track", + "uri": "spotify:track:1ARmblMbvIf4hD5IVhwCkB" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 239613, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/57oPzGWcjklkbwX1Zxu3aI" + }, + "href": "https://api.spotify.com/v1/tracks/57oPzGWcjklkbwX1Zxu3aI", + "id": "57oPzGWcjklkbwX1Zxu3aI", + "is_local": false, + "name": "Drab Moon", + "preview_url": "https://p.scdn.co/mp3-preview/7319eb4d38de1036062499ec20757b9daff60439?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 5, + "type": "track", + "uri": "spotify:track:57oPzGWcjklkbwX1Zxu3aI" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 257426, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/7aAkwLYl0dguLeCzzHXap7" + }, + "href": "https://api.spotify.com/v1/tracks/7aAkwLYl0dguLeCzzHXap7", + "id": "7aAkwLYl0dguLeCzzHXap7", + "is_local": false, + "name": "Author", + "preview_url": "https://p.scdn.co/mp3-preview/95ab24e1a3922735ceb64d57bb00bfc6d2e10a26?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 6, + "type": "track", + "uri": "spotify:track:7aAkwLYl0dguLeCzzHXap7" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 312373, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/2JurXfd61zNHSRj7d5Pb6O" + }, + "href": "https://api.spotify.com/v1/tracks/2JurXfd61zNHSRj7d5Pb6O", + "id": "2JurXfd61zNHSRj7d5Pb6O", + "is_local": false, + "name": "Impermanence", + "preview_url": "https://p.scdn.co/mp3-preview/67db9ed10548d6627fa863927476563f24f57431?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 7, + "type": "track", + "uri": "spotify:track:2JurXfd61zNHSRj7d5Pb6O" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 285080, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/5FVFwjpC20OGjApOhPacVi" + }, + "href": "https://api.spotify.com/v1/tracks/5FVFwjpC20OGjApOhPacVi", + "id": "5FVFwjpC20OGjApOhPacVi", + "is_local": false, + "name": "Sclera", + "preview_url": "https://p.scdn.co/mp3-preview/fc1af73a9b197ce646b9867c301e6b86681dfc18?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 8, + "type": "track", + "uri": "spotify:track:5FVFwjpC20OGjApOhPacVi" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 248760, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/6miZE4vSkmreF5eZUX1l0I" + }, + "href": "https://api.spotify.com/v1/tracks/6miZE4vSkmreF5eZUX1l0I", + "id": "6miZE4vSkmreF5eZUX1l0I", + "is_local": false, + "name": "Atrium", + "preview_url": "https://p.scdn.co/mp3-preview/f0db211f6c1d67206a76dc954a58bf09c279483f?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 9, + "type": "track", + "uri": "spotify:track:6miZE4vSkmreF5eZUX1l0I" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 368213, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/2wmyK7qt2IwSLl34OFk432" + }, + "href": "https://api.spotify.com/v1/tracks/2wmyK7qt2IwSLl34OFk432", + "id": "2wmyK7qt2IwSLl34OFk432", + "is_local": false, + "name": "No Beacon to Illuminate Our Fall", + "preview_url": "https://p.scdn.co/mp3-preview/9852171c62fdb2630768467d840c10550458c826?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 10, + "type": "track", + "uri": "spotify:track:2wmyK7qt2IwSLl34OFk432" + }, { + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "href": "https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id": "2CWWgbxApjbyByxBBCvGTm", + "name": "Katatonia", + "type": "artist", + "uri": "spotify:artist:2CWWgbxApjbyByxBBCvGTm" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + "disc_number": 1, + "duration_ms": 287840, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/track/4FbvnEoKHsPlwwBzCc7S4S" + }, + "href": "https://api.spotify.com/v1/tracks/4FbvnEoKHsPlwwBzCc7S4S", + "id": "4FbvnEoKHsPlwwBzCc7S4S", + "is_local": false, + "name": "Absconder (Bonus Track)", + "preview_url": "https://p.scdn.co/mp3-preview/a31db9a76acbc061ad5a5613bfebfcda71d771f2?cid=3c5328c75f1f44c086b25e73608c453b", + "track_number": 11, + "type": "track", + "uri": "spotify:track:4FbvnEoKHsPlwwBzCc7S4S" + }], + "limit": 20, + "next": null, + "offset": 0, + "previous": null, + "total": 11 + }; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/data/validArtist.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validArtist.ts new file mode 100644 index 0000000..f69bad0 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validArtist.ts @@ -0,0 +1,44 @@ +export function validArtist() { + return { + "external_urls":{ + "spotify":"https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm" + }, + "followers":{ + "href":null, + "total":327891 + }, + "genres":[ + "doom metal", + "finnish metal", + "gothic metal", + "metal", + "progressive metal", + "swedish doom metal", + "swedish metal", + "swedish progressive metal" + ], + "href":"https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm", + "id":"2CWWgbxApjbyByxBBCvGTm", + "images":[ + { + "height":640, + "url":"https://i.scdn.co/image/ab6761610000e5eba65f5211ef06d534018b7a11", + "width":640 + }, + { + "height":320, + "url":"https://i.scdn.co/image/ab67616100005174a65f5211ef06d534018b7a11", + "width":320 + }, + { + "height":160, + "url":"https://i.scdn.co/image/ab6761610000f178a65f5211ef06d534018b7a11", + "width":160 + } + ], + "name":"Katatonia", + "popularity":57, + "type":"artist", + "uri":"spotify:artist:2CWWgbxApjbyByxBBCvGTm" + } +} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/data/validAudioBook.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validAudioBook.ts new file mode 100644 index 0000000..8b612a3 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validAudioBook.ts @@ -0,0 +1,1238 @@ +export function validAudioBook() { + return { + "authors": [{ + "name": "Blake Pierce" + }], + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "chapters": { + "href": "https://api.spotify.com/v1/audiobooks/19Xw49IjNbOCCoebfy3qA9/chapters", + "items": [{ + "id": "1T07H2V5GwrpPNAH6032ES", + "description": "", + "chapter_number": 0, + "duration_ms": 13000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Opening Credits", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:1T07H2V5GwrpPNAH6032ES", + "external_urls": { + "spotify": "https://open.spotify.com/episode/1T07H2V5GwrpPNAH6032ES" + }, + "href": "https://api.spotify.com/v1/chapters/1T07H2V5GwrpPNAH6032ES" + }, { + "id": "0rbIxlxueTO1Wg5mGCT77s", + "description": "", + "chapter_number": 1, + "duration_ms": 696000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Prologue", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:0rbIxlxueTO1Wg5mGCT77s", + "external_urls": { + "spotify": "https://open.spotify.com/episode/0rbIxlxueTO1Wg5mGCT77s" + }, + "href": "https://api.spotify.com/v1/chapters/0rbIxlxueTO1Wg5mGCT77s" + }, { + "id": "5TuUcQWzecVJhKgLMZotv7", + "description": "", + "chapter_number": 2, + "duration_ms": 966000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 1", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:5TuUcQWzecVJhKgLMZotv7", + "external_urls": { + "spotify": "https://open.spotify.com/episode/5TuUcQWzecVJhKgLMZotv7" + }, + "href": "https://api.spotify.com/v1/chapters/5TuUcQWzecVJhKgLMZotv7" + }, { + "id": "3bPxArIDWFcncv1aR4JAPp", + "description": "", + "chapter_number": 3, + "duration_ms": 811000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 2", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:3bPxArIDWFcncv1aR4JAPp", + "external_urls": { + "spotify": "https://open.spotify.com/episode/3bPxArIDWFcncv1aR4JAPp" + }, + "href": "https://api.spotify.com/v1/chapters/3bPxArIDWFcncv1aR4JAPp" + }, { + "id": "6qADFIBqbuM6aJ1YgtLLZm", + "description": "", + "chapter_number": 4, + "duration_ms": 951000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 3", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:6qADFIBqbuM6aJ1YgtLLZm", + "external_urls": { + "spotify": "https://open.spotify.com/episode/6qADFIBqbuM6aJ1YgtLLZm" + }, + "href": "https://api.spotify.com/v1/chapters/6qADFIBqbuM6aJ1YgtLLZm" + }, { + "id": "1Jo0neduDYe1Ya9ql97g4a", + "description": "", + "chapter_number": 5, + "duration_ms": 1540000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 4", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:1Jo0neduDYe1Ya9ql97g4a", + "external_urls": { + "spotify": "https://open.spotify.com/episode/1Jo0neduDYe1Ya9ql97g4a" + }, + "href": "https://api.spotify.com/v1/chapters/1Jo0neduDYe1Ya9ql97g4a" + }, { + "id": "3ecwzcJTImiGyGhzmSumI7", + "description": "", + "chapter_number": 6, + "duration_ms": 699000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 5", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:3ecwzcJTImiGyGhzmSumI7", + "external_urls": { + "spotify": "https://open.spotify.com/episode/3ecwzcJTImiGyGhzmSumI7" + }, + "href": "https://api.spotify.com/v1/chapters/3ecwzcJTImiGyGhzmSumI7" + }, { + "id": "4HsRzyXsJVoBUvR4Xt82oX", + "description": "", + "chapter_number": 7, + "duration_ms": 1172000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 6", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:4HsRzyXsJVoBUvR4Xt82oX", + "external_urls": { + "spotify": "https://open.spotify.com/episode/4HsRzyXsJVoBUvR4Xt82oX" + }, + "href": "https://api.spotify.com/v1/chapters/4HsRzyXsJVoBUvR4Xt82oX" + }, { + "id": "4pVdMPSp3T7JIipZZPWiPX", + "description": "", + "chapter_number": 8, + "duration_ms": 1213000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 7", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:4pVdMPSp3T7JIipZZPWiPX", + "external_urls": { + "spotify": "https://open.spotify.com/episode/4pVdMPSp3T7JIipZZPWiPX" + }, + "href": "https://api.spotify.com/v1/chapters/4pVdMPSp3T7JIipZZPWiPX" + }, { + "id": "4BpnfoAKO1wODOcvpuhCLW", + "description": "", + "chapter_number": 9, + "duration_ms": 583433, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 8", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:4BpnfoAKO1wODOcvpuhCLW", + "external_urls": { + "spotify": "https://open.spotify.com/episode/4BpnfoAKO1wODOcvpuhCLW" + }, + "href": "https://api.spotify.com/v1/chapters/4BpnfoAKO1wODOcvpuhCLW" + }, { + "id": "0SbolrnxD934rE47mijXdM", + "description": "", + "chapter_number": 10, + "duration_ms": 1279000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 9", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:0SbolrnxD934rE47mijXdM", + "external_urls": { + "spotify": "https://open.spotify.com/episode/0SbolrnxD934rE47mijXdM" + }, + "href": "https://api.spotify.com/v1/chapters/0SbolrnxD934rE47mijXdM" + }, { + "id": "650UdN6gdWlGxaAWHIdu5l", + "description": "", + "chapter_number": 11, + "duration_ms": 834155, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 10", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:650UdN6gdWlGxaAWHIdu5l", + "external_urls": { + "spotify": "https://open.spotify.com/episode/650UdN6gdWlGxaAWHIdu5l" + }, + "href": "https://api.spotify.com/v1/chapters/650UdN6gdWlGxaAWHIdu5l" + }, { + "id": "6HoTgp3boToVtepTPBi65O", + "description": "", + "chapter_number": 12, + "duration_ms": 1196191, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 11", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:6HoTgp3boToVtepTPBi65O", + "external_urls": { + "spotify": "https://open.spotify.com/episode/6HoTgp3boToVtepTPBi65O" + }, + "href": "https://api.spotify.com/v1/chapters/6HoTgp3boToVtepTPBi65O" + }, { + "id": "2kIY4BbG6Maihn3RHaxZFv", + "description": "", + "chapter_number": 13, + "duration_ms": 1745000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 12", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:2kIY4BbG6Maihn3RHaxZFv", + "external_urls": { + "spotify": "https://open.spotify.com/episode/2kIY4BbG6Maihn3RHaxZFv" + }, + "href": "https://api.spotify.com/v1/chapters/2kIY4BbG6Maihn3RHaxZFv" + }, { + "id": "3FGE2fCCy1k1GraIZYwzAO", + "description": "", + "chapter_number": 14, + "duration_ms": 988170, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 13", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:3FGE2fCCy1k1GraIZYwzAO", + "external_urls": { + "spotify": "https://open.spotify.com/episode/3FGE2fCCy1k1GraIZYwzAO" + }, + "href": "https://api.spotify.com/v1/chapters/3FGE2fCCy1k1GraIZYwzAO" + }, { + "id": "3RHUQSE95qnc90dNYsqkeV", + "description": "", + "chapter_number": 15, + "duration_ms": 711708, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 14", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:3RHUQSE95qnc90dNYsqkeV", + "external_urls": { + "spotify": "https://open.spotify.com/episode/3RHUQSE95qnc90dNYsqkeV" + }, + "href": "https://api.spotify.com/v1/chapters/3RHUQSE95qnc90dNYsqkeV" + }, { + "id": "6rxsGtyNPxfuQ7PhGsSMsd", + "description": "", + "chapter_number": 16, + "duration_ms": 1990560, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 15", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:6rxsGtyNPxfuQ7PhGsSMsd", + "external_urls": { + "spotify": "https://open.spotify.com/episode/6rxsGtyNPxfuQ7PhGsSMsd" + }, + "href": "https://api.spotify.com/v1/chapters/6rxsGtyNPxfuQ7PhGsSMsd" + }, { + "id": "4VQ8xRmrw4tMDZT2UeHTAg", + "description": "", + "chapter_number": 17, + "duration_ms": 1146505, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 16", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:4VQ8xRmrw4tMDZT2UeHTAg", + "external_urls": { + "spotify": "https://open.spotify.com/episode/4VQ8xRmrw4tMDZT2UeHTAg" + }, + "href": "https://api.spotify.com/v1/chapters/4VQ8xRmrw4tMDZT2UeHTAg" + }, { + "id": "1NIeTrmcAl4sycqmBJ2FdV", + "description": "", + "chapter_number": 18, + "duration_ms": 1230000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 17", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:1NIeTrmcAl4sycqmBJ2FdV", + "external_urls": { + "spotify": "https://open.spotify.com/episode/1NIeTrmcAl4sycqmBJ2FdV" + }, + "href": "https://api.spotify.com/v1/chapters/1NIeTrmcAl4sycqmBJ2FdV" + }, { + "id": "6uToEJSGlinLBXoTKUT5ZY", + "description": "", + "chapter_number": 19, + "duration_ms": 939956, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 18", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:6uToEJSGlinLBXoTKUT5ZY", + "external_urls": { + "spotify": "https://open.spotify.com/episode/6uToEJSGlinLBXoTKUT5ZY" + }, + "href": "https://api.spotify.com/v1/chapters/6uToEJSGlinLBXoTKUT5ZY" + }, { + "id": "2X32afoB5BwLHj2TBYboun", + "description": "", + "chapter_number": 20, + "duration_ms": 915065, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 19", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:2X32afoB5BwLHj2TBYboun", + "external_urls": { + "spotify": "https://open.spotify.com/episode/2X32afoB5BwLHj2TBYboun" + }, + "href": "https://api.spotify.com/v1/chapters/2X32afoB5BwLHj2TBYboun" + }, { + "id": "1yB00XrfOws0t3NdYnnjC8", + "description": "", + "chapter_number": 21, + "duration_ms": 887000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 20", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:1yB00XrfOws0t3NdYnnjC8", + "external_urls": { + "spotify": "https://open.spotify.com/episode/1yB00XrfOws0t3NdYnnjC8" + }, + "href": "https://api.spotify.com/v1/chapters/1yB00XrfOws0t3NdYnnjC8" + }, { + "id": "3tYVVB5HjDLB9IKqqOeW9K", + "description": "", + "chapter_number": 22, + "duration_ms": 805000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 21", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:3tYVVB5HjDLB9IKqqOeW9K", + "external_urls": { + "spotify": "https://open.spotify.com/episode/3tYVVB5HjDLB9IKqqOeW9K" + }, + "href": "https://api.spotify.com/v1/chapters/3tYVVB5HjDLB9IKqqOeW9K" + }, { + "id": "7AU20h79rESepo0P5emlDg", + "description": "", + "chapter_number": 23, + "duration_ms": 1158000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 22", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:7AU20h79rESepo0P5emlDg", + "external_urls": { + "spotify": "https://open.spotify.com/episode/7AU20h79rESepo0P5emlDg" + }, + "href": "https://api.spotify.com/v1/chapters/7AU20h79rESepo0P5emlDg" + }, { + "id": "6CaLMS5NDRBv92mXlyLXN5", + "description": "", + "chapter_number": 24, + "duration_ms": 718000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 23", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:6CaLMS5NDRBv92mXlyLXN5", + "external_urls": { + "spotify": "https://open.spotify.com/episode/6CaLMS5NDRBv92mXlyLXN5" + }, + "href": "https://api.spotify.com/v1/chapters/6CaLMS5NDRBv92mXlyLXN5" + }, { + "id": "20DOsaj422Tz8NCmfe20Cc", + "description": "", + "chapter_number": 25, + "duration_ms": 929553, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 24", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:20DOsaj422Tz8NCmfe20Cc", + "external_urls": { + "spotify": "https://open.spotify.com/episode/20DOsaj422Tz8NCmfe20Cc" + }, + "href": "https://api.spotify.com/v1/chapters/20DOsaj422Tz8NCmfe20Cc" + }, { + "id": "2ydIFXmydqzPFBfhFulbhH", + "description": "", + "chapter_number": 26, + "duration_ms": 999000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 25", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:2ydIFXmydqzPFBfhFulbhH", + "external_urls": { + "spotify": "https://open.spotify.com/episode/2ydIFXmydqzPFBfhFulbhH" + }, + "href": "https://api.spotify.com/v1/chapters/2ydIFXmydqzPFBfhFulbhH" + }, { + "id": "6tv4qyAojYpAU6by995r26", + "description": "", + "chapter_number": 27, + "duration_ms": 861000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 26", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:6tv4qyAojYpAU6by995r26", + "external_urls": { + "spotify": "https://open.spotify.com/episode/6tv4qyAojYpAU6by995r26" + }, + "href": "https://api.spotify.com/v1/chapters/6tv4qyAojYpAU6by995r26" + }, { + "id": "6r4i5fnGgRKefCW79XH9aK", + "description": "", + "chapter_number": 28, + "duration_ms": 853000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 27", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:6r4i5fnGgRKefCW79XH9aK", + "external_urls": { + "spotify": "https://open.spotify.com/episode/6r4i5fnGgRKefCW79XH9aK" + }, + "href": "https://api.spotify.com/v1/chapters/6r4i5fnGgRKefCW79XH9aK" + }, { + "id": "1k9JjtyYYT8rpp6hgNerh7", + "description": "", + "chapter_number": 29, + "duration_ms": 1065822, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 28", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:1k9JjtyYYT8rpp6hgNerh7", + "external_urls": { + "spotify": "https://open.spotify.com/episode/1k9JjtyYYT8rpp6hgNerh7" + }, + "href": "https://api.spotify.com/v1/chapters/1k9JjtyYYT8rpp6hgNerh7" + }, { + "id": "5daI7NwSNpFdvsm3jyJHdP", + "description": "", + "chapter_number": 30, + "duration_ms": 741663, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Epilogue", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:5daI7NwSNpFdvsm3jyJHdP", + "external_urls": { + "spotify": "https://open.spotify.com/episode/5daI7NwSNpFdvsm3jyJHdP" + }, + "href": "https://api.spotify.com/v1/chapters/5daI7NwSNpFdvsm3jyJHdP" + }, { + "id": "1MRNNvF9YBoRkb6T5HkQ9w", + "description": "", + "chapter_number": 31, + "duration_ms": 17000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Ending Credits", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:1MRNNvF9YBoRkb6T5HkQ9w", + "external_urls": { + "spotify": "https://open.spotify.com/episode/1MRNNvF9YBoRkb6T5HkQ9w" + }, + "href": "https://api.spotify.com/v1/chapters/1MRNNvF9YBoRkb6T5HkQ9w" + }, { + "id": "1OMottuenpheykC1dMgjxN", + "description": "", + "chapter_number": 32, + "duration_ms": 300000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Girl, Alone (An Ella Dark FBI Suspense Thriller—Book 1)", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:1OMottuenpheykC1dMgjxN", + "external_urls": { + "spotify": "https://open.spotify.com/episode/1OMottuenpheykC1dMgjxN" + }, + "href": "https://api.spotify.com/v1/chapters/1OMottuenpheykC1dMgjxN" + }], + "limit": 50, + "next": null, + "offset": 0, + "previous": null, + "total": 33 + }, + "copyrights": [], + "description": "Author(s): Blake Pierce\nNarrator(s): Abigail Reno\n\n

“A MASTERPIECE OF THRILLER AND MYSTERY. Blake Pierce did a magnificent job developing characters with a psychological side so well described that we feel inside their minds, follow their fears and cheer for their success. Full of twists, this book will keep you awake until the turn of the last page.”

--Books and Movie Reviews, Roberto Mattos (re Once Gone)


GIRL, ALONE (An Ella Dark FBI Suspense Thriller—Book 1) is the debut novel in a long-anticipated new series by #1 bestseller and USA Today bestselling author Blake Pierce, whose bestseller Once Gone (a free download) has received over 1,000 five star reviews.


FBI Agent Ella Dark, 29, is given her big chance to achieve her life’s dream: to join the Behavorial Crimes Unit. Ella has a hidden obsession: she has studied serial killers from the time she could read, devastated by the murder of her own sister. With her photographic memory, she has obtained an encyclopedic knowledge of every serial killer, every victim and every case. Singled out for her brilliant mind, Ella is invited to join the big leagues.


But when a killer strikes in the swamps of Louisiana, Ella soon comes to learn that the real thing is nothing she could expect. Face to face with a real murder, a real killer, and a real ticking clock, Ella realizes she can’t rely on her knowledge. She must learn to trust her instinct, and allow herself to enter the dark canals of a real killer’s mind. If she gets it wrong, her career is at stake.


And so is the next victim’s life.


Will Ella’s talent be an asset? Or the source of her downfall?


A page-turning and harrowing crime thriller featuring a brilliant and tortured FBI agent, the ELLA DARK series is a riveting mystery, packed with suspense, twists and turns, revelations, and driven by a breakneck pace that will keep you flipping pages late into the night.

", + "edition": "Unabridged", + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/show/19Xw49IjNbOCCoebfy3qA9" + }, + "href": "https://api.spotify.com/v1/audiobooks/19Xw49IjNbOCCoebfy3qA9", + "html_description": "Author(s): Blake Pierce
Narrator(s): Abigail Reno
<p>“A MASTERPIECE OF THRILLER AND MYSTERY. Blake Pierce did a magnificent job developing characters with a psychological side so well described that we feel inside their minds, follow their fears and cheer for their success. Full of twists, this book will keep you awake until the turn of the last page.”</p><p>--Books and Movie Reviews, Roberto Mattos (re Once Gone)</p><p><br></p><p>GIRL, ALONE (An Ella Dark FBI Suspense Thriller—Book 1) is the debut novel in a long-anticipated new series by #1 bestseller and USA Today bestselling author Blake Pierce, whose bestseller Once Gone (a free download) has received over 1,000 five star reviews.</p><p><br></p><p>FBI Agent Ella Dark, 29, is given her big chance to achieve her life’s dream: to join the Behavorial Crimes Unit. Ella has a hidden obsession: she has studied serial killers from the time she could read, devastated by the murder of her own sister. With her photographic memory, she has obtained an encyclopedic knowledge of every serial killer, every victim and every case. Singled out for her brilliant mind, Ella is invited to join the big leagues.</p><p><br></p><p>But when a killer strikes in the swamps of Louisiana, Ella soon comes to learn that the real thing is nothing she could expect. Face to face with a real murder, a real killer, and a real ticking clock, Ella realizes she can’t rely on her knowledge. She must learn to trust her instinct, and allow herself to enter the dark canals of a real killer’s mind. If she gets it wrong, her career is at stake.</p><p><br></p><p>And so is the next victim’s life.</p><p><br></p><p>Will Ella’s talent be an asset? Or the source of her downfall?</p><p><br></p><p>A page-turning and harrowing crime thriller featuring a brilliant and tortured FBI agent, the ELLA DARK series is a riveting mystery, packed with suspense, twists and turns, revelations, and driven by a breakneck pace that will keep you flipping pages late into the night.</p>", + "id": "19Xw49IjNbOCCoebfy3qA9", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": ["English"], + "media_type": "audio", + "name": "Girl, Alone (An Ella Dark FBI Suspense Thriller—Book 1): 01", + "narrators": [{ + "name": "Abigail Reno" + }], + "publisher": "Lukeman Literary Management", + "total_chapters": 33, + "type": "audiobook", + "uri": "spotify:show:19Xw49IjNbOCCoebfy3qA9" + }; +} diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/data/validAudiobookChapters.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validAudiobookChapters.ts new file mode 100644 index 0000000..c8a5c01 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validAudiobookChapters.ts @@ -0,0 +1,731 @@ +export function validAudiobookChapters() { + return { + "href": "https://api.spotify.com/v1/audiobooks/19Xw49IjNbOCCoebfy3qA9/chapters", + "items": [{ + "id": "1T07H2V5GwrpPNAH6032ES", + "description": "", + "chapter_number": 0, + "duration_ms": 13000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Opening Credits", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:1T07H2V5GwrpPNAH6032ES", + "external_urls": { + "spotify": "https://open.spotify.com/episode/1T07H2V5GwrpPNAH6032ES" + }, + "href": "https://api.spotify.com/v1/chapters/1T07H2V5GwrpPNAH6032ES" + }, { + "id": "0rbIxlxueTO1Wg5mGCT77s", + "description": "", + "chapter_number": 1, + "duration_ms": 696000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Prologue", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:0rbIxlxueTO1Wg5mGCT77s", + "external_urls": { + "spotify": "https://open.spotify.com/episode/0rbIxlxueTO1Wg5mGCT77s" + }, + "href": "https://api.spotify.com/v1/chapters/0rbIxlxueTO1Wg5mGCT77s" + }, { + "id": "5TuUcQWzecVJhKgLMZotv7", + "description": "", + "chapter_number": 2, + "duration_ms": 966000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 1", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:5TuUcQWzecVJhKgLMZotv7", + "external_urls": { + "spotify": "https://open.spotify.com/episode/5TuUcQWzecVJhKgLMZotv7" + }, + "href": "https://api.spotify.com/v1/chapters/5TuUcQWzecVJhKgLMZotv7" + }, { + "id": "3bPxArIDWFcncv1aR4JAPp", + "description": "", + "chapter_number": 3, + "duration_ms": 811000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 2", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:3bPxArIDWFcncv1aR4JAPp", + "external_urls": { + "spotify": "https://open.spotify.com/episode/3bPxArIDWFcncv1aR4JAPp" + }, + "href": "https://api.spotify.com/v1/chapters/3bPxArIDWFcncv1aR4JAPp" + }, { + "id": "6qADFIBqbuM6aJ1YgtLLZm", + "description": "", + "chapter_number": 4, + "duration_ms": 951000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 3", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:6qADFIBqbuM6aJ1YgtLLZm", + "external_urls": { + "spotify": "https://open.spotify.com/episode/6qADFIBqbuM6aJ1YgtLLZm" + }, + "href": "https://api.spotify.com/v1/chapters/6qADFIBqbuM6aJ1YgtLLZm" + }, { + "id": "1Jo0neduDYe1Ya9ql97g4a", + "description": "", + "chapter_number": 5, + "duration_ms": 1540000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 4", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:1Jo0neduDYe1Ya9ql97g4a", + "external_urls": { + "spotify": "https://open.spotify.com/episode/1Jo0neduDYe1Ya9ql97g4a" + }, + "href": "https://api.spotify.com/v1/chapters/1Jo0neduDYe1Ya9ql97g4a" + }, { + "id": "3ecwzcJTImiGyGhzmSumI7", + "description": "", + "chapter_number": 6, + "duration_ms": 699000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 5", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:3ecwzcJTImiGyGhzmSumI7", + "external_urls": { + "spotify": "https://open.spotify.com/episode/3ecwzcJTImiGyGhzmSumI7" + }, + "href": "https://api.spotify.com/v1/chapters/3ecwzcJTImiGyGhzmSumI7" + }, { + "id": "4HsRzyXsJVoBUvR4Xt82oX", + "description": "", + "chapter_number": 7, + "duration_ms": 1172000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 6", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:4HsRzyXsJVoBUvR4Xt82oX", + "external_urls": { + "spotify": "https://open.spotify.com/episode/4HsRzyXsJVoBUvR4Xt82oX" + }, + "href": "https://api.spotify.com/v1/chapters/4HsRzyXsJVoBUvR4Xt82oX" + }, { + "id": "4pVdMPSp3T7JIipZZPWiPX", + "description": "", + "chapter_number": 8, + "duration_ms": 1213000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 7", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:4pVdMPSp3T7JIipZZPWiPX", + "external_urls": { + "spotify": "https://open.spotify.com/episode/4pVdMPSp3T7JIipZZPWiPX" + }, + "href": "https://api.spotify.com/v1/chapters/4pVdMPSp3T7JIipZZPWiPX" + }, { + "id": "4BpnfoAKO1wODOcvpuhCLW", + "description": "", + "chapter_number": 9, + "duration_ms": 583433, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 8", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:4BpnfoAKO1wODOcvpuhCLW", + "external_urls": { + "spotify": "https://open.spotify.com/episode/4BpnfoAKO1wODOcvpuhCLW" + }, + "href": "https://api.spotify.com/v1/chapters/4BpnfoAKO1wODOcvpuhCLW" + }, { + "id": "0SbolrnxD934rE47mijXdM", + "description": "", + "chapter_number": 10, + "duration_ms": 1279000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 9", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:0SbolrnxD934rE47mijXdM", + "external_urls": { + "spotify": "https://open.spotify.com/episode/0SbolrnxD934rE47mijXdM" + }, + "href": "https://api.spotify.com/v1/chapters/0SbolrnxD934rE47mijXdM" + }, { + "id": "650UdN6gdWlGxaAWHIdu5l", + "description": "", + "chapter_number": 11, + "duration_ms": 834155, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 10", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:650UdN6gdWlGxaAWHIdu5l", + "external_urls": { + "spotify": "https://open.spotify.com/episode/650UdN6gdWlGxaAWHIdu5l" + }, + "href": "https://api.spotify.com/v1/chapters/650UdN6gdWlGxaAWHIdu5l" + }, { + "id": "6HoTgp3boToVtepTPBi65O", + "description": "", + "chapter_number": 12, + "duration_ms": 1196191, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 11", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:6HoTgp3boToVtepTPBi65O", + "external_urls": { + "spotify": "https://open.spotify.com/episode/6HoTgp3boToVtepTPBi65O" + }, + "href": "https://api.spotify.com/v1/chapters/6HoTgp3boToVtepTPBi65O" + }, { + "id": "2kIY4BbG6Maihn3RHaxZFv", + "description": "", + "chapter_number": 13, + "duration_ms": 1745000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 12", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:2kIY4BbG6Maihn3RHaxZFv", + "external_urls": { + "spotify": "https://open.spotify.com/episode/2kIY4BbG6Maihn3RHaxZFv" + }, + "href": "https://api.spotify.com/v1/chapters/2kIY4BbG6Maihn3RHaxZFv" + }, { + "id": "3FGE2fCCy1k1GraIZYwzAO", + "description": "", + "chapter_number": 14, + "duration_ms": 988170, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 13", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:3FGE2fCCy1k1GraIZYwzAO", + "external_urls": { + "spotify": "https://open.spotify.com/episode/3FGE2fCCy1k1GraIZYwzAO" + }, + "href": "https://api.spotify.com/v1/chapters/3FGE2fCCy1k1GraIZYwzAO" + }, { + "id": "3RHUQSE95qnc90dNYsqkeV", + "description": "", + "chapter_number": 15, + "duration_ms": 711708, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 14", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:3RHUQSE95qnc90dNYsqkeV", + "external_urls": { + "spotify": "https://open.spotify.com/episode/3RHUQSE95qnc90dNYsqkeV" + }, + "href": "https://api.spotify.com/v1/chapters/3RHUQSE95qnc90dNYsqkeV" + }, { + "id": "6rxsGtyNPxfuQ7PhGsSMsd", + "description": "", + "chapter_number": 16, + "duration_ms": 1990560, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 15", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:6rxsGtyNPxfuQ7PhGsSMsd", + "external_urls": { + "spotify": "https://open.spotify.com/episode/6rxsGtyNPxfuQ7PhGsSMsd" + }, + "href": "https://api.spotify.com/v1/chapters/6rxsGtyNPxfuQ7PhGsSMsd" + }, { + "id": "4VQ8xRmrw4tMDZT2UeHTAg", + "description": "", + "chapter_number": 17, + "duration_ms": 1146505, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 16", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:4VQ8xRmrw4tMDZT2UeHTAg", + "external_urls": { + "spotify": "https://open.spotify.com/episode/4VQ8xRmrw4tMDZT2UeHTAg" + }, + "href": "https://api.spotify.com/v1/chapters/4VQ8xRmrw4tMDZT2UeHTAg" + }, { + "id": "1NIeTrmcAl4sycqmBJ2FdV", + "description": "", + "chapter_number": 18, + "duration_ms": 1230000, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 17", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:1NIeTrmcAl4sycqmBJ2FdV", + "external_urls": { + "spotify": "https://open.spotify.com/episode/1NIeTrmcAl4sycqmBJ2FdV" + }, + "href": "https://api.spotify.com/v1/chapters/1NIeTrmcAl4sycqmBJ2FdV" + }, { + "id": "6uToEJSGlinLBXoTKUT5ZY", + "description": "", + "chapter_number": 19, + "duration_ms": 939956, + "explicit": false, + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + }], + "languages": [""], + "name": "Chapter 18", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "html_description": "", + "available_markets": ["AU", "ET", "GB", "IE", "NZ", "US"], + "type": "chapter", + "uri": "spotify:episode:6uToEJSGlinLBXoTKUT5ZY", + "external_urls": { + "spotify": "https://open.spotify.com/episode/6uToEJSGlinLBXoTKUT5ZY" + }, + "href": "https://api.spotify.com/v1/chapters/6uToEJSGlinLBXoTKUT5ZY" + }], + "limit": 20, + "next": null, + "offset": 0, + "previous": null, + "total": 33 + } +} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/data/validCategories.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validCategories.ts new file mode 100644 index 0000000..027d855 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validCategories.ts @@ -0,0 +1,254 @@ +export function validCategories() { + return { + "categories":{ + "href":"https://api.spotify.com/v1/browse/categories?country=GB&offset=0&limit=20", + "items":[ + { + "href":"https://api.spotify.com/v1/browse/categories/toplists", + "icons":[ + { + "height":275, + "url":"https://t.scdn.co/media/derived/toplists_11160599e6a04ac5d6f2757f5511778f_0_0_275_275.jpg", + "width":275 + } + ], + "id":"toplists", + "name":"Top Lists" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFLVaM30PMBm4", + "icons":[ + { + "height":null, + "url":"https://t.scdn.co/images/8e508d7eb5b843a89c368c9507ecc429.jpeg", + "width":null + } + ], + "id":"0JQ5DAqbMKFLVaM30PMBm4", + "name":"Summer" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFEC4WFtoNRpw", + "icons":[ + { + "height":274, + "url":"https://t.scdn.co/media/derived/pop-274x274_447148649685019f5e2a03a39e78ba52_0_0_274_274.jpg", + "width":274 + } + ], + "id":"0JQ5DAqbMKFEC4WFtoNRpw", + "name":"Pop" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFAXlCG6QvYQ4", + "icons":[ + { + "height":null, + "url":"https://t.scdn.co/media/links/workout-274x274.jpg", + "width":null + } + ], + "id":"0JQ5DAqbMKFAXlCG6QvYQ4", + "name":"Workout" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFQ00XGBls6ym", + "icons":[ + { + "height":274, + "url":"https://t.scdn.co/media/original/hip-274_0a661854d61e29eace5fe63f73495e68_274x274.jpg", + "width":274 + } + ], + "id":"0JQ5DAqbMKFQ00XGBls6ym", + "name":"Hip-Hop" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFzHmL4tf05da", + "icons":[ + { + "height":274, + "url":"https://t.scdn.co/media/original/mood-274x274_976986a31ac8c49794cbdc7246fd5ad7_274x274.jpg", + "width":274 + } + ], + "id":"0JQ5DAqbMKFzHmL4tf05da", + "name":"Mood" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFA6SOHvT3gck", + "icons":[ + { + "height":null, + "url":"https://t.scdn.co/images/fada056dcfd54cd28faf80d62b7059c6.jpeg", + "width":null + } + ], + "id":"0JQ5DAqbMKFA6SOHvT3gck", + "name":"Party" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFF1br7dZcRtK", + "icons":[ + { + "height":null, + "url":"https://t.scdn.co/images/c5495b9f0f694ffcb39c9217d4ed4375", + "width":null + } + ], + "id":"0JQ5DAqbMKFF1br7dZcRtK", + "name":"Pride" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFHOzuVTgTizF", + "icons":[ + { + "height":274, + "url":"https://t.scdn.co/media/derived/edm-274x274_0ef612604200a9c14995432994455a6d_0_0_274_274.jpg", + "width":274 + } + ], + "id":"0JQ5DAqbMKFHOzuVTgTizF", + "name":"Dance/Electronic" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFFtlLYUHv8bT", + "icons":[ + { + "height":null, + "url":"https://t.scdn.co/images/ee9451b3ed474c82b1da8f9b5eafc88f.jpeg", + "width":null + } + ], + "id":"0JQ5DAqbMKFFtlLYUHv8bT", + "name":"Alternative" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFCWjUTdzaG0e", + "icons":[ + { + "height":null, + "url":"https://t.scdn.co/images/fe06caf056474bc58862591cd60b57fc.jpeg", + "width":null + } + ], + "id":"0JQ5DAqbMKFCWjUTdzaG0e", + "name":"Indie" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFPw634sFwguI", + "icons":[ + { + "height":null, + "url":"https://t.scdn.co/images/084155aeaa724ea1bd393a017d67b709", + "width":null + } + ], + "id":"0JQ5DAqbMKFPw634sFwguI", + "name":"EQUAL" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFLb2EqgLtpjC", + "icons":[ + { + "height":null, + "url":"https://t.scdn.co/images/3710b68657574bc79df14bd74629e5ac", + "width":null + } + ], + "id":"0JQ5DAqbMKFLb2EqgLtpjC", + "name":"Wellness" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFDXXwE9BDJAr", + "icons":[ + { + "height":274, + "url":"https://t.scdn.co/media/derived/rock_9ce79e0a4ef901bbd10494f5b855d3cc_0_0_274_274.jpg", + "width":274 + } + ], + "id":"0JQ5DAqbMKFDXXwE9BDJAr", + "name":"Rock" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFF9bY76LXmfI", + "icons":[ + { + "height":null, + "url":"https://t.scdn.co/images/cad629fb65a14de4beddb38510e27cb1", + "width":null + } + ], + "id":"0JQ5DAqbMKFF9bY76LXmfI", + "name":"Frequency" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFEZPnFQSFB1T", + "icons":[ + { + "height":274, + "url":"https://t.scdn.co/media/derived/r-b-274x274_fd56efa72f4f63764b011b68121581d8_0_0_274_274.jpg", + "width":274 + } + ], + "id":"0JQ5DAqbMKFEZPnFQSFB1T", + "name":"R&B" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFN2GMExExvrS", + "icons":[ + { + "height":null, + "url":"https://t.scdn.co/images/448949e524284cea9aedbf32aa69d90f.jpeg", + "width":null + } + ], + "id":"0JQ5DAqbMKFN2GMExExvrS", + "name":"Throwback" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFx0uLQR2okcc", + "icons":[ + { + "height":null, + "url":"https://t.scdn.co/images/04da469dd7be4dab96659aa1fa9f0ac9.jpeg", + "width":null + } + ], + "id":"0JQ5DAqbMKFx0uLQR2okcc", + "name":"At Home" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFCfObibaOZbv", + "icons":[ + { + "height":null, + "url":"https://t.scdn.co/images/0d39395309ba47838ef12ce987f19d16.jpeg", + "width":null + } + ], + "id":"0JQ5DAqbMKFCfObibaOZbv", + "name":"Gaming" + }, + { + "href":"https://api.spotify.com/v1/browse/categories/0JQ5DAqbMKFOOxftoKZxod", + "icons":[ + { + "height":null, + "url":"https://t.scdn.co/images/c6677aa51acf4121b66b9d1f231bd427.png", + "width":null + } + ], + "id":"0JQ5DAqbMKFOOxftoKZxod", + "name":"RADAR" + } + ], + "limit":20, + "next":"https://api.spotify.com/v1/browse/categories?country=GB&offset=20&limit=20", + "offset":0, + "previous":null, + "total":54 + } + } +} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/data/validCategory.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validCategory.ts new file mode 100644 index 0000000..b3a710a --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validCategory.ts @@ -0,0 +1,9 @@ +export function validCategory() { + return { href: 'https://api.spotify.com/v1/browse/categories/toplists', + icons: + [ { height: 275, + url: 'https://t.scdn.co/media/derived/toplists_11160599e6a04ac5d6f2757f5511778f_0_0_275_275.jpg', + width: 275 } ], + id: 'toplists', + name: 'Top Lists' } +} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/data/validChapterApiResponse.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validChapterApiResponse.ts new file mode 100644 index 0000000..09fa4a6 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validChapterApiResponse.ts @@ -0,0 +1,109 @@ +export function validAudiobookChapterResponse() { + return { + "restrictions": { + "reason": "payment_required" + }, + "id": "1T07H2V5GwrpPNAH6032ES", + "description": "", + "chapter_number": 0, + "duration_ms": 13000, + "explicit": false, + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + } + ], + "languages": [ + "" + ], + "name": "Opening Credits", + "audio_preview_url": null, + "release_date": "0000-01-01", + "release_date_precision": "day", + "resume_point": { + "fully_played": false, + "resume_position_ms": 0 + }, + "is_playable": false, + "html_description": "", + "audiobook": { + "authors": [ + { + "name": "Blake Pierce" + } + ], + "chapters": { + "href": null, + "items": [ + + ], + "limit": 0, + "next": null, + "offset": 0, + "previous": null, + "total": null + }, + "copyrights": [ + + ], + "description": "Author(s): Blake Pierce\nNarrator(s): Abigail Reno\n\n

“A MASTERPIECE OF THRILLER AND MYSTERY. Blake Pierce did a magnificent job developing characters with a psychological side so well described that we feel inside their minds, follow their fears and cheer for their success. Full of twists, this book will keep you awake until the turn of the last page.”

--Books and Movie Reviews, Roberto Mattos (re Once Gone)


GIRL, ALONE (An Ella Dark FBI Suspense Thriller—Book 1) is the debut novel in a long-anticipated new series by #1 bestseller and USA Today bestselling author Blake Pierce, whose bestseller Once Gone (a free download) has received over 1,000 five star reviews.


FBI Agent Ella Dark, 29, is given her big chance to achieve her life’s dream: to join the Behavorial Crimes Unit. Ella has a hidden obsession: she has studied serial killers from the time she could read, devastated by the murder of her own sister. With her photographic memory, she has obtained an encyclopedic knowledge of every serial killer, every victim and every case. Singled out for her brilliant mind, Ella is invited to join the big leagues.


But when a killer strikes in the swamps of Louisiana, Ella soon comes to learn that the real thing is nothing she could expect. Face to face with a real murder, a real killer, and a real ticking clock, Ella realizes she can’t rely on her knowledge. She must learn to trust her instinct, and allow herself to enter the dark canals of a real killer’s mind. If she gets it wrong, her career is at stake.


And so is the next victim’s life.


Will Ella’s talent be an asset? Or the source of her downfall?


A page-turning and harrowing crime thriller featuring a brilliant and tortured FBI agent, the ELLA DARK series is a riveting mystery, packed with suspense, twists and turns, revelations, and driven by a breakneck pace that will keep you flipping pages late into the night.

", + "edition": null, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/show/19Xw49IjNbOCCoebfy3qA9" + }, + "href": "https://api.spotify.com/v1/audiobooks/19Xw49IjNbOCCoebfy3qA9", + "html_description": "Author(s): Blake Pierce
Narrator(s): Abigail Reno
<p>“A MASTERPIECE OF THRILLER AND MYSTERY. Blake Pierce did a magnificent job developing characters with a psychological side so well described that we feel inside their minds, follow their fears and cheer for their success. Full of twists, this book will keep you awake until the turn of the last page.”</p><p>--Books and Movie Reviews, Roberto Mattos (re Once Gone)</p><p><br></p><p>GIRL, ALONE (An Ella Dark FBI Suspense Thriller—Book 1) is the debut novel in a long-anticipated new series by #1 bestseller and USA Today bestselling author Blake Pierce, whose bestseller Once Gone (a free download) has received over 1,000 five star reviews.</p><p><br></p><p>FBI Agent Ella Dark, 29, is given her big chance to achieve her life’s dream: to join the Behavorial Crimes Unit. Ella has a hidden obsession: she has studied serial killers from the time she could read, devastated by the murder of her own sister. With her photographic memory, she has obtained an encyclopedic knowledge of every serial killer, every victim and every case. Singled out for her brilliant mind, Ella is invited to join the big leagues.</p><p><br></p><p>But when a killer strikes in the swamps of Louisiana, Ella soon comes to learn that the real thing is nothing she could expect. Face to face with a real murder, a real killer, and a real ticking clock, Ella realizes she can’t rely on her knowledge. She must learn to trust her instinct, and allow herself to enter the dark canals of a real killer’s mind. If she gets it wrong, her career is at stake.</p><p><br></p><p>And so is the next victim’s life.</p><p><br></p><p>Will Ella’s talent be an asset? Or the source of her downfall?</p><p><br></p><p>A page-turning and harrowing crime thriller featuring a brilliant and tortured FBI agent, the ELLA DARK series is a riveting mystery, packed with suspense, twists and turns, revelations, and driven by a breakneck pace that will keep you flipping pages late into the night.</p>", + "id": "19Xw49IjNbOCCoebfy3qA9", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab676663000022a8f0722f9b6390ed3420e6f0a0", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab6766630000db5bf0722f9b6390ed3420e6f0a0", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6766630000703bf0722f9b6390ed3420e6f0a0", + "width": 64 + } + ], + "languages": [ + "English" + ], + "media_type": "audio", + "name": "Girl, Alone (An Ella Dark FBI Suspense Thriller—Book 1): 01", + "narrators": [ + { + "name": "Abigail Reno" + } + ], + "publisher": "Lukeman Literary Management", + "total_chapters": null, + "type": "audiobook", + "uri": "spotify:show:19Xw49IjNbOCCoebfy3qA9" + }, + "type": "chapter", + "uri": "spotify:episode:1T07H2V5GwrpPNAH6032ES", + "external_urls": { + "spotify": "https://open.spotify.com/episode/1T07H2V5GwrpPNAH6032ES" + }, + "href": "https://api.spotify.com/v1/chapters/1T07H2V5GwrpPNAH6032ES" + } +} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/data/validEpisode.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validEpisode.ts new file mode 100644 index 0000000..bbb4b33 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validEpisode.ts @@ -0,0 +1,242 @@ +export function validEpisode() { + return { + audio_preview_url: "https://podz-content.spotifycdn.com/audio/clips/36PjxCpLUHcAbd49fqxOW1/clip_402900_446200.mp3", + description: 'Covid-19 hasn’t gone away and, due to travel restrictions, neither has Louis Theroux. In the second outing of his podcast series, he tracks down more high-profile guests he’s been longing to talk to - a fascinating mix of the celebrated, the controversial and the mysterious. In the last episode of the series, Louis catches up with actor, writer and director Justin Theroux - who also happens to be Louis\'s cousin. With Justin in Mexico and Louis in Texas, they discuss family holidays in Cape Cod, ADHD and the perils of fighting with rocks. . Producer: Sara Jane Hall Assistant Producer: Molly Schneider A Mindhouse production for BBC Radio 4', + duration_ms: 4259474, + explicit: true, + external_urls: { spotify: 'https://open.spotify.com/episode/0I8z8uyoJ03X6SiLDo0h96' }, + href: 'https://api.spotify.com/v1/episodes/0I8z8uyoJ03X6SiLDo0h96', + html_description: 'Covid-19 hasn’t gone away and, due to travel restrictions, neither has Louis Theroux. In the second outing of his podcast series, he tracks down more high-profile guests he’s been longing to talk to - a fascinating mix of the celebrated, the controversial and the mysterious.

In the last episode of the series, Louis catches up with actor, writer and director Justin Theroux - who also happens to be Louis's cousin. With Justin in Mexico and Louis in Texas, they discuss family holidays in Cape Cod, ADHD and the perils of fighting with rocks. .
Producer: Sara Jane Hall
Assistant Producer: Molly Schneider
A Mindhouse production for BBC Radio 4', + id: '0I8z8uyoJ03X6SiLDo0h96', + images: + [{ + height: 640, + url: 'https://i.scdn.co/image/ab6765630000ba8adeffb326939c9ca192a0f289', + width: 640 + }, + { + height: 300, + url: 'https://i.scdn.co/image/ab67656300005f1fdeffb326939c9ca192a0f289', + width: 300 + }, + { + height: 64, + url: 'https://i.scdn.co/image/ab6765630000f68ddeffb326939c9ca192a0f289', + width: 64 + }], + is_externally_hosted: true, + is_playable: true, + language: 'en', + languages: ['en'], + name: '20. Justin Theroux', + release_date: '2021-02-01', + release_date_precision: 'day', + show: + { + available_markets: + ["AD", + "AE", + "AG", + "AL", + "AM", + "AO", + "AR", + "AT", + "AU", + "AZ", + "BA", + "BB", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BN", + "BO", + "BR", + "BS", + "BT", + "BW", + "BZ", + "CA", + "CH", + "CI", + "CL", + "CM", + "CO", + "CR", + "CV", + "CW", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "ES", + "FI", + "FJ", + "FM", + "FR", + "GA", + "GB", + "GD", + "GE", + "GH", + "GM", + "GN", + "GQ", + "GR", + "GT", + "GW", + "GY", + "HK", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IN", + "IS", + "IT", + "JM", + "JO", + "JP", + "KE", + "KH", + "KI", + "KM", + "KN", + "KR", + "KW", + "LA", + "LB", + "LC", + "LI", + "LR", + "LS", + "LT", + "LU", + "LV", + "MA", + "MC", + "ME", + "MG", + "MH", + "MK", + "ML", + "MN", + "MO", + "MR", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NE", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NZ", + "OM", + "PA", + "PE", + "PG", + "PH", + "PL", + "PS", + "PT", + "PW", + "PY", + "QA", + "RO", + "RS", + "RW", + "SA", + "SB", + "SC", + "SE", + "SG", + "SI", + "SK", + "SL", + "SM", + "SN", + "SR", + "ST", + "SV", + "SZ", + "TD", + "TG", + "TH", + "TL", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "US", + "UY", + "UZ", + "VC", + "VN", + "VU", + "WS", + "XK", + "ZA", + "ZM", + "ZW", + ], + copyrights: [], + description: 'Stuck at home, Louis is using the lockdown to track down some high-profile people he\'s been longing to talk to - from all walks of life and on both sides of the Atlantic.', + explicit: false, + external_urls: { spotify: 'https://open.spotify.com/show/4mCovOfuUDnEju95HXGD8o' }, + href: 'https://api.spotify.com/v1/shows/4mCovOfuUDnEju95HXGD8o', + html_description: 'Stuck at home, Louis is using the lockdown to track down some high-profile people he's been longing to talk to - from all walks of life and on both sides of the Atlantic.', + id: '4mCovOfuUDnEju95HXGD8o', + images: + [{ + height: 640, + url: 'https://i.scdn.co/image/ab6765630000ba8adeffb326939c9ca192a0f289', + width: 640 + }, + { + height: 300, + url: 'https://i.scdn.co/image/ab67656300005f1fdeffb326939c9ca192a0f289', + width: 300 + }, + { + height: 64, + url: 'https://i.scdn.co/image/ab6765630000f68ddeffb326939c9ca192a0f289', + width: 64 + }], + is_externally_hosted: true, + languages: ['en'], + media_type: 'audio', + name: 'Grounded with Louis Theroux', + publisher: 'BBC Radio 4', + total_episodes: 22, + type: 'show', + uri: 'spotify:show:4mCovOfuUDnEju95HXGD8o' + }, + type: 'episode', + uri: 'spotify:episode:0I8z8uyoJ03X6SiLDo0h96' + } +} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/data/validGenres.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validGenres.ts new file mode 100644 index 0000000..556d3d3 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validGenres.ts @@ -0,0 +1,132 @@ +export function validGenres() { + return { + "genres": [ + "acoustic", + "afrobeat", + "alt-rock", + "alternative", + "ambient", + "anime", + "black-metal", + "bluegrass", + "blues", + "bossanova", + "brazil", + "breakbeat", + "british", + "cantopop", + "chicago-house", + "children", + "chill", + "classical", + "club", + "comedy", + "country", + "dance", + "dancehall", + "death-metal", + "deep-house", + "detroit-techno", + "disco", + "disney", + "drum-and-bass", + "dub", + "dubstep", + "edm", + "electro", + "electronic", + "emo", + "folk", + "forro", + "french", + "funk", + "garage", + "german", + "gospel", + "goth", + "grindcore", + "groove", + "grunge", + "guitar", + "happy", + "hard-rock", + "hardcore", + "hardstyle", + "heavy-metal", + "hip-hop", + "holidays", + "honky-tonk", + "house", + "idm", + "indian", + "indie", + "indie-pop", + "industrial", + "iranian", + "j-dance", + "j-idol", + "j-pop", + "j-rock", + "jazz", + "k-pop", + "kids", + "latin", + "latino", + "malay", + "mandopop", + "metal", + "metal-misc", + "metalcore", + "minimal-techno", + "movies", + "mpb", + "new-age", + "new-release", + "opera", + "pagode", + "party", + "philippines-opm", + "piano", + "pop", + "pop-film", + "post-dubstep", + "power-pop", + "progressive-house", + "psych-rock", + "punk", + "punk-rock", + "r-n-b", + "rainy-day", + "reggae", + "reggaeton", + "road-trip", + "rock", + "rock-n-roll", + "rockabilly", + "romance", + "sad", + "salsa", + "samba", + "sertanejo", + "show-tunes", + "singer-songwriter", + "ska", + "sleep", + "songwriter", + "soul", + "soundtracks", + "spanish", + "study", + "summer", + "swedish", + "synth-pop", + "tango", + "techno", + "trance", + "trip-hop", + "turkish", + "work-out", + "world-music", + ] + } +} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/data/validMarkets.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validMarkets.ts new file mode 100644 index 0000000..ddad94a --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validMarkets.ts @@ -0,0 +1,190 @@ +export function validMarkets() { + return { + "markets": [ + "AD", + "AE", + "AG", + "AL", + "AM", + "AO", + "AR", + "AT", + "AU", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BN", + "BO", + "BR", + "BS", + "BT", + "BW", + "BY", + "BZ", + "CA", + "CD", + "CG", + "CH", + "CI", + "CL", + "CM", + "CO", + "CR", + "CV", + "CW", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "ES", + "ET", + "FI", + "FJ", + "FM", + "FR", + "GA", + "GB", + "GD", + "GE", + "GH", + "GM", + "GN", + "GQ", + "GR", + "GT", + "GW", + "GY", + "HK", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IN", + "IQ", + "IS", + "IT", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KR", + "KW", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MG", + "MH", + "MK", + "ML", + "MN", + "MO", + "MR", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NE", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NZ", + "OM", + "PA", + "PE", + "PG", + "PH", + "PK", + "PL", + "PS", + "PT", + "PW", + "PY", + "QA", + "RO", + "RS", + "RW", + "SA", + "SB", + "SC", + "SE", + "SG", + "SI", + "SK", + "SL", + "SM", + "SN", + "SR", + "ST", + "SV", + "SZ", + "TD", + "TG", + "TH", + "TJ", + "TL", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "US", + "UY", + "UZ", + "VC", + "VE", + "VN", + "VU", + "WS", + "XK", + "ZA", + "ZM", + "ZW" + ] + } +} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/data/validPlaylist.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validPlaylist.ts new file mode 100644 index 0000000..1295b62 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validPlaylist.ts @@ -0,0 +1,6856 @@ +export function validPlaylist() { + return { + "collaborative": false, + "description": "Metalcore at its finest. Cover: The Plot In You", + "external_urls": { + "spotify": "https://open.spotify.com/playlist/37i9dQZF1DWXIcbzpLauPS" + }, + "followers": { + "href": null, + "total": 874446 + }, + "href": "https://api.spotify.com/v1/playlists/37i9dQZF1DWXIcbzpLauPS", + "id": "37i9dQZF1DWXIcbzpLauPS", + "images": [{ + "height": null, + "url": "https://i.scdn.co/image/ab67706f0000000314cb3a01a01600d41c954b24", + "width": null + }], + "name": "The Core", + "owner": { + "display_name": "Spotify", + "external_urls": { + "spotify": "https://open.spotify.com/user/spotify" + }, + "href": "https://api.spotify.com/v1/users/spotify", + "id": "spotify", + "type": "user", + "uri": "spotify:user:spotify" + }, + "primary_color": "#FFFFFF", + "public": true, + "snapshot_id": "MTY3ODQyNjc1MSwwMDAwMDAwMDY1M2Y3ZjZhYTQyNjE5NmYzZWEwMGI2YTI4NmUwZGY2", + "tracks": { + "href": "https://api.spotify.com/v1/playlists/37i9dQZF1DWXIcbzpLauPS/tracks?offset=0&limit=100&locale=*", + "items": [{ + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/1cJ5tVoeAEFcZBAwSZ0CtF" + }, + "href": "https://api.spotify.com/v1/artists/1cJ5tVoeAEFcZBAwSZ0CtF", + "id": "1cJ5tVoeAEFcZBAwSZ0CtF", + "name": "The Plot In You", + "type": "artist", + "uri": "spotify:artist:1cJ5tVoeAEFcZBAwSZ0CtF" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/2efABZ7jsJTkRkZALraqEM" + }, + "href": "https://api.spotify.com/v1/albums/2efABZ7jsJTkRkZALraqEM", + "id": "2efABZ7jsJTkRkZALraqEM", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273d5ed54d7e37d4dd456ec28f1", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02d5ed54d7e37d4dd456ec28f1", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851d5ed54d7e37d4dd456ec28f1", + "width": 64 + }], + "is_playable": true, + "name": "Left Behind", + "release_date": "2023-02-08", + "release_date_precision": "day", + "total_tracks": 2, + "type": "album", + "uri": "spotify:album:2efABZ7jsJTkRkZALraqEM" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/1cJ5tVoeAEFcZBAwSZ0CtF" + }, + "href": "https://api.spotify.com/v1/artists/1cJ5tVoeAEFcZBAwSZ0CtF", + "id": "1cJ5tVoeAEFcZBAwSZ0CtF", + "name": "The Plot In You", + "type": "artist", + "uri": "spotify:artist:1cJ5tVoeAEFcZBAwSZ0CtF" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 206924, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "US5262325259" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/5G6jZFDAFlpAA9v5LTV4NI" + }, + "href": "https://api.spotify.com/v1/tracks/5G6jZFDAFlpAA9v5LTV4NI", + "id": "5G6jZFDAFlpAA9v5LTV4NI", + "is_local": false, + "name": "Left Behind", + "popularity": 63, + "preview_url": null, + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:5G6jZFDAFlpAA9v5LTV4NI" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "album", + "album_type": "album", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/3Uobr6LgQpBbk6k4QGAb3V" + }, + "href": "https://api.spotify.com/v1/artists/3Uobr6LgQpBbk6k4QGAb3V", + "id": "3Uobr6LgQpBbk6k4QGAb3V", + "name": "I Prevail", + "type": "artist", + "uri": "spotify:artist:3Uobr6LgQpBbk6k4QGAb3V" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/6SjY4WK6VMFYEINGVOHzGa" + }, + "href": "https://api.spotify.com/v1/albums/6SjY4WK6VMFYEINGVOHzGa", + "id": "6SjY4WK6VMFYEINGVOHzGa", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273fdf16e6dc8b69f3e7c2b258b", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02fdf16e6dc8b69f3e7c2b258b", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851fdf16e6dc8b69f3e7c2b258b", + "width": 64 + }], + "is_playable": true, + "name": "TRUE POWER", + "release_date": "2022-08-19", + "release_date_precision": "day", + "total_tracks": 15, + "type": "album", + "uri": "spotify:album:6SjY4WK6VMFYEINGVOHzGa" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/3Uobr6LgQpBbk6k4QGAb3V" + }, + "href": "https://api.spotify.com/v1/artists/3Uobr6LgQpBbk6k4QGAb3V", + "id": "3Uobr6LgQpBbk6k4QGAb3V", + "name": "I Prevail", + "type": "artist", + "uri": "spotify:artist:3Uobr6LgQpBbk6k4QGAb3V" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 234945, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "US5262224771" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/2OYtcqflvzQwh3cMPmTHs4" + }, + "href": "https://api.spotify.com/v1/tracks/2OYtcqflvzQwh3cMPmTHs4", + "id": "2OYtcqflvzQwh3cMPmTHs4", + "is_local": false, + "name": "There’s Fear In Letting Go", + "popularity": 65, + "preview_url": null, + "track": true, + "track_number": 2, + "type": "track", + "uri": "spotify:track:2OYtcqflvzQwh3cMPmTHs4" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/5pqvAI85RMxL9K0xHvSwGu" + }, + "href": "https://api.spotify.com/v1/artists/5pqvAI85RMxL9K0xHvSwGu", + "id": "5pqvAI85RMxL9K0xHvSwGu", + "name": "Currents", + "type": "artist", + "uri": "spotify:artist:5pqvAI85RMxL9K0xHvSwGu" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/7daOpSeAgyfQMEd3YbIGPZ" + }, + "href": "https://api.spotify.com/v1/albums/7daOpSeAgyfQMEd3YbIGPZ", + "id": "7daOpSeAgyfQMEd3YbIGPZ", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273f0e5b42bf1beaf304000025e", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02f0e5b42bf1beaf304000025e", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851f0e5b42bf1beaf304000025e", + "width": 64 + }], + "is_playable": true, + "name": "Remember Me", + "release_date": "2023-02-01", + "release_date_precision": "day", + "total_tracks": 3, + "type": "album", + "uri": "spotify:album:7daOpSeAgyfQMEd3YbIGPZ" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/5pqvAI85RMxL9K0xHvSwGu" + }, + "href": "https://api.spotify.com/v1/artists/5pqvAI85RMxL9K0xHvSwGu", + "id": "5pqvAI85RMxL9K0xHvSwGu", + "name": "Currents", + "type": "artist", + "uri": "spotify:artist:5pqvAI85RMxL9K0xHvSwGu" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 244254, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DED832200494" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/1xqt7wT0YY9YpP9jrTuVgG" + }, + "href": "https://api.spotify.com/v1/tracks/1xqt7wT0YY9YpP9jrTuVgG", + "id": "1xqt7wT0YY9YpP9jrTuVgG", + "is_local": false, + "name": "Remember Me", + "popularity": 61, + "preview_url": "https://p.scdn.co/mp3-preview/a7d1c1a50c2eeda31ced2bc42fcb05da82080d6b?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:1xqt7wT0YY9YpP9jrTuVgG" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2n2RSaZqBuUUukhbLlpnE6" + }, + "href": "https://api.spotify.com/v1/artists/2n2RSaZqBuUUukhbLlpnE6", + "id": "2n2RSaZqBuUUukhbLlpnE6", + "name": "Sleep Token", + "type": "artist", + "uri": "spotify:artist:2n2RSaZqBuUUukhbLlpnE6" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/42fcciBOkkvnEu8dN7mByX" + }, + "href": "https://api.spotify.com/v1/albums/42fcciBOkkvnEu8dN7mByX", + "id": "42fcciBOkkvnEu8dN7mByX", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273eb7a831300d4835a4c16f8c1", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02eb7a831300d4835a4c16f8c1", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851eb7a831300d4835a4c16f8c1", + "width": 64 + }], + "is_playable": true, + "name": "The Summoning", + "release_date": "2023-01-06", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:42fcciBOkkvnEu8dN7mByX" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2n2RSaZqBuUUukhbLlpnE6" + }, + "href": "https://api.spotify.com/v1/artists/2n2RSaZqBuUUukhbLlpnE6", + "id": "2n2RSaZqBuUUukhbLlpnE6", + "name": "Sleep Token", + "type": "artist", + "uri": "spotify:artist:2n2RSaZqBuUUukhbLlpnE6" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 395716, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "GBUM72200352" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/1yCE0X5qLWOrLkR8NC0ZUJ" + }, + "href": "https://api.spotify.com/v1/tracks/1yCE0X5qLWOrLkR8NC0ZUJ", + "id": "1yCE0X5qLWOrLkR8NC0ZUJ", + "is_local": false, + "name": "The Summoning", + "popularity": 72, + "preview_url": "https://p.scdn.co/mp3-preview/37dae98703ecc268384d30ed33045254aa4198c9?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:1yCE0X5qLWOrLkR8NC0ZUJ" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/3GzWhE2xadJiW8MqRKIVSK" + }, + "href": "https://api.spotify.com/v1/artists/3GzWhE2xadJiW8MqRKIVSK", + "id": "3GzWhE2xadJiW8MqRKIVSK", + "name": "Underoath", + "type": "artist", + "uri": "spotify:artist:3GzWhE2xadJiW8MqRKIVSK" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/0rEiAGXHPJUbsNsKP9TfkH" + }, + "href": "https://api.spotify.com/v1/albums/0rEiAGXHPJUbsNsKP9TfkH", + "id": "0rEiAGXHPJUbsNsKP9TfkH", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b27328a6fa27549a55d58ec64108", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e0228a6fa27549a55d58ec64108", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d0000485128a6fa27549a55d58ec64108", + "width": 64 + }], + "is_playable": true, + "name": "Let Go", + "release_date": "2023-03-03", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:0rEiAGXHPJUbsNsKP9TfkH" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/3GzWhE2xadJiW8MqRKIVSK" + }, + "href": "https://api.spotify.com/v1/artists/3GzWhE2xadJiW8MqRKIVSK", + "id": "3GzWhE2xadJiW8MqRKIVSK", + "name": "Underoath", + "type": "artist", + "uri": "spotify:artist:3GzWhE2xadJiW8MqRKIVSK" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 230002, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "US5ED2302825" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/2iHdiDAIYBPOqnNxVrNBYO" + }, + "href": "https://api.spotify.com/v1/tracks/2iHdiDAIYBPOqnNxVrNBYO", + "id": "2iHdiDAIYBPOqnNxVrNBYO", + "is_local": false, + "name": "Let Go", + "popularity": 53, + "preview_url": "https://p.scdn.co/mp3-preview/2110d3608273235aa40f9cdb1f7442ae7abdadb2?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:2iHdiDAIYBPOqnNxVrNBYO" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6kNKUYGn6VNGsRoXmyoDPK" + }, + "href": "https://api.spotify.com/v1/artists/6kNKUYGn6VNGsRoXmyoDPK", + "id": "6kNKUYGn6VNGsRoXmyoDPK", + "name": "The Amity Affliction", + "type": "artist", + "uri": "spotify:artist:6kNKUYGn6VNGsRoXmyoDPK" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/3R8VofbgLwq9q48eueOCqC" + }, + "href": "https://api.spotify.com/v1/albums/3R8VofbgLwq9q48eueOCqC", + "id": "3R8VofbgLwq9q48eueOCqC", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273bd698fde531754890e1fbfd8", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02bd698fde531754890e1fbfd8", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851bd698fde531754890e1fbfd8", + "width": 64 + }], + "is_playable": true, + "name": "I See Dead People", + "release_date": "2023-02-13", + "release_date_precision": "day", + "total_tracks": 2, + "type": "album", + "uri": "spotify:album:3R8VofbgLwq9q48eueOCqC" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6kNKUYGn6VNGsRoXmyoDPK" + }, + "href": "https://api.spotify.com/v1/artists/6kNKUYGn6VNGsRoXmyoDPK", + "id": "6kNKUYGn6VNGsRoXmyoDPK", + "name": "The Amity Affliction", + "type": "artist", + "uri": "spotify:artist:6kNKUYGn6VNGsRoXmyoDPK" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/2SQXiX0AGHf3Aw43or85KX" + }, + "href": "https://api.spotify.com/v1/artists/2SQXiX0AGHf3Aw43or85KX", + "id": "2SQXiX0AGHf3Aw43or85KX", + "name": "Louie Knuxx", + "type": "artist", + "uri": "spotify:artist:2SQXiX0AGHf3Aw43or85KX" + }], + "available_markets": ["AR", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 216579, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "USSTT2300027" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/3UgZA53hNSPbwtNJ7x8Bd9" + }, + "href": "https://api.spotify.com/v1/tracks/3UgZA53hNSPbwtNJ7x8Bd9", + "id": "3UgZA53hNSPbwtNJ7x8Bd9", + "is_local": false, + "name": "I See Dead People", + "popularity": 57, + "preview_url": "https://p.scdn.co/mp3-preview/1dac2fe174ea815e3b061532eb529a63d2688ab2?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:3UgZA53hNSPbwtNJ7x8Bd9" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2fqPOGxG12nEERj8YG7p22" + }, + "href": "https://api.spotify.com/v1/artists/2fqPOGxG12nEERj8YG7p22", + "id": "2fqPOGxG12nEERj8YG7p22", + "name": "Catch Your Breath", + "type": "artist", + "uri": "spotify:artist:2fqPOGxG12nEERj8YG7p22" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/3TshwnXhNfppmFUrlP4BZV" + }, + "href": "https://api.spotify.com/v1/albums/3TshwnXhNfppmFUrlP4BZV", + "id": "3TshwnXhNfppmFUrlP4BZV", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273f6b1995099ca3a4a38493ca6", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02f6b1995099ca3a4a38493ca6", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851f6b1995099ca3a4a38493ca6", + "width": 64 + }], + "is_playable": true, + "name": "Dial Tone", + "release_date": "2022-05-20", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:3TshwnXhNfppmFUrlP4BZV" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2fqPOGxG12nEERj8YG7p22" + }, + "href": "https://api.spotify.com/v1/artists/2fqPOGxG12nEERj8YG7p22", + "id": "2fqPOGxG12nEERj8YG7p22", + "name": "Catch Your Breath", + "type": "artist", + "uri": "spotify:artist:2fqPOGxG12nEERj8YG7p22" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 200495, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "QZES82294531" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/5tX5qGeEImk2CZYyGHrq9I" + }, + "href": "https://api.spotify.com/v1/tracks/5tX5qGeEImk2CZYyGHrq9I", + "id": "5tX5qGeEImk2CZYyGHrq9I", + "is_local": false, + "name": "Dial Tone", + "popularity": 70, + "preview_url": "https://p.scdn.co/mp3-preview/25b7d6d8861b4d5fd49c59c9a4329429d8cf3d32?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:5tX5qGeEImk2CZYyGHrq9I" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6OLm78czd7Y80yrzwAb7FK" + }, + "href": "https://api.spotify.com/v1/artists/6OLm78czd7Y80yrzwAb7FK", + "id": "6OLm78czd7Y80yrzwAb7FK", + "name": "Arrival Of Autumn", + "type": "artist", + "uri": "spotify:artist:6OLm78czd7Y80yrzwAb7FK" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/4JpyEPmtqUY38STlkVZrFM" + }, + "href": "https://api.spotify.com/v1/albums/4JpyEPmtqUY38STlkVZrFM", + "id": "4JpyEPmtqUY38STlkVZrFM", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273d8f54d079f6bddbdd2b231d1", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02d8f54d079f6bddbdd2b231d1", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851d8f54d079f6bddbdd2b231d1", + "width": 64 + }], + "is_playable": true, + "name": "Scars", + "release_date": "2023-02-24", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:4JpyEPmtqUY38STlkVZrFM" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6OLm78czd7Y80yrzwAb7FK" + }, + "href": "https://api.spotify.com/v1/artists/6OLm78czd7Y80yrzwAb7FK", + "id": "6OLm78czd7Y80yrzwAb7FK", + "name": "Arrival Of Autumn", + "type": "artist", + "uri": "spotify:artist:6OLm78czd7Y80yrzwAb7FK" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 211440, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DED832200632" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/2vBwejT7xi8pDeGYxmY8vi" + }, + "href": "https://api.spotify.com/v1/tracks/2vBwejT7xi8pDeGYxmY8vi", + "id": "2vBwejT7xi8pDeGYxmY8vi", + "is_local": false, + "name": "Scars", + "popularity": 36, + "preview_url": "https://p.scdn.co/mp3-preview/5828e2c2b317e0603b07fb2f78edff263aa7f000?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:2vBwejT7xi8pDeGYxmY8vi" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/3LkSiHbjqOHCKCqBfEZOTv" + }, + "href": "https://api.spotify.com/v1/artists/3LkSiHbjqOHCKCqBfEZOTv", + "id": "3LkSiHbjqOHCKCqBfEZOTv", + "name": "Atreyu", + "type": "artist", + "uri": "spotify:artist:3LkSiHbjqOHCKCqBfEZOTv" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/6d5waVDcEQEcM6BKbkBiNx" + }, + "href": "https://api.spotify.com/v1/albums/6d5waVDcEQEcM6BKbkBiNx", + "id": "6d5waVDcEQEcM6BKbkBiNx", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b27373eec5685d9d61b0f330ba22", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e0273eec5685d9d61b0f330ba22", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d0000485173eec5685d9d61b0f330ba22", + "width": 64 + }], + "is_playable": true, + "name": "Drowning", + "release_date": "2023-01-27", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:6d5waVDcEQEcM6BKbkBiNx" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/3LkSiHbjqOHCKCqBfEZOTv" + }, + "href": "https://api.spotify.com/v1/artists/3LkSiHbjqOHCKCqBfEZOTv", + "id": "3LkSiHbjqOHCKCqBfEZOTv", + "name": "Atreyu", + "type": "artist", + "uri": "spotify:artist:3LkSiHbjqOHCKCqBfEZOTv" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 165557, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "GBPVV2204851" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/4l0UQ0zDIPYaaa5FF2Kvwt" + }, + "href": "https://api.spotify.com/v1/tracks/4l0UQ0zDIPYaaa5FF2Kvwt", + "id": "4l0UQ0zDIPYaaa5FF2Kvwt", + "is_local": false, + "name": "Drowning", + "popularity": 62, + "preview_url": "https://p.scdn.co/mp3-preview/b51c14eb81b306cf406e1c70e2e6e4701fad8123?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:4l0UQ0zDIPYaaa5FF2Kvwt" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "album", + "album_type": "album", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6MwPCCR936cYfM1dLsGVnl" + }, + "href": "https://api.spotify.com/v1/artists/6MwPCCR936cYfM1dLsGVnl", + "id": "6MwPCCR936cYfM1dLsGVnl", + "name": "Motionless In White", + "type": "artist", + "uri": "spotify:artist:6MwPCCR936cYfM1dLsGVnl" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/0DoVnWjNFYoUfq7qe36jxh" + }, + "href": "https://api.spotify.com/v1/albums/0DoVnWjNFYoUfq7qe36jxh", + "id": "0DoVnWjNFYoUfq7qe36jxh", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2733528a891d36d16d760cda271", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e023528a891d36d16d760cda271", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048513528a891d36d16d760cda271", + "width": 64 + }], + "is_playable": true, + "name": "Scoring The End Of The World", + "release_date": "2022-06-10", + "release_date_precision": "day", + "total_tracks": 13, + "type": "album", + "uri": "spotify:album:0DoVnWjNFYoUfq7qe36jxh" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6MwPCCR936cYfM1dLsGVnl" + }, + "href": "https://api.spotify.com/v1/artists/6MwPCCR936cYfM1dLsGVnl", + "id": "6MwPCCR936cYfM1dLsGVnl", + "name": "Motionless In White", + "type": "artist", + "uri": "spotify:artist:6MwPCCR936cYfM1dLsGVnl" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 212082, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "NLA322200044" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/1e1rQNYCZToyBDDka1Io34" + }, + "href": "https://api.spotify.com/v1/tracks/1e1rQNYCZToyBDDka1Io34", + "id": "1e1rQNYCZToyBDDka1Io34", + "is_local": false, + "name": "Werewolf", + "popularity": 63, + "preview_url": "https://p.scdn.co/mp3-preview/e52846517ba5e4ff77e3af12fc1ec68881922671?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 3, + "type": "track", + "uri": "spotify:track:1e1rQNYCZToyBDDka1Io34" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/4HrkLxQHZ5mgCtIVpiH5QX" + }, + "href": "https://api.spotify.com/v1/artists/4HrkLxQHZ5mgCtIVpiH5QX", + "id": "4HrkLxQHZ5mgCtIVpiH5QX", + "name": "From Ashes to New", + "type": "artist", + "uri": "spotify:artist:4HrkLxQHZ5mgCtIVpiH5QX" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/3QIB6uRdIiuTKHBzYY5GCc" + }, + "href": "https://api.spotify.com/v1/albums/3QIB6uRdIiuTKHBzYY5GCc", + "id": "3QIB6uRdIiuTKHBzYY5GCc", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273c17731bea256938e8de1f15f", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02c17731bea256938e8de1f15f", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851c17731bea256938e8de1f15f", + "width": 64 + }], + "is_playable": true, + "name": "Nightmare", + "release_date": "2023-02-03", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:3QIB6uRdIiuTKHBzYY5GCc" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/4HrkLxQHZ5mgCtIVpiH5QX" + }, + "href": "https://api.spotify.com/v1/artists/4HrkLxQHZ5mgCtIVpiH5QX", + "id": "4HrkLxQHZ5mgCtIVpiH5QX", + "name": "From Ashes to New", + "type": "artist", + "uri": "spotify:artist:4HrkLxQHZ5mgCtIVpiH5QX" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 187835, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "USDPK2300001" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/0u9PGHiydskvvPmyPVvm73" + }, + "href": "https://api.spotify.com/v1/tracks/0u9PGHiydskvvPmyPVvm73", + "id": "0u9PGHiydskvvPmyPVvm73", + "is_local": false, + "name": "Nightmare", + "popularity": 62, + "preview_url": "https://p.scdn.co/mp3-preview/a6334ecd136f840ae911e8294580891496d0da71?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:0u9PGHiydskvvPmyPVvm73" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/77rcxvpDqP78d90dL3DNNe" + }, + "href": "https://api.spotify.com/v1/artists/77rcxvpDqP78d90dL3DNNe", + "id": "77rcxvpDqP78d90dL3DNNe", + "name": "Kingdom Of Giants", + "type": "artist", + "uri": "spotify:artist:77rcxvpDqP78d90dL3DNNe" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/6kldsD8IODEdYNlNAXPCed" + }, + "href": "https://api.spotify.com/v1/albums/6kldsD8IODEdYNlNAXPCed", + "id": "6kldsD8IODEdYNlNAXPCed", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2739e44ab4aecacd0060e1adcef", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e029e44ab4aecacd0060e1adcef", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048519e44ab4aecacd0060e1adcef", + "width": 64 + }], + "is_playable": true, + "name": "Wasted Space", + "release_date": "2023-03-03", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:6kldsD8IODEdYNlNAXPCed" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/77rcxvpDqP78d90dL3DNNe" + }, + "href": "https://api.spotify.com/v1/artists/77rcxvpDqP78d90dL3DNNe", + "id": "77rcxvpDqP78d90dL3DNNe", + "name": "Kingdom Of Giants", + "type": "artist", + "uri": "spotify:artist:77rcxvpDqP78d90dL3DNNe" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 206850, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DED832300079" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/2swqb0ij8Xpksi4A7tqE6i" + }, + "href": "https://api.spotify.com/v1/tracks/2swqb0ij8Xpksi4A7tqE6i", + "id": "2swqb0ij8Xpksi4A7tqE6i", + "is_local": false, + "name": "Wasted Space", + "popularity": 48, + "preview_url": "https://p.scdn.co/mp3-preview/8e092b34292c9e65ebb185de3e118d15bfd39093?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:2swqb0ij8Xpksi4A7tqE6i" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "album", + "album_type": "album", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/159qqlGwzE04xyqpfAwRLo" + }, + "href": "https://api.spotify.com/v1/artists/159qqlGwzE04xyqpfAwRLo", + "id": "159qqlGwzE04xyqpfAwRLo", + "name": "Parkway Drive", + "type": "artist", + "uri": "spotify:artist:159qqlGwzE04xyqpfAwRLo" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/36McCMdCRYn5j6iSMiqdG4" + }, + "href": "https://api.spotify.com/v1/albums/36McCMdCRYn5j6iSMiqdG4", + "id": "36McCMdCRYn5j6iSMiqdG4", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273e4551f6b8bdde8aaeaed85cd", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02e4551f6b8bdde8aaeaed85cd", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851e4551f6b8bdde8aaeaed85cd", + "width": 64 + }], + "is_playable": true, + "name": "Darker Still", + "release_date": "2022-09-09", + "release_date_precision": "day", + "total_tracks": 11, + "type": "album", + "uri": "spotify:album:36McCMdCRYn5j6iSMiqdG4" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/159qqlGwzE04xyqpfAwRLo" + }, + "href": "https://api.spotify.com/v1/artists/159qqlGwzE04xyqpfAwRLo", + "id": "159qqlGwzE04xyqpfAwRLo", + "name": "Parkway Drive", + "type": "artist", + "uri": "spotify:artist:159qqlGwzE04xyqpfAwRLo" + }], + "available_markets": ["AR", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 261811, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "USEP42215003" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/1jKH10ufuA4EzUCdobVxu0" + }, + "href": "https://api.spotify.com/v1/tracks/1jKH10ufuA4EzUCdobVxu0", + "id": "1jKH10ufuA4EzUCdobVxu0", + "is_local": false, + "name": "Glitch", + "popularity": 58, + "preview_url": "https://p.scdn.co/mp3-preview/4359caacc095c600327b42aecf3adbe72bbe7a3f?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 3, + "type": "track", + "uri": "spotify:track:1jKH10ufuA4EzUCdobVxu0" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/5p9CTsn5ueGU4oScNX1axu" + }, + "href": "https://api.spotify.com/v1/artists/5p9CTsn5ueGU4oScNX1axu", + "id": "5p9CTsn5ueGU4oScNX1axu", + "name": "August Burns Red", + "type": "artist", + "uri": "spotify:artist:5p9CTsn5ueGU4oScNX1axu" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/4DBR3CJvtw972fOYg93ndQ" + }, + "href": "https://api.spotify.com/v1/albums/4DBR3CJvtw972fOYg93ndQ", + "id": "4DBR3CJvtw972fOYg93ndQ", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2736772c4a06609357dcee846de", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e026772c4a06609357dcee846de", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048516772c4a06609357dcee846de", + "width": 64 + }], + "is_playable": true, + "name": "Backfire", + "release_date": "2023-01-25", + "release_date_precision": "day", + "total_tracks": 2, + "type": "album", + "uri": "spotify:album:4DBR3CJvtw972fOYg93ndQ" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/5p9CTsn5ueGU4oScNX1axu" + }, + "href": "https://api.spotify.com/v1/artists/5p9CTsn5ueGU4oScNX1axu", + "id": "5p9CTsn5ueGU4oScNX1axu", + "name": "August Burns Red", + "type": "artist", + "uri": "spotify:artist:5p9CTsn5ueGU4oScNX1axu" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 262925, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DED832200434" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/6qA3JeQaSLng3XmIFr7IC0" + }, + "href": "https://api.spotify.com/v1/tracks/6qA3JeQaSLng3XmIFr7IC0", + "id": "6qA3JeQaSLng3XmIFr7IC0", + "is_local": false, + "name": "Backfire", + "popularity": 53, + "preview_url": "https://p.scdn.co/mp3-preview/8204b3f54a2b2dfe5c9e3ea1150ffbd778b4bdee?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:6qA3JeQaSLng3XmIFr7IC0" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/0FZcPgWI3BsFQl4rOAGSHT" + }, + "href": "https://api.spotify.com/v1/artists/0FZcPgWI3BsFQl4rOAGSHT", + "id": "0FZcPgWI3BsFQl4rOAGSHT", + "name": "Make Them Suffer", + "type": "artist", + "uri": "spotify:artist:0FZcPgWI3BsFQl4rOAGSHT" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/7J8x3vAHCvP4gKZUEdsLN4" + }, + "href": "https://api.spotify.com/v1/albums/7J8x3vAHCvP4gKZUEdsLN4", + "id": "7J8x3vAHCvP4gKZUEdsLN4", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b27346ed2365695de346fa0027e8", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e0246ed2365695de346fa0027e8", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d0000485146ed2365695de346fa0027e8", + "width": 64 + }], + "is_playable": true, + "name": "Doomswitch", + "release_date": "2022-10-14", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:7J8x3vAHCvP4gKZUEdsLN4" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/0FZcPgWI3BsFQl4rOAGSHT" + }, + "href": "https://api.spotify.com/v1/artists/0FZcPgWI3BsFQl4rOAGSHT", + "id": "0FZcPgWI3BsFQl4rOAGSHT", + "name": "Make Them Suffer", + "type": "artist", + "uri": "spotify:artist:0FZcPgWI3BsFQl4rOAGSHT" + }], + "available_markets": ["AR", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 275205, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "AUNCC2200059" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/6pUUtKVRmODliJWTyY2pet" + }, + "href": "https://api.spotify.com/v1/tracks/6pUUtKVRmODliJWTyY2pet", + "id": "6pUUtKVRmODliJWTyY2pet", + "is_local": false, + "name": "Doomswitch", + "popularity": 56, + "preview_url": "https://p.scdn.co/mp3-preview/1e49e1e6df369bd805c0a6f909f7a064c6726114?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:6pUUtKVRmODliJWTyY2pet" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "album", + "album_type": "album", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6qO6LhD6FuXK5e2PtfAIMz" + }, + "href": "https://api.spotify.com/v1/artists/6qO6LhD6FuXK5e2PtfAIMz", + "id": "6qO6LhD6FuXK5e2PtfAIMz", + "name": "We Came As Romans", + "type": "artist", + "uri": "spotify:artist:6qO6LhD6FuXK5e2PtfAIMz" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/15q7078X1sRf9ivhEnv1tm" + }, + "href": "https://api.spotify.com/v1/albums/15q7078X1sRf9ivhEnv1tm", + "id": "15q7078X1sRf9ivhEnv1tm", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2732aaa9372a6922e6e3575d828", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e022aaa9372a6922e6e3575d828", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048512aaa9372a6922e6e3575d828", + "width": 64 + }], + "is_playable": true, + "name": "Darkbloom", + "release_date": "2022-10-14", + "release_date_precision": "day", + "total_tracks": 10, + "type": "album", + "uri": "spotify:album:15q7078X1sRf9ivhEnv1tm" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6qO6LhD6FuXK5e2PtfAIMz" + }, + "href": "https://api.spotify.com/v1/artists/6qO6LhD6FuXK5e2PtfAIMz", + "id": "6qO6LhD6FuXK5e2PtfAIMz", + "name": "We Came As Romans", + "type": "artist", + "uri": "spotify:artist:6qO6LhD6FuXK5e2PtfAIMz" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 209840, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DED832100655" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/6xC8tcFBMMjJIyfPw66lDF" + }, + "href": "https://api.spotify.com/v1/tracks/6xC8tcFBMMjJIyfPw66lDF", + "id": "6xC8tcFBMMjJIyfPw66lDF", + "is_local": false, + "name": "Plagued", + "popularity": 56, + "preview_url": "https://p.scdn.co/mp3-preview/5c6f2aa4d961cb7511501a9695deb7f819bdee28?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 2, + "type": "track", + "uri": "spotify:track:6xC8tcFBMMjJIyfPw66lDF" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/7InRNmmQuAi5KGBFtfOkrf" + }, + "href": "https://api.spotify.com/v1/artists/7InRNmmQuAi5KGBFtfOkrf", + "id": "7InRNmmQuAi5KGBFtfOkrf", + "name": "Rising Insane", + "type": "artist", + "uri": "spotify:artist:7InRNmmQuAi5KGBFtfOkrf" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/05KgX2I0e6LKvBWlUmRW0H" + }, + "href": "https://api.spotify.com/v1/albums/05KgX2I0e6LKvBWlUmRW0H", + "id": "05KgX2I0e6LKvBWlUmRW0H", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2733fe36a4e209b3b08d14aba21", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e023fe36a4e209b3b08d14aba21", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048513fe36a4e209b3b08d14aba21", + "width": 64 + }], + "is_playable": true, + "name": "Drag Me Under", + "release_date": "2023-02-03", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:05KgX2I0e6LKvBWlUmRW0H" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/7InRNmmQuAi5KGBFtfOkrf" + }, + "href": "https://api.spotify.com/v1/artists/7InRNmmQuAi5KGBFtfOkrf", + "id": "7InRNmmQuAi5KGBFtfOkrf", + "name": "Rising Insane", + "type": "artist", + "uri": "spotify:artist:7InRNmmQuAi5KGBFtfOkrf" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 225666, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "QMFME2253674" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/2CwBf7BQoztOsPNUszOOv8" + }, + "href": "https://api.spotify.com/v1/tracks/2CwBf7BQoztOsPNUszOOv8", + "id": "2CwBf7BQoztOsPNUszOOv8", + "is_local": false, + "name": "Drag Me Under", + "popularity": 43, + "preview_url": "https://p.scdn.co/mp3-preview/91e126075d5ff7aa3decbfca543faca03e56a0d7?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:2CwBf7BQoztOsPNUszOOv8" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/4ISeDymLgZtEyx5Dy4BaqD" + }, + "href": "https://api.spotify.com/v1/artists/4ISeDymLgZtEyx5Dy4BaqD", + "id": "4ISeDymLgZtEyx5Dy4BaqD", + "name": "Our Promise", + "type": "artist", + "uri": "spotify:artist:4ISeDymLgZtEyx5Dy4BaqD" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/5aNJN4zGJTPKvie47D56aE" + }, + "href": "https://api.spotify.com/v1/albums/5aNJN4zGJTPKvie47D56aE", + "id": "5aNJN4zGJTPKvie47D56aE", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273a6cfcc33c2802bb5ebd8a500", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02a6cfcc33c2802bb5ebd8a500", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851a6cfcc33c2802bb5ebd8a500", + "width": 64 + }], + "is_playable": true, + "name": "Panic Waves", + "release_date": "2023-02-17", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:5aNJN4zGJTPKvie47D56aE" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/4ISeDymLgZtEyx5Dy4BaqD" + }, + "href": "https://api.spotify.com/v1/artists/4ISeDymLgZtEyx5Dy4BaqD", + "id": "4ISeDymLgZtEyx5Dy4BaqD", + "name": "Our Promise", + "type": "artist", + "uri": "spotify:artist:4ISeDymLgZtEyx5Dy4BaqD" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 247399, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DEVX62300001" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/2UE48m09FyDdc6Ot1sGKqS" + }, + "href": "https://api.spotify.com/v1/tracks/2UE48m09FyDdc6Ot1sGKqS", + "id": "2UE48m09FyDdc6Ot1sGKqS", + "is_local": false, + "name": "Panic Waves", + "popularity": 49, + "preview_url": "https://p.scdn.co/mp3-preview/c2d9a6e7ae26e64bf5d02416987a3c1433214b30?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:2UE48m09FyDdc6Ot1sGKqS" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/0NbQe5CNgh4YApOCDuHSjb" + }, + "href": "https://api.spotify.com/v1/artists/0NbQe5CNgh4YApOCDuHSjb", + "id": "0NbQe5CNgh4YApOCDuHSjb", + "name": "The Devil Wears Prada", + "type": "artist", + "uri": "spotify:artist:0NbQe5CNgh4YApOCDuHSjb" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/1HqkZxWaoHVC5OPhGlHGa0" + }, + "href": "https://api.spotify.com/v1/albums/1HqkZxWaoHVC5OPhGlHGa0", + "id": "1HqkZxWaoHVC5OPhGlHGa0", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273c782d6cf6c3665c15bb4c18f", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02c782d6cf6c3665c15bb4c18f", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851c782d6cf6c3665c15bb4c18f", + "width": 64 + }], + "is_playable": true, + "name": "Salt", + "release_date": "2022-06-07", + "release_date_precision": "day", + "total_tracks": 3, + "type": "album", + "uri": "spotify:album:1HqkZxWaoHVC5OPhGlHGa0" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/0NbQe5CNgh4YApOCDuHSjb" + }, + "href": "https://api.spotify.com/v1/artists/0NbQe5CNgh4YApOCDuHSjb", + "id": "0NbQe5CNgh4YApOCDuHSjb", + "name": "The Devil Wears Prada", + "type": "artist", + "uri": "spotify:artist:0NbQe5CNgh4YApOCDuHSjb" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 207400, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "QMGVJ2200016" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/5Ve3eqZmguw75vcY7iwwZY" + }, + "href": "https://api.spotify.com/v1/tracks/5Ve3eqZmguw75vcY7iwwZY", + "id": "5Ve3eqZmguw75vcY7iwwZY", + "is_local": false, + "name": "Salt", + "popularity": 47, + "preview_url": "https://p.scdn.co/mp3-preview/734e9e8fae6b0dbb3687d08e7c998e37129cc433?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:5Ve3eqZmguw75vcY7iwwZY" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/1FcRUsTmnEQfVCH5OIKSpb" + }, + "href": "https://api.spotify.com/v1/artists/1FcRUsTmnEQfVCH5OIKSpb", + "id": "1FcRUsTmnEQfVCH5OIKSpb", + "name": "Attack Attack!", + "type": "artist", + "uri": "spotify:artist:1FcRUsTmnEQfVCH5OIKSpb" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/5vsJsheUwcsiM3O7r5qN0v" + }, + "href": "https://api.spotify.com/v1/albums/5vsJsheUwcsiM3O7r5qN0v", + "id": "5vsJsheUwcsiM3O7r5qN0v", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2732f7a22bb843ec3b9b7c81e3e", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e022f7a22bb843ec3b9b7c81e3e", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048512f7a22bb843ec3b9b7c81e3e", + "width": 64 + }], + "is_playable": true, + "name": "Dark Waves", + "release_date": "2023-02-10", + "release_date_precision": "day", + "total_tracks": 2, + "type": "album", + "uri": "spotify:album:5vsJsheUwcsiM3O7r5qN0v" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/1FcRUsTmnEQfVCH5OIKSpb" + }, + "href": "https://api.spotify.com/v1/artists/1FcRUsTmnEQfVCH5OIKSpb", + "id": "1FcRUsTmnEQfVCH5OIKSpb", + "name": "Attack Attack!", + "type": "artist", + "uri": "spotify:artist:1FcRUsTmnEQfVCH5OIKSpb" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 222571, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "QZRUP2200267" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/3SDcDLF3wwQwnI3Wst38aY" + }, + "href": "https://api.spotify.com/v1/tracks/3SDcDLF3wwQwnI3Wst38aY", + "id": "3SDcDLF3wwQwnI3Wst38aY", + "is_local": false, + "name": "Dark Waves", + "popularity": 53, + "preview_url": "https://p.scdn.co/mp3-preview/262a52c421d101c4fe065b23ba777ed0d163d89a?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:3SDcDLF3wwQwnI3Wst38aY" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/7rqJQQxuUOCk052MK5kLsH" + }, + "href": "https://api.spotify.com/v1/artists/7rqJQQxuUOCk052MK5kLsH", + "id": "7rqJQQxuUOCk052MK5kLsH", + "name": "Imminence", + "type": "artist", + "uri": "spotify:artist:7rqJQQxuUOCk052MK5kLsH" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/1CjPzgqkAeSShcb3mQ4iNS" + }, + "href": "https://api.spotify.com/v1/albums/1CjPzgqkAeSShcb3mQ4iNS", + "id": "1CjPzgqkAeSShcb3mQ4iNS", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273d60639197bede016e8c5f974", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02d60639197bede016e8c5f974", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851d60639197bede016e8c5f974", + "width": 64 + }], + "is_playable": true, + "name": "Jaded", + "release_date": "2023-02-10", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:1CjPzgqkAeSShcb3mQ4iNS" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/7rqJQQxuUOCk052MK5kLsH" + }, + "href": "https://api.spotify.com/v1/artists/7rqJQQxuUOCk052MK5kLsH", + "id": "7rqJQQxuUOCk052MK5kLsH", + "name": "Imminence", + "type": "artist", + "uri": "spotify:artist:7rqJQQxuUOCk052MK5kLsH" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 267744, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DEYO62200235" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/6syEBcinz3tRLPwM9Kdemo" + }, + "href": "https://api.spotify.com/v1/tracks/6syEBcinz3tRLPwM9Kdemo", + "id": "6syEBcinz3tRLPwM9Kdemo", + "is_local": false, + "name": "Jaded", + "popularity": 54, + "preview_url": "https://p.scdn.co/mp3-preview/c59408f0043ce3a1786c9fcd7e512afcee14c36e?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:6syEBcinz3tRLPwM9Kdemo" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6Gnk08ItppARKX1z1EW3Vn" + }, + "href": "https://api.spotify.com/v1/artists/6Gnk08ItppARKX1z1EW3Vn", + "id": "6Gnk08ItppARKX1z1EW3Vn", + "name": "Archetypes Collide", + "type": "artist", + "uri": "spotify:artist:6Gnk08ItppARKX1z1EW3Vn" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/0sx2ImaWkigyLHH45jdIo1" + }, + "href": "https://api.spotify.com/v1/albums/0sx2ImaWkigyLHH45jdIo1", + "id": "0sx2ImaWkigyLHH45jdIo1", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2739444d8e245906f778bca0687", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e029444d8e245906f778bca0687", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048519444d8e245906f778bca0687", + "width": 64 + }], + "is_playable": true, + "name": "Parasite", + "release_date": "2023-02-24", + "release_date_precision": "day", + "total_tracks": 3, + "type": "album", + "uri": "spotify:album:0sx2ImaWkigyLHH45jdIo1" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6Gnk08ItppARKX1z1EW3Vn" + }, + "href": "https://api.spotify.com/v1/artists/6Gnk08ItppARKX1z1EW3Vn", + "id": "6Gnk08ItppARKX1z1EW3Vn", + "name": "Archetypes Collide", + "type": "artist", + "uri": "spotify:artist:6Gnk08ItppARKX1z1EW3Vn" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 212802, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "US5262224897" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/0sBXPxWJpMlQBnVF2y78Rg" + }, + "href": "https://api.spotify.com/v1/tracks/0sBXPxWJpMlQBnVF2y78Rg", + "id": "0sBXPxWJpMlQBnVF2y78Rg", + "is_local": false, + "name": "Parasite", + "popularity": 47, + "preview_url": null, + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:0sBXPxWJpMlQBnVF2y78Rg" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/28IImD2QqPWTQ2cWgOMQNT" + }, + "href": "https://api.spotify.com/v1/artists/28IImD2QqPWTQ2cWgOMQNT", + "id": "28IImD2QqPWTQ2cWgOMQNT", + "name": "As Everything Unfolds", + "type": "artist", + "uri": "spotify:artist:28IImD2QqPWTQ2cWgOMQNT" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/1gQRMfDzWuQ4J2BCjuvWAS" + }, + "href": "https://api.spotify.com/v1/albums/1gQRMfDzWuQ4J2BCjuvWAS", + "id": "1gQRMfDzWuQ4J2BCjuvWAS", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b27341f0e8a8b3c56e47eee403bb", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e0241f0e8a8b3c56e47eee403bb", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d0000485141f0e8a8b3c56e47eee403bb", + "width": 64 + }], + "is_playable": true, + "name": "Ultraviolet", + "release_date": "2023-01-19", + "release_date_precision": "day", + "total_tracks": 3, + "type": "album", + "uri": "spotify:album:1gQRMfDzWuQ4J2BCjuvWAS" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/28IImD2QqPWTQ2cWgOMQNT" + }, + "href": "https://api.spotify.com/v1/artists/28IImD2QqPWTQ2cWgOMQNT", + "id": "28IImD2QqPWTQ2cWgOMQNT", + "name": "As Everything Unfolds", + "type": "artist", + "uri": "spotify:artist:28IImD2QqPWTQ2cWgOMQNT" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 232608, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DEA452300010" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/0gukK40IEqCb6arYVQxMtl" + }, + "href": "https://api.spotify.com/v1/tracks/0gukK40IEqCb6arYVQxMtl", + "id": "0gukK40IEqCb6arYVQxMtl", + "is_local": false, + "name": "Ultraviolet", + "popularity": 49, + "preview_url": "https://p.scdn.co/mp3-preview/e33927d72b61d44b57b957b56e6d64802515820d?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:0gukK40IEqCb6arYVQxMtl" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6n5DUGtIWYMurrtVt7IdZr" + }, + "href": "https://api.spotify.com/v1/artists/6n5DUGtIWYMurrtVt7IdZr", + "id": "6n5DUGtIWYMurrtVt7IdZr", + "name": "Elwood Stray", + "type": "artist", + "uri": "spotify:artist:6n5DUGtIWYMurrtVt7IdZr" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/5wYZPVMaVGyrfy8xeJdswt" + }, + "href": "https://api.spotify.com/v1/albums/5wYZPVMaVGyrfy8xeJdswt", + "id": "5wYZPVMaVGyrfy8xeJdswt", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273f81f0bf9f97c9c1098223071", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02f81f0bf9f97c9c1098223071", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851f81f0bf9f97c9c1098223071", + "width": 64 + }], + "is_playable": true, + "name": "Decay", + "release_date": "2023-02-17", + "release_date_precision": "day", + "total_tracks": 3, + "type": "album", + "uri": "spotify:album:5wYZPVMaVGyrfy8xeJdswt" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6n5DUGtIWYMurrtVt7IdZr" + }, + "href": "https://api.spotify.com/v1/artists/6n5DUGtIWYMurrtVt7IdZr", + "id": "6n5DUGtIWYMurrtVt7IdZr", + "name": "Elwood Stray", + "type": "artist", + "uri": "spotify:artist:6n5DUGtIWYMurrtVt7IdZr" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 206346, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DEBZ72300013" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/188VxGLFQF56eO5o7bOwiC" + }, + "href": "https://api.spotify.com/v1/tracks/188VxGLFQF56eO5o7bOwiC", + "id": "188VxGLFQF56eO5o7bOwiC", + "is_local": false, + "name": "Decay", + "popularity": 41, + "preview_url": "https://p.scdn.co/mp3-preview/31583f3a1cd741c648454c6b013b2e4d4abfaa49?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:188VxGLFQF56eO5o7bOwiC" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "album", + "album_type": "album", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/3y43zXffnLmhyQD1K4QCmD" + }, + "href": "https://api.spotify.com/v1/artists/3y43zXffnLmhyQD1K4QCmD", + "id": "3y43zXffnLmhyQD1K4QCmD", + "name": "Acres", + "type": "artist", + "uri": "spotify:artist:3y43zXffnLmhyQD1K4QCmD" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/4SvwujGdVPbHhAR3DIQCc4" + }, + "href": "https://api.spotify.com/v1/albums/4SvwujGdVPbHhAR3DIQCc4", + "id": "4SvwujGdVPbHhAR3DIQCc4", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273eb1cb37efd5c166d24d31819", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02eb1cb37efd5c166d24d31819", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851eb1cb37efd5c166d24d31819", + "width": 64 + }], + "is_playable": true, + "name": "Burning Throne", + "release_date": "2023-03-03", + "release_date_precision": "day", + "total_tracks": 10, + "type": "album", + "uri": "spotify:album:4SvwujGdVPbHhAR3DIQCc4" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/3y43zXffnLmhyQD1K4QCmD" + }, + "href": "https://api.spotify.com/v1/artists/3y43zXffnLmhyQD1K4QCmD", + "id": "3y43zXffnLmhyQD1K4QCmD", + "name": "Acres", + "type": "artist", + "uri": "spotify:artist:3y43zXffnLmhyQD1K4QCmD" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 233076, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "GBAJC2200106" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/1Zsy3xy9TvYELEGg1js4yw" + }, + "href": "https://api.spotify.com/v1/tracks/1Zsy3xy9TvYELEGg1js4yw", + "id": "1Zsy3xy9TvYELEGg1js4yw", + "is_local": false, + "name": "My Everything", + "popularity": 40, + "preview_url": "https://p.scdn.co/mp3-preview/330045fb3097c94940b3c29afcd080297db835ea?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 6, + "type": "track", + "uri": "spotify:track:1Zsy3xy9TvYELEGg1js4yw" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/7x3hXpGkI296eBLTbhbND0" + }, + "href": "https://api.spotify.com/v1/artists/7x3hXpGkI296eBLTbhbND0", + "id": "7x3hXpGkI296eBLTbhbND0", + "name": "Oceans", + "type": "artist", + "uri": "spotify:artist:7x3hXpGkI296eBLTbhbND0" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/7lt5GA2p1R951h7cg6IycG" + }, + "href": "https://api.spotify.com/v1/albums/7lt5GA2p1R951h7cg6IycG", + "id": "7lt5GA2p1R951h7cg6IycG", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2734803666bf99b67925c9de368", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e024803666bf99b67925c9de368", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048514803666bf99b67925c9de368", + "width": 64 + }], + "is_playable": true, + "name": "Hell Is Where The Heart Is, Pt. III: Clarity", + "release_date": "2022-11-25", + "release_date_precision": "day", + "total_tracks": 4, + "type": "album", + "uri": "spotify:album:7lt5GA2p1R951h7cg6IycG" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/7x3hXpGkI296eBLTbhbND0" + }, + "href": "https://api.spotify.com/v1/artists/7x3hXpGkI296eBLTbhbND0", + "id": "7x3hXpGkI296eBLTbhbND0", + "name": "Oceans", + "type": "artist", + "uri": "spotify:artist:7x3hXpGkI296eBLTbhbND0" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 233533, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "DED832100721" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/4jZFmBhYpwwiWjuEYmlEYq" + }, + "href": "https://api.spotify.com/v1/tracks/4jZFmBhYpwwiWjuEYmlEYq", + "id": "4jZFmBhYpwwiWjuEYmlEYq", + "is_local": false, + "name": "Hell Is Where The Heart Is", + "popularity": 41, + "preview_url": "https://p.scdn.co/mp3-preview/0cb3c591c4994aa6c286e5391ecd8291302e05fc?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 4, + "type": "track", + "uri": "spotify:track:4jZFmBhYpwwiWjuEYmlEYq" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/42VxcSRld3QR7Rmv7m97RW" + }, + "href": "https://api.spotify.com/v1/artists/42VxcSRld3QR7Rmv7m97RW", + "id": "42VxcSRld3QR7Rmv7m97RW", + "name": "The Worst of Us", + "type": "artist", + "uri": "spotify:artist:42VxcSRld3QR7Rmv7m97RW" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/65sChHf6etCvSFdXn8NPUO" + }, + "href": "https://api.spotify.com/v1/artists/65sChHf6etCvSFdXn8NPUO", + "id": "65sChHf6etCvSFdXn8NPUO", + "name": "ALEX", + "type": "artist", + "uri": "spotify:artist:65sChHf6etCvSFdXn8NPUO" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/3kwoPkICT4iPkNjr6mL13N" + }, + "href": "https://api.spotify.com/v1/artists/3kwoPkICT4iPkNjr6mL13N", + "id": "3kwoPkICT4iPkNjr6mL13N", + "name": "TOKYO ROSE", + "type": "artist", + "uri": "spotify:artist:3kwoPkICT4iPkNjr6mL13N" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/1Y1gza8GXGUTuwYgZK0EWb" + }, + "href": "https://api.spotify.com/v1/albums/1Y1gza8GXGUTuwYgZK0EWb", + "id": "1Y1gza8GXGUTuwYgZK0EWb", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273e2da27d03552f5984e6a6946", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02e2da27d03552f5984e6a6946", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851e2da27d03552f5984e6a6946", + "width": 64 + }], + "is_playable": true, + "name": "ANTAGONIST RETURNS", + "release_date": "2023-03-03", + "release_date_precision": "day", + "total_tracks": 2, + "type": "album", + "uri": "spotify:album:1Y1gza8GXGUTuwYgZK0EWb" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/42VxcSRld3QR7Rmv7m97RW" + }, + "href": "https://api.spotify.com/v1/artists/42VxcSRld3QR7Rmv7m97RW", + "id": "42VxcSRld3QR7Rmv7m97RW", + "name": "The Worst of Us", + "type": "artist", + "uri": "spotify:artist:42VxcSRld3QR7Rmv7m97RW" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/65sChHf6etCvSFdXn8NPUO" + }, + "href": "https://api.spotify.com/v1/artists/65sChHf6etCvSFdXn8NPUO", + "id": "65sChHf6etCvSFdXn8NPUO", + "name": "ALEX", + "type": "artist", + "uri": "spotify:artist:65sChHf6etCvSFdXn8NPUO" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/3kwoPkICT4iPkNjr6mL13N" + }, + "href": "https://api.spotify.com/v1/artists/3kwoPkICT4iPkNjr6mL13N", + "id": "3kwoPkICT4iPkNjr6mL13N", + "name": "TOKYO ROSE", + "type": "artist", + "uri": "spotify:artist:3kwoPkICT4iPkNjr6mL13N" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/20kxwZ3KtZExRwq4s9IXZW" + }, + "href": "https://api.spotify.com/v1/artists/20kxwZ3KtZExRwq4s9IXZW", + "id": "20kxwZ3KtZExRwq4s9IXZW", + "name": "THE AKUMA", + "type": "artist", + "uri": "spotify:artist:20kxwZ3KtZExRwq4s9IXZW" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 217308, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "QZFZ62305866" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/2tCwpWtQsAFGafn1tZCcfm" + }, + "href": "https://api.spotify.com/v1/tracks/2tCwpWtQsAFGafn1tZCcfm", + "id": "2tCwpWtQsAFGafn1tZCcfm", + "is_local": false, + "name": "ANTAGONIST RETURNS", + "popularity": 42, + "preview_url": "https://p.scdn.co/mp3-preview/794322bc67055ed3281db82fc66d955d1a5075bd?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:2tCwpWtQsAFGafn1tZCcfm" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/0DJJrg8eUagEWZXFgwKJfM" + }, + "href": "https://api.spotify.com/v1/artists/0DJJrg8eUagEWZXFgwKJfM", + "id": "0DJJrg8eUagEWZXFgwKJfM", + "name": "ENMY", + "type": "artist", + "uri": "spotify:artist:0DJJrg8eUagEWZXFgwKJfM" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/09CZXfat40xo0FMgh9bGc9" + }, + "href": "https://api.spotify.com/v1/albums/09CZXfat40xo0FMgh9bGc9", + "id": "09CZXfat40xo0FMgh9bGc9", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273d219e83dc5e6cc4b7b375189", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02d219e83dc5e6cc4b7b375189", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851d219e83dc5e6cc4b7b375189", + "width": 64 + }], + "is_playable": true, + "name": "Survive", + "release_date": "2022-12-15", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:09CZXfat40xo0FMgh9bGc9" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/0DJJrg8eUagEWZXFgwKJfM" + }, + "href": "https://api.spotify.com/v1/artists/0DJJrg8eUagEWZXFgwKJfM", + "id": "0DJJrg8eUagEWZXFgwKJfM", + "name": "ENMY", + "type": "artist", + "uri": "spotify:artist:0DJJrg8eUagEWZXFgwKJfM" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 171486, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "QMDA72263058" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/10sNQBSpWrUV1jcyafuw0x" + }, + "href": "https://api.spotify.com/v1/tracks/10sNQBSpWrUV1jcyafuw0x", + "id": "10sNQBSpWrUV1jcyafuw0x", + "is_local": false, + "name": "Survive", + "popularity": 47, + "preview_url": "https://p.scdn.co/mp3-preview/c6d073df09347188621069cca61205923c65a170?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:10sNQBSpWrUV1jcyafuw0x" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6f0FWL5v2c3a5shWKRuiwq" + }, + "href": "https://api.spotify.com/v1/artists/6f0FWL5v2c3a5shWKRuiwq", + "id": "6f0FWL5v2c3a5shWKRuiwq", + "name": "Samurai Pizza Cats", + "type": "artist", + "uri": "spotify:artist:6f0FWL5v2c3a5shWKRuiwq" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/02UmgKnxslxUbrVpHhF9bb" + }, + "href": "https://api.spotify.com/v1/artists/02UmgKnxslxUbrVpHhF9bb", + "id": "02UmgKnxslxUbrVpHhF9bb", + "name": "Nico Sallach", + "type": "artist", + "uri": "spotify:artist:02UmgKnxslxUbrVpHhF9bb" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/4NTGoJrPUvdgihClkErxoM" + }, + "href": "https://api.spotify.com/v1/albums/4NTGoJrPUvdgihClkErxoM", + "id": "4NTGoJrPUvdgihClkErxoM", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273832dfd8f652036285cc48d0d", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02832dfd8f652036285cc48d0d", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851832dfd8f652036285cc48d0d", + "width": 64 + }], + "is_playable": true, + "name": "Pizza Homicide", + "release_date": "2023-03-03", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:4NTGoJrPUvdgihClkErxoM" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6f0FWL5v2c3a5shWKRuiwq" + }, + "href": "https://api.spotify.com/v1/artists/6f0FWL5v2c3a5shWKRuiwq", + "id": "6f0FWL5v2c3a5shWKRuiwq", + "name": "Samurai Pizza Cats", + "type": "artist", + "uri": "spotify:artist:6f0FWL5v2c3a5shWKRuiwq" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/02UmgKnxslxUbrVpHhF9bb" + }, + "href": "https://api.spotify.com/v1/artists/02UmgKnxslxUbrVpHhF9bb", + "id": "02UmgKnxslxUbrVpHhF9bb", + "name": "Nico Sallach", + "type": "artist", + "uri": "spotify:artist:02UmgKnxslxUbrVpHhF9bb" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/1WNoKxsp715jez1Td4vthc" + }, + "href": "https://api.spotify.com/v1/artists/1WNoKxsp715jez1Td4vthc", + "id": "1WNoKxsp715jez1Td4vthc", + "name": "Electric Callboy", + "type": "artist", + "uri": "spotify:artist:1WNoKxsp715jez1Td4vthc" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 180947, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "QM4TW2362536" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/7vqgYX29LWz74BlsaW9bub" + }, + "href": "https://api.spotify.com/v1/tracks/7vqgYX29LWz74BlsaW9bub", + "id": "7vqgYX29LWz74BlsaW9bub", + "is_local": false, + "name": "Pizza Homicide", + "popularity": 53, + "preview_url": "https://p.scdn.co/mp3-preview/aef916adc1468638dea70e84b60dcfb03b9296f5?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:7vqgYX29LWz74BlsaW9bub" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6koaWXkOOBCzZDCd9GaHsj" + }, + "href": "https://api.spotify.com/v1/artists/6koaWXkOOBCzZDCd9GaHsj", + "id": "6koaWXkOOBCzZDCd9GaHsj", + "name": "Acacia Ridge", + "type": "artist", + "uri": "spotify:artist:6koaWXkOOBCzZDCd9GaHsj" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/22ZNSrE7hmUqmoXtR4uhIl" + }, + "href": "https://api.spotify.com/v1/albums/22ZNSrE7hmUqmoXtR4uhIl", + "id": "22ZNSrE7hmUqmoXtR4uhIl", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273eb80a59e19b306cd5d941938", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02eb80a59e19b306cd5d941938", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851eb80a59e19b306cd5d941938", + "width": 64 + }], + "is_playable": true, + "name": "Hivemind", + "release_date": "2023-02-09", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:22ZNSrE7hmUqmoXtR4uhIl" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6koaWXkOOBCzZDCd9GaHsj" + }, + "href": "https://api.spotify.com/v1/artists/6koaWXkOOBCzZDCd9GaHsj", + "id": "6koaWXkOOBCzZDCd9GaHsj", + "name": "Acacia Ridge", + "type": "artist", + "uri": "spotify:artist:6koaWXkOOBCzZDCd9GaHsj" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 247896, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "QZFYY2365877" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/7lRciDLcZY0MKaMyakkvu0" + }, + "href": "https://api.spotify.com/v1/tracks/7lRciDLcZY0MKaMyakkvu0", + "id": "7lRciDLcZY0MKaMyakkvu0", + "is_local": false, + "name": "Hivemind", + "popularity": 39, + "preview_url": "https://p.scdn.co/mp3-preview/0f575648a5483a9fafd60531ab8e594b0abbd08a?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:7lRciDLcZY0MKaMyakkvu0" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/70Xhx9yjoKm0t3VmTYkrPp" + }, + "href": "https://api.spotify.com/v1/artists/70Xhx9yjoKm0t3VmTYkrPp", + "id": "70Xhx9yjoKm0t3VmTYkrPp", + "name": "Maelføy", + "type": "artist", + "uri": "spotify:artist:70Xhx9yjoKm0t3VmTYkrPp" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/0TWnG9BOpdFeMZAKTWFVUT" + }, + "href": "https://api.spotify.com/v1/albums/0TWnG9BOpdFeMZAKTWFVUT", + "id": "0TWnG9BOpdFeMZAKTWFVUT", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273f3283ab2f9c9adc5a409c40c", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02f3283ab2f9c9adc5a409c40c", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851f3283ab2f9c9adc5a409c40c", + "width": 64 + }], + "is_playable": true, + "name": "away", + "release_date": "2022-12-16", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:0TWnG9BOpdFeMZAKTWFVUT" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/70Xhx9yjoKm0t3VmTYkrPp" + }, + "href": "https://api.spotify.com/v1/artists/70Xhx9yjoKm0t3VmTYkrPp", + "id": "70Xhx9yjoKm0t3VmTYkrPp", + "name": "Maelføy", + "type": "artist", + "uri": "spotify:artist:70Xhx9yjoKm0t3VmTYkrPp" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 262486, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "DGA052249011" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/4rNn6vx1vmzJfr894A5bM7" + }, + "href": "https://api.spotify.com/v1/tracks/4rNn6vx1vmzJfr894A5bM7", + "id": "4rNn6vx1vmzJfr894A5bM7", + "is_local": false, + "name": "away", + "popularity": 41, + "preview_url": "https://p.scdn.co/mp3-preview/fd9b898979b68999baa18e0724bba72eaf2d7570?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:4rNn6vx1vmzJfr894A5bM7" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6BD4lgmnh4vy6kkCaZRDWt" + }, + "href": "https://api.spotify.com/v1/artists/6BD4lgmnh4vy6kkCaZRDWt", + "id": "6BD4lgmnh4vy6kkCaZRDWt", + "name": "Bury Tomorrow", + "type": "artist", + "uri": "spotify:artist:6BD4lgmnh4vy6kkCaZRDWt" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/4GuxQZOki4NdCKpn9kW9xn" + }, + "href": "https://api.spotify.com/v1/albums/4GuxQZOki4NdCKpn9kW9xn", + "id": "4GuxQZOki4NdCKpn9kW9xn", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273dc9d9ce634f2abc1ec3298e7", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02dc9d9ce634f2abc1ec3298e7", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851dc9d9ce634f2abc1ec3298e7", + "width": 64 + }], + "is_playable": true, + "name": "Heretic (feat. Loz Taylor)", + "release_date": "2023-02-15", + "release_date_precision": "day", + "total_tracks": 3, + "type": "album", + "uri": "spotify:album:4GuxQZOki4NdCKpn9kW9xn" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6BD4lgmnh4vy6kkCaZRDWt" + }, + "href": "https://api.spotify.com/v1/artists/6BD4lgmnh4vy6kkCaZRDWt", + "id": "6BD4lgmnh4vy6kkCaZRDWt", + "name": "Bury Tomorrow", + "type": "artist", + "uri": "spotify:artist:6BD4lgmnh4vy6kkCaZRDWt" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 212878, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "GBCKC2200025" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/2mTi7e03FygOF0bds32848" + }, + "href": "https://api.spotify.com/v1/tracks/2mTi7e03FygOF0bds32848", + "id": "2mTi7e03FygOF0bds32848", + "is_local": false, + "name": "Heretic (feat. Loz Taylor)", + "popularity": 56, + "preview_url": "https://p.scdn.co/mp3-preview/06eb0cf0b95091b09a2237ebfc0e85f6b9ab2d8e?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:2mTi7e03FygOF0bds32848" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "album", + "album_type": "album", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/4tususHNaR68xdgLstlGBA" + }, + "href": "https://api.spotify.com/v1/artists/4tususHNaR68xdgLstlGBA", + "id": "4tususHNaR68xdgLstlGBA", + "name": "Of Mice & Men", + "type": "artist", + "uri": "spotify:artist:4tususHNaR68xdgLstlGBA" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/2Gy8PtzODbaenwA7aCI6UG" + }, + "href": "https://api.spotify.com/v1/albums/2Gy8PtzODbaenwA7aCI6UG", + "id": "2Gy8PtzODbaenwA7aCI6UG", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273a58a6c9723a595e05f9d42e3", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02a58a6c9723a595e05f9d42e3", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851a58a6c9723a595e05f9d42e3", + "width": 64 + }], + "is_playable": true, + "name": "Echo (Deluxe Version)", + "release_date": "2022-12-09", + "release_date_precision": "day", + "total_tracks": 20, + "type": "album", + "uri": "spotify:album:2Gy8PtzODbaenwA7aCI6UG" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/4tususHNaR68xdgLstlGBA" + }, + "href": "https://api.spotify.com/v1/artists/4tususHNaR68xdgLstlGBA", + "id": "4tususHNaR68xdgLstlGBA", + "name": "Of Mice & Men", + "type": "artist", + "uri": "spotify:artist:4tususHNaR68xdgLstlGBA" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/1CXuuw8HJhyN80HlNzvL1e" + }, + "href": "https://api.spotify.com/v1/artists/1CXuuw8HJhyN80HlNzvL1e", + "id": "1CXuuw8HJhyN80HlNzvL1e", + "name": "Sullivan King", + "type": "artist", + "uri": "spotify:artist:1CXuuw8HJhyN80HlNzvL1e" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 185039, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DED832200466" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/7MUPbvNwlgqY1Sboxe9jJD" + }, + "href": "https://api.spotify.com/v1/tracks/7MUPbvNwlgqY1Sboxe9jJD", + "id": "7MUPbvNwlgqY1Sboxe9jJD", + "is_local": false, + "name": "Obsolete - Sullivan King Remix", + "popularity": 53, + "preview_url": "https://p.scdn.co/mp3-preview/a8ae50d4ca6ab030060e2594b07f5d11d090c3c2?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 12, + "type": "track", + "uri": "spotify:track:7MUPbvNwlgqY1Sboxe9jJD" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/5Vp7LqcfAtx2U1RfIX8i7r" + }, + "href": "https://api.spotify.com/v1/artists/5Vp7LqcfAtx2U1RfIX8i7r", + "id": "5Vp7LqcfAtx2U1RfIX8i7r", + "name": "Point North", + "type": "artist", + "uri": "spotify:artist:5Vp7LqcfAtx2U1RfIX8i7r" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/6kQB2RN7WwryMdJ1MoQh1E" + }, + "href": "https://api.spotify.com/v1/artists/6kQB2RN7WwryMdJ1MoQh1E", + "id": "6kQB2RN7WwryMdJ1MoQh1E", + "name": "The Ghost Inside", + "type": "artist", + "uri": "spotify:artist:6kQB2RN7WwryMdJ1MoQh1E" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/3QUEnfQoenkZIyLZDMSegH" + }, + "href": "https://api.spotify.com/v1/albums/3QUEnfQoenkZIyLZDMSegH", + "id": "3QUEnfQoenkZIyLZDMSegH", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b27302e76460590f7379afd089cb", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e0202e76460590f7379afd089cb", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d0000485102e76460590f7379afd089cb", + "width": 64 + }], + "is_playable": true, + "name": "Safe And Sound", + "release_date": "2023-02-24", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:3QUEnfQoenkZIyLZDMSegH" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/5Vp7LqcfAtx2U1RfIX8i7r" + }, + "href": "https://api.spotify.com/v1/artists/5Vp7LqcfAtx2U1RfIX8i7r", + "id": "5Vp7LqcfAtx2U1RfIX8i7r", + "name": "Point North", + "type": "artist", + "uri": "spotify:artist:5Vp7LqcfAtx2U1RfIX8i7r" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/6kQB2RN7WwryMdJ1MoQh1E" + }, + "href": "https://api.spotify.com/v1/artists/6kQB2RN7WwryMdJ1MoQh1E", + "id": "6kQB2RN7WwryMdJ1MoQh1E", + "name": "The Ghost Inside", + "type": "artist", + "uri": "spotify:artist:6kQB2RN7WwryMdJ1MoQh1E" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 201402, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "USHR22312901" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/1LtXoOrqBYS8kcheVUt5Pr" + }, + "href": "https://api.spotify.com/v1/tracks/1LtXoOrqBYS8kcheVUt5Pr", + "id": "1LtXoOrqBYS8kcheVUt5Pr", + "is_local": false, + "name": "Safe And Sound", + "popularity": 58, + "preview_url": "https://p.scdn.co/mp3-preview/ba04d6efdced2e29119a9834316c4406d4fdc7b6?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:1LtXoOrqBYS8kcheVUt5Pr" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/28XopU8Uw6D6Wl7rIgCVNE" + }, + "href": "https://api.spotify.com/v1/artists/28XopU8Uw6D6Wl7rIgCVNE", + "id": "28XopU8Uw6D6Wl7rIgCVNE", + "name": "Villain of the Story", + "type": "artist", + "uri": "spotify:artist:28XopU8Uw6D6Wl7rIgCVNE" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/6h7gZv6v0tqGC6Q54v6VY1" + }, + "href": "https://api.spotify.com/v1/albums/6h7gZv6v0tqGC6Q54v6VY1", + "id": "6h7gZv6v0tqGC6Q54v6VY1", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273fd1a52f325d70b0f3203a71f", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02fd1a52f325d70b0f3203a71f", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851fd1a52f325d70b0f3203a71f", + "width": 64 + }], + "is_playable": true, + "name": "No More Sorrow", + "release_date": "2023-01-18", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:6h7gZv6v0tqGC6Q54v6VY1" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/28XopU8Uw6D6Wl7rIgCVNE" + }, + "href": "https://api.spotify.com/v1/artists/28XopU8Uw6D6Wl7rIgCVNE", + "id": "28XopU8Uw6D6Wl7rIgCVNE", + "name": "Villain of the Story", + "type": "artist", + "uri": "spotify:artist:28XopU8Uw6D6Wl7rIgCVNE" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 225095, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DEBZ72200363" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/2yInTIIIQQ1sYLJIFefzff" + }, + "href": "https://api.spotify.com/v1/tracks/2yInTIIIQQ1sYLJIFefzff", + "id": "2yInTIIIQQ1sYLJIFefzff", + "is_local": false, + "name": "No More Sorrow", + "popularity": 46, + "preview_url": "https://p.scdn.co/mp3-preview/077a4a54afdaa92f357ac5bacada85721da4e6e5?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:2yInTIIIQQ1sYLJIFefzff" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/3ALVPmg5sZexSVD2m9atEt" + }, + "href": "https://api.spotify.com/v1/artists/3ALVPmg5sZexSVD2m9atEt", + "id": "3ALVPmg5sZexSVD2m9atEt", + "name": "Invent Animate", + "type": "artist", + "uri": "spotify:artist:3ALVPmg5sZexSVD2m9atEt" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/0DumP1DzkNR7b0uIASVDcy" + }, + "href": "https://api.spotify.com/v1/albums/0DumP1DzkNR7b0uIASVDcy", + "id": "0DumP1DzkNR7b0uIASVDcy", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2732a683d3bd167b95bc28cd318", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e022a683d3bd167b95bc28cd318", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048512a683d3bd167b95bc28cd318", + "width": 64 + }], + "is_playable": true, + "name": "Immolation of Night", + "release_date": "2023-02-02", + "release_date_precision": "day", + "total_tracks": 3, + "type": "album", + "uri": "spotify:album:0DumP1DzkNR7b0uIASVDcy" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/3ALVPmg5sZexSVD2m9atEt" + }, + "href": "https://api.spotify.com/v1/artists/3ALVPmg5sZexSVD2m9atEt", + "id": "3ALVPmg5sZexSVD2m9atEt", + "name": "Invent Animate", + "type": "artist", + "uri": "spotify:artist:3ALVPmg5sZexSVD2m9atEt" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 230400, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "AUI442200164" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/3OOeWlT6cQYNbdJ4qcBipL" + }, + "href": "https://api.spotify.com/v1/tracks/3OOeWlT6cQYNbdJ4qcBipL", + "id": "3OOeWlT6cQYNbdJ4qcBipL", + "is_local": false, + "name": "Immolation of Night", + "popularity": 53, + "preview_url": "https://p.scdn.co/mp3-preview/cc596a9a8402cb06c243fff12275b5c29aed4727?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:3OOeWlT6cQYNbdJ4qcBipL" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/1U58LFQaBX4bS0GIiF0dBn" + }, + "href": "https://api.spotify.com/v1/artists/1U58LFQaBX4bS0GIiF0dBn", + "id": "1U58LFQaBX4bS0GIiF0dBn", + "name": "Destroy//Create", + "type": "artist", + "uri": "spotify:artist:1U58LFQaBX4bS0GIiF0dBn" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/60z2i9Azhj1TRXY43VdSAE" + }, + "href": "https://api.spotify.com/v1/albums/60z2i9Azhj1TRXY43VdSAE", + "id": "60z2i9Azhj1TRXY43VdSAE", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273efbedddb78ce8647c94433b9", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02efbedddb78ce8647c94433b9", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851efbedddb78ce8647c94433b9", + "width": 64 + }], + "is_playable": true, + "name": "Your Ghost…(été un)", + "release_date": "2023-01-06", + "release_date_precision": "day", + "total_tracks": 3, + "type": "album", + "uri": "spotify:album:60z2i9Azhj1TRXY43VdSAE" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/1U58LFQaBX4bS0GIiF0dBn" + }, + "href": "https://api.spotify.com/v1/artists/1U58LFQaBX4bS0GIiF0dBn", + "id": "1U58LFQaBX4bS0GIiF0dBn", + "name": "Destroy//Create", + "type": "artist", + "uri": "spotify:artist:1U58LFQaBX4bS0GIiF0dBn" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 237277, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "FRX762271302" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/67apRpuDfI6vMtl6ZNVbFJ" + }, + "href": "https://api.spotify.com/v1/tracks/67apRpuDfI6vMtl6ZNVbFJ", + "id": "67apRpuDfI6vMtl6ZNVbFJ", + "is_local": false, + "name": "Your Ghost…(été un)", + "popularity": 40, + "preview_url": "https://p.scdn.co/mp3-preview/563733bd40ac1a715a14f78c39e6d70b075e6368?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:67apRpuDfI6vMtl6ZNVbFJ" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "album", + "album_type": "album", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/4fnono0JCZFAeeaecrI7kg" + }, + "href": "https://api.spotify.com/v1/artists/4fnono0JCZFAeeaecrI7kg", + "id": "4fnono0JCZFAeeaecrI7kg", + "name": "Solence", + "type": "artist", + "uri": "spotify:artist:4fnono0JCZFAeeaecrI7kg" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/5lq3RYK2UtsoM0KWq0dDNk" + }, + "href": "https://api.spotify.com/v1/albums/5lq3RYK2UtsoM0KWq0dDNk", + "id": "5lq3RYK2UtsoM0KWq0dDNk", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273e57f0ad646af399eef39f942", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02e57f0ad646af399eef39f942", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851e57f0ad646af399eef39f942", + "width": 64 + }], + "is_playable": true, + "name": "Hope is a Cult", + "release_date": "2023-02-17", + "release_date_precision": "day", + "total_tracks": 13, + "type": "album", + "uri": "spotify:album:5lq3RYK2UtsoM0KWq0dDNk" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/4fnono0JCZFAeeaecrI7kg" + }, + "href": "https://api.spotify.com/v1/artists/4fnono0JCZFAeeaecrI7kg", + "id": "4fnono0JCZFAeeaecrI7kg", + "name": "Solence", + "type": "artist", + "uri": "spotify:artist:4fnono0JCZFAeeaecrI7kg" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 221347, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "USHR22215702" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/0Fa9nx13nJ7CiZLRM3in1S" + }, + "href": "https://api.spotify.com/v1/tracks/0Fa9nx13nJ7CiZLRM3in1S", + "id": "0Fa9nx13nJ7CiZLRM3in1S", + "is_local": false, + "name": "Best For You", + "popularity": 52, + "preview_url": "https://p.scdn.co/mp3-preview/8109003be715b44df8cc41cd93f9af2838fc514f?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 2, + "type": "track", + "uri": "spotify:track:0Fa9nx13nJ7CiZLRM3in1S" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2o6toWFM0eynwdOjVJfoSQ" + }, + "href": "https://api.spotify.com/v1/artists/2o6toWFM0eynwdOjVJfoSQ", + "id": "2o6toWFM0eynwdOjVJfoSQ", + "name": "alt.", + "type": "artist", + "uri": "spotify:artist:2o6toWFM0eynwdOjVJfoSQ" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/76psVqthi8ZmsWCHBwDJxd" + }, + "href": "https://api.spotify.com/v1/albums/76psVqthi8ZmsWCHBwDJxd", + "id": "76psVqthi8ZmsWCHBwDJxd", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2737ed58cae6b825c2d16269065", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e027ed58cae6b825c2d16269065", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048517ed58cae6b825c2d16269065", + "width": 64 + }], + "is_playable": true, + "name": "THE GREAT DEPRESSION", + "release_date": "2023-02-09", + "release_date_precision": "day", + "total_tracks": 2, + "type": "album", + "uri": "spotify:album:76psVqthi8ZmsWCHBwDJxd" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2o6toWFM0eynwdOjVJfoSQ" + }, + "href": "https://api.spotify.com/v1/artists/2o6toWFM0eynwdOjVJfoSQ", + "id": "2o6toWFM0eynwdOjVJfoSQ", + "name": "alt.", + "type": "artist", + "uri": "spotify:artist:2o6toWFM0eynwdOjVJfoSQ" + }], + "available_markets": ["AR", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 187428, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "AUUF12301364" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/4XLAtJLVLFvSUXRZFc0dqr" + }, + "href": "https://api.spotify.com/v1/tracks/4XLAtJLVLFvSUXRZFc0dqr", + "id": "4XLAtJLVLFvSUXRZFc0dqr", + "is_local": false, + "name": "THE GREAT DEPRESSION", + "popularity": 39, + "preview_url": "https://p.scdn.co/mp3-preview/af35d74354454f5e5335b6b214932fd381139c22?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:4XLAtJLVLFvSUXRZFc0dqr" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/1S4xN9nvW5vlFoRBisdxUL" + }, + "href": "https://api.spotify.com/v1/artists/1S4xN9nvW5vlFoRBisdxUL", + "id": "1S4xN9nvW5vlFoRBisdxUL", + "name": "Halocene", + "type": "artist", + "uri": "spotify:artist:1S4xN9nvW5vlFoRBisdxUL" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/1g3ByU8bZ8KclMW1mLVwxz" + }, + "href": "https://api.spotify.com/v1/albums/1g3ByU8bZ8KclMW1mLVwxz", + "id": "1g3ByU8bZ8KclMW1mLVwxz", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273ba34a6672f918c5b71463f1b", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02ba34a6672f918c5b71463f1b", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851ba34a6672f918c5b71463f1b", + "width": 64 + }], + "is_playable": true, + "name": "Hold Me, Help Me", + "release_date": "2022-11-04", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:1g3ByU8bZ8KclMW1mLVwxz" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/1S4xN9nvW5vlFoRBisdxUL" + }, + "href": "https://api.spotify.com/v1/artists/1S4xN9nvW5vlFoRBisdxUL", + "id": "1S4xN9nvW5vlFoRBisdxUL", + "name": "Halocene", + "type": "artist", + "uri": "spotify:artist:1S4xN9nvW5vlFoRBisdxUL" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 225418, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "QZPJ32206985" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/5PonHqoB85p240oUT9AIDj" + }, + "href": "https://api.spotify.com/v1/tracks/5PonHqoB85p240oUT9AIDj", + "id": "5PonHqoB85p240oUT9AIDj", + "is_local": false, + "name": "Hold Me, Help Me", + "popularity": 45, + "preview_url": "https://p.scdn.co/mp3-preview/30e1ec7a1b841cacadde065d5afc9b9bd4a93b22?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:5PonHqoB85p240oUT9AIDj" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/12A5ksM0yYvX6ULrJmIvQN" + }, + "href": "https://api.spotify.com/v1/artists/12A5ksM0yYvX6ULrJmIvQN", + "id": "12A5ksM0yYvX6ULrJmIvQN", + "name": "As The Structure Fails", + "type": "artist", + "uri": "spotify:artist:12A5ksM0yYvX6ULrJmIvQN" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/78jDD0o4blFWZTpo9tHWoh" + }, + "href": "https://api.spotify.com/v1/albums/78jDD0o4blFWZTpo9tHWoh", + "id": "78jDD0o4blFWZTpo9tHWoh", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b27375ca687a788267a62e26c874", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e0275ca687a788267a62e26c874", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d0000485175ca687a788267a62e26c874", + "width": 64 + }], + "is_playable": true, + "name": "Talk to Me", + "release_date": "2023-01-20", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:78jDD0o4blFWZTpo9tHWoh" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/12A5ksM0yYvX6ULrJmIvQN" + }, + "href": "https://api.spotify.com/v1/artists/12A5ksM0yYvX6ULrJmIvQN", + "id": "12A5ksM0yYvX6ULrJmIvQN", + "name": "As The Structure Fails", + "type": "artist", + "uri": "spotify:artist:12A5ksM0yYvX6ULrJmIvQN" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 196500, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "TCAGR2226469" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/4QOuEQBmCJJJhYTkrE5Zy2" + }, + "href": "https://api.spotify.com/v1/tracks/4QOuEQBmCJJJhYTkrE5Zy2", + "id": "4QOuEQBmCJJJhYTkrE5Zy2", + "is_local": false, + "name": "Talk to Me", + "popularity": 41, + "preview_url": "https://p.scdn.co/mp3-preview/f9c56f5c5817ca3214e0f1e04f7f192cceadee81?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:4QOuEQBmCJJJhYTkrE5Zy2" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/12qp69G4vHfQcJUbjONDY1" + }, + "href": "https://api.spotify.com/v1/artists/12qp69G4vHfQcJUbjONDY1", + "id": "12qp69G4vHfQcJUbjONDY1", + "name": "After Hour Animals", + "type": "artist", + "uri": "spotify:artist:12qp69G4vHfQcJUbjONDY1" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/4PpW6GVABbHkRxGHnCU0za" + }, + "href": "https://api.spotify.com/v1/albums/4PpW6GVABbHkRxGHnCU0za", + "id": "4PpW6GVABbHkRxGHnCU0za", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273226cf1263f126665a1d7012b", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02226cf1263f126665a1d7012b", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851226cf1263f126665a1d7012b", + "width": 64 + }], + "is_playable": true, + "name": "Dangerous", + "release_date": "2022-12-16", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:4PpW6GVABbHkRxGHnCU0za" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/12qp69G4vHfQcJUbjONDY1" + }, + "href": "https://api.spotify.com/v1/artists/12qp69G4vHfQcJUbjONDY1", + "id": "12qp69G4vHfQcJUbjONDY1", + "name": "After Hour Animals", + "type": "artist", + "uri": "spotify:artist:12qp69G4vHfQcJUbjONDY1" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 198206, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "QZTB52203152" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/3E0kmaCVPaxw4D55Nt2cen" + }, + "href": "https://api.spotify.com/v1/tracks/3E0kmaCVPaxw4D55Nt2cen", + "id": "3E0kmaCVPaxw4D55Nt2cen", + "is_local": false, + "name": "Dangerous", + "popularity": 40, + "preview_url": "https://p.scdn.co/mp3-preview/8487aef9e3ef88495940c90c215b2bddad7c282d?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:3E0kmaCVPaxw4D55Nt2cen" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2WQQRKpu2PMLsHSrUJmyCS" + }, + "href": "https://api.spotify.com/v1/artists/2WQQRKpu2PMLsHSrUJmyCS", + "id": "2WQQRKpu2PMLsHSrUJmyCS", + "name": "The Veer Union", + "type": "artist", + "uri": "spotify:artist:2WQQRKpu2PMLsHSrUJmyCS" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/2N96LsbA1SO5Q6BpjIuY9O" + }, + "href": "https://api.spotify.com/v1/albums/2N96LsbA1SO5Q6BpjIuY9O", + "id": "2N96LsbA1SO5Q6BpjIuY9O", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b27363ac5c1e10b35194b226fdf0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e0263ac5c1e10b35194b226fdf0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d0000485163ac5c1e10b35194b226fdf0", + "width": 64 + }], + "is_playable": true, + "name": "10:35", + "release_date": "2023-01-20", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:2N96LsbA1SO5Q6BpjIuY9O" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2WQQRKpu2PMLsHSrUJmyCS" + }, + "href": "https://api.spotify.com/v1/artists/2WQQRKpu2PMLsHSrUJmyCS", + "id": "2WQQRKpu2PMLsHSrUJmyCS", + "name": "The Veer Union", + "type": "artist", + "uri": "spotify:artist:2WQQRKpu2PMLsHSrUJmyCS" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 169000, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "QZSYP2269313" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/0F0lT8EmvnKUYZ1YLR6ops" + }, + "href": "https://api.spotify.com/v1/tracks/0F0lT8EmvnKUYZ1YLR6ops", + "id": "0F0lT8EmvnKUYZ1YLR6ops", + "is_local": false, + "name": "10:35", + "popularity": 47, + "preview_url": "https://p.scdn.co/mp3-preview/046ad91b86d4351861baa5c5245ff2e71866e425?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:0F0lT8EmvnKUYZ1YLR6ops" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2x583f2zJEjkiPd6IY4yfW" + }, + "href": "https://api.spotify.com/v1/artists/2x583f2zJEjkiPd6IY4yfW", + "id": "2x583f2zJEjkiPd6IY4yfW", + "name": "The Anchor", + "type": "artist", + "uri": "spotify:artist:2x583f2zJEjkiPd6IY4yfW" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/52ssN73hMqj9cv16Zc0JLp" + }, + "href": "https://api.spotify.com/v1/albums/52ssN73hMqj9cv16Zc0JLp", + "id": "52ssN73hMqj9cv16Zc0JLp", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b27312f321dd8902d57dae61ad36", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e0212f321dd8902d57dae61ad36", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d0000485112f321dd8902d57dae61ad36", + "width": 64 + }], + "is_playable": true, + "name": "Let Down", + "release_date": "2022-12-16", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:52ssN73hMqj9cv16Zc0JLp" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2x583f2zJEjkiPd6IY4yfW" + }, + "href": "https://api.spotify.com/v1/artists/2x583f2zJEjkiPd6IY4yfW", + "id": "2x583f2zJEjkiPd6IY4yfW", + "name": "The Anchor", + "type": "artist", + "uri": "spotify:artist:2x583f2zJEjkiPd6IY4yfW" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 269777, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "QZTB22233018" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/2JrPhJ74FfygxtRYMXU0Fk" + }, + "href": "https://api.spotify.com/v1/tracks/2JrPhJ74FfygxtRYMXU0Fk", + "id": "2JrPhJ74FfygxtRYMXU0Fk", + "is_local": false, + "name": "Let Down", + "popularity": 40, + "preview_url": "https://p.scdn.co/mp3-preview/e13d3cbbc220b5ebb86b1d824a4f00d453a0cee4?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:2JrPhJ74FfygxtRYMXU0Fk" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "album", + "album_type": "album", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/17pjImdVvIja9Es8R436NP" + }, + "href": "https://api.spotify.com/v1/artists/17pjImdVvIja9Es8R436NP", + "id": "17pjImdVvIja9Es8R436NP", + "name": "Foxblood", + "type": "artist", + "uri": "spotify:artist:17pjImdVvIja9Es8R436NP" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/40dWOUbTdbTDHgaRIKc58J" + }, + "href": "https://api.spotify.com/v1/albums/40dWOUbTdbTDHgaRIKc58J", + "id": "40dWOUbTdbTDHgaRIKc58J", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273bb2ac9648d31b0fd6774b3a4", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02bb2ac9648d31b0fd6774b3a4", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851bb2ac9648d31b0fd6774b3a4", + "width": 64 + }], + "is_playable": true, + "name": "Dissociation Vacation", + "release_date": "2022-12-02", + "release_date_precision": "day", + "total_tracks": 7, + "type": "album", + "uri": "spotify:album:40dWOUbTdbTDHgaRIKc58J" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/17pjImdVvIja9Es8R436NP" + }, + "href": "https://api.spotify.com/v1/artists/17pjImdVvIja9Es8R436NP", + "id": "17pjImdVvIja9Es8R436NP", + "name": "Foxblood", + "type": "artist", + "uri": "spotify:artist:17pjImdVvIja9Es8R436NP" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 251330, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "FRX872204825" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/5fETISA0KLKcKb8pRHMgqW" + }, + "href": "https://api.spotify.com/v1/tracks/5fETISA0KLKcKb8pRHMgqW", + "id": "5fETISA0KLKcKb8pRHMgqW", + "is_local": false, + "name": "Kingdom Come", + "popularity": 39, + "preview_url": "https://p.scdn.co/mp3-preview/b17be4b07acc8355bb274c87e60a45f09469deb5?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 5, + "type": "track", + "uri": "spotify:track:5fETISA0KLKcKb8pRHMgqW" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/1YcOnsBEycC9X5OY6kUzmV" + }, + "href": "https://api.spotify.com/v1/artists/1YcOnsBEycC9X5OY6kUzmV", + "id": "1YcOnsBEycC9X5OY6kUzmV", + "name": "Main-De-Gloire", + "type": "artist", + "uri": "spotify:artist:1YcOnsBEycC9X5OY6kUzmV" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/5K1VQBpd6392NncfwKl6kG" + }, + "href": "https://api.spotify.com/v1/albums/5K1VQBpd6392NncfwKl6kG", + "id": "5K1VQBpd6392NncfwKl6kG", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273f8a4ae3fd59507f9fed01e92", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02f8a4ae3fd59507f9fed01e92", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851f8a4ae3fd59507f9fed01e92", + "width": 64 + }], + "is_playable": true, + "name": "W.A.R", + "release_date": "2023-01-24", + "release_date_precision": "day", + "total_tracks": 2, + "type": "album", + "uri": "spotify:album:5K1VQBpd6392NncfwKl6kG" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/1YcOnsBEycC9X5OY6kUzmV" + }, + "href": "https://api.spotify.com/v1/artists/1YcOnsBEycC9X5OY6kUzmV", + "id": "1YcOnsBEycC9X5OY6kUzmV", + "name": "Main-De-Gloire", + "type": "artist", + "uri": "spotify:artist:1YcOnsBEycC9X5OY6kUzmV" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 207980, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "TCAGT2367150" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/75ipV1ycKTZuy6CYb6wa0j" + }, + "href": "https://api.spotify.com/v1/tracks/75ipV1ycKTZuy6CYb6wa0j", + "id": "75ipV1ycKTZuy6CYb6wa0j", + "is_local": false, + "name": "W.a.R", + "popularity": 45, + "preview_url": "https://p.scdn.co/mp3-preview/2a3a0d9d5ffc5384c6914a40e028e6209cd90fa6?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:75ipV1ycKTZuy6CYb6wa0j" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "album", + "album_type": "album", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2WQQRKpu2PMLsHSrUJmyCS" + }, + "href": "https://api.spotify.com/v1/artists/2WQQRKpu2PMLsHSrUJmyCS", + "id": "2WQQRKpu2PMLsHSrUJmyCS", + "name": "The Veer Union", + "type": "artist", + "uri": "spotify:artist:2WQQRKpu2PMLsHSrUJmyCS" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/6nBEVXXXly3MKAgqLz8N8W" + }, + "href": "https://api.spotify.com/v1/albums/6nBEVXXXly3MKAgqLz8N8W", + "id": "6nBEVXXXly3MKAgqLz8N8W", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273352c0026079c3a717fac3c6d", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02352c0026079c3a717fac3c6d", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851352c0026079c3a717fac3c6d", + "width": 64 + }], + "is_playable": true, + "name": "MANIFESTATIONS (DELUXE EDITION)", + "release_date": "2022-12-16", + "release_date_precision": "day", + "total_tracks": 15, + "type": "album", + "uri": "spotify:album:6nBEVXXXly3MKAgqLz8N8W" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2WQQRKpu2PMLsHSrUJmyCS" + }, + "href": "https://api.spotify.com/v1/artists/2WQQRKpu2PMLsHSrUJmyCS", + "id": "2WQQRKpu2PMLsHSrUJmyCS", + "name": "The Veer Union", + "type": "artist", + "uri": "spotify:artist:2WQQRKpu2PMLsHSrUJmyCS" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 180020, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "QZSYP2298331" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/3lOqKMANmDGUTtTBvCPyKf" + }, + "href": "https://api.spotify.com/v1/tracks/3lOqKMANmDGUTtTBvCPyKf", + "id": "3lOqKMANmDGUTtTBvCPyKf", + "is_local": false, + "name": "In The Light Of Innocence", + "popularity": 42, + "preview_url": "https://p.scdn.co/mp3-preview/319a0e6d9318c5328dfd25ce57b4d8ffd065937c?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 8, + "type": "track", + "uri": "spotify:track:3lOqKMANmDGUTtTBvCPyKf" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/79VoWRyWV2e3rTHm1fb6N0" + }, + "href": "https://api.spotify.com/v1/artists/79VoWRyWV2e3rTHm1fb6N0", + "id": "79VoWRyWV2e3rTHm1fb6N0", + "name": "Morgan Thomaso", + "type": "artist", + "uri": "spotify:artist:79VoWRyWV2e3rTHm1fb6N0" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/2yMgp5XJfvhpTgAg7wZqRF" + }, + "href": "https://api.spotify.com/v1/artists/2yMgp5XJfvhpTgAg7wZqRF", + "id": "2yMgp5XJfvhpTgAg7wZqRF", + "name": "Victor Borba", + "type": "artist", + "uri": "spotify:artist:2yMgp5XJfvhpTgAg7wZqRF" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/6BZE9AyYDPkfejgH7c4DJs" + }, + "href": "https://api.spotify.com/v1/artists/6BZE9AyYDPkfejgH7c4DJs", + "id": "6BZE9AyYDPkfejgH7c4DJs", + "name": "Hugo Bringart", + "type": "artist", + "uri": "spotify:artist:6BZE9AyYDPkfejgH7c4DJs" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/4gosCMpbomQ5OGjbnqeiUn" + }, + "href": "https://api.spotify.com/v1/albums/4gosCMpbomQ5OGjbnqeiUn", + "id": "4gosCMpbomQ5OGjbnqeiUn", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2731a830852843fc30cda49f27e", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e021a830852843fc30cda49f27e", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048511a830852843fc30cda49f27e", + "width": 64 + }], + "is_playable": true, + "name": "Majesty", + "release_date": "2022-12-15", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:4gosCMpbomQ5OGjbnqeiUn" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/79VoWRyWV2e3rTHm1fb6N0" + }, + "href": "https://api.spotify.com/v1/artists/79VoWRyWV2e3rTHm1fb6N0", + "id": "79VoWRyWV2e3rTHm1fb6N0", + "name": "Morgan Thomaso", + "type": "artist", + "uri": "spotify:artist:79VoWRyWV2e3rTHm1fb6N0" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/2yMgp5XJfvhpTgAg7wZqRF" + }, + "href": "https://api.spotify.com/v1/artists/2yMgp5XJfvhpTgAg7wZqRF", + "id": "2yMgp5XJfvhpTgAg7wZqRF", + "name": "Victor Borba", + "type": "artist", + "uri": "spotify:artist:2yMgp5XJfvhpTgAg7wZqRF" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/6BZE9AyYDPkfejgH7c4DJs" + }, + "href": "https://api.spotify.com/v1/artists/6BZE9AyYDPkfejgH7c4DJs", + "id": "6BZE9AyYDPkfejgH7c4DJs", + "name": "Hugo Bringart", + "type": "artist", + "uri": "spotify:artist:6BZE9AyYDPkfejgH7c4DJs" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/4UPSjbEaWn0LrLoF4f8ipX" + }, + "href": "https://api.spotify.com/v1/artists/4UPSjbEaWn0LrLoF4f8ipX", + "id": "4UPSjbEaWn0LrLoF4f8ipX", + "name": "Cartoon Theory", + "type": "artist", + "uri": "spotify:artist:4UPSjbEaWn0LrLoF4f8ipX" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 281946, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "QZTB22248985" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/5o9LbFRtoxDRXiJdlPOXSy" + }, + "href": "https://api.spotify.com/v1/tracks/5o9LbFRtoxDRXiJdlPOXSy", + "id": "5o9LbFRtoxDRXiJdlPOXSy", + "is_local": false, + "name": "Majesty", + "popularity": 39, + "preview_url": "https://p.scdn.co/mp3-preview/f0d55f0fdca6673841cde69a7af8fc7d59f73195?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:5o9LbFRtoxDRXiJdlPOXSy" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/3kSDOw6bEMSStOjqLR2kVX" + }, + "href": "https://api.spotify.com/v1/artists/3kSDOw6bEMSStOjqLR2kVX", + "id": "3kSDOw6bEMSStOjqLR2kVX", + "name": "Colorblind", + "type": "artist", + "uri": "spotify:artist:3kSDOw6bEMSStOjqLR2kVX" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/29M640Q87avBIyyLC1rWlT" + }, + "href": "https://api.spotify.com/v1/albums/29M640Q87avBIyyLC1rWlT", + "id": "29M640Q87avBIyyLC1rWlT", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b27352daea405b73ab7d12d2b5ac", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e0252daea405b73ab7d12d2b5ac", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d0000485152daea405b73ab7d12d2b5ac", + "width": 64 + }], + "is_playable": true, + "name": "Colorblind EP", + "release_date": "2022-12-09", + "release_date_precision": "day", + "total_tracks": 5, + "type": "album", + "uri": "spotify:album:29M640Q87avBIyyLC1rWlT" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/3kSDOw6bEMSStOjqLR2kVX" + }, + "href": "https://api.spotify.com/v1/artists/3kSDOw6bEMSStOjqLR2kVX", + "id": "3kSDOw6bEMSStOjqLR2kVX", + "name": "Colorblind", + "type": "artist", + "uri": "spotify:artist:3kSDOw6bEMSStOjqLR2kVX" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 222631, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "QZRUP2101306" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/4ADgspuZLhlsiAijC9oDAR" + }, + "href": "https://api.spotify.com/v1/tracks/4ADgspuZLhlsiAijC9oDAR", + "id": "4ADgspuZLhlsiAijC9oDAR", + "is_local": false, + "name": "Everything but Faith", + "popularity": 45, + "preview_url": "https://p.scdn.co/mp3-preview/05d2cd12d291b36b5d01e883dff232a3475826f8?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 3, + "type": "track", + "uri": "spotify:track:4ADgspuZLhlsiAijC9oDAR" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "album", + "album_type": "album", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6HXpMYkohJ9wOCdUev8qzS" + }, + "href": "https://api.spotify.com/v1/artists/6HXpMYkohJ9wOCdUev8qzS", + "id": "6HXpMYkohJ9wOCdUev8qzS", + "name": "Vatic", + "type": "artist", + "uri": "spotify:artist:6HXpMYkohJ9wOCdUev8qzS" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/6eSyQdEzLe207n5TcOjx88" + }, + "href": "https://api.spotify.com/v1/albums/6eSyQdEzLe207n5TcOjx88", + "id": "6eSyQdEzLe207n5TcOjx88", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273c7e11f46d1dac903fe505bf4", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02c7e11f46d1dac903fe505bf4", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851c7e11f46d1dac903fe505bf4", + "width": 64 + }], + "is_playable": true, + "name": "Mercer 217", + "release_date": "2022-10-21", + "release_date_precision": "day", + "total_tracks": 8, + "type": "album", + "uri": "spotify:album:6eSyQdEzLe207n5TcOjx88" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6HXpMYkohJ9wOCdUev8qzS" + }, + "href": "https://api.spotify.com/v1/artists/6HXpMYkohJ9wOCdUev8qzS", + "id": "6HXpMYkohJ9wOCdUev8qzS", + "name": "Vatic", + "type": "artist", + "uri": "spotify:artist:6HXpMYkohJ9wOCdUev8qzS" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 231999, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "AUBEC2221706" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/6YlXUTJWpYofpMXgfrmks8" + }, + "href": "https://api.spotify.com/v1/tracks/6YlXUTJWpYofpMXgfrmks8", + "id": "6YlXUTJWpYofpMXgfrmks8", + "is_local": false, + "name": "Remember East Mercer", + "popularity": 37, + "preview_url": "https://p.scdn.co/mp3-preview/8819e3373f2909d07787885c165fd995d92d3b38?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 7, + "type": "track", + "uri": "spotify:track:6YlXUTJWpYofpMXgfrmks8" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/0rsHKddRhuze38fVL0egOY" + }, + "href": "https://api.spotify.com/v1/artists/0rsHKddRhuze38fVL0egOY", + "id": "0rsHKddRhuze38fVL0egOY", + "name": "For The Fallen Dreams", + "type": "artist", + "uri": "spotify:artist:0rsHKddRhuze38fVL0egOY" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/3UDy59MHq2lMzX04LeH6qa" + }, + "href": "https://api.spotify.com/v1/albums/3UDy59MHq2lMzX04LeH6qa", + "id": "3UDy59MHq2lMzX04LeH6qa", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2735e2c71c1fae2d11a6aaf1041", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e025e2c71c1fae2d11a6aaf1041", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048515e2c71c1fae2d11a6aaf1041", + "width": 64 + }], + "is_playable": true, + "name": "No Heaven", + "release_date": "2022-10-21", + "release_date_precision": "day", + "total_tracks": 4, + "type": "album", + "uri": "spotify:album:3UDy59MHq2lMzX04LeH6qa" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/0rsHKddRhuze38fVL0egOY" + }, + "href": "https://api.spotify.com/v1/artists/0rsHKddRhuze38fVL0egOY", + "id": "0rsHKddRhuze38fVL0egOY", + "name": "For The Fallen Dreams", + "type": "artist", + "uri": "spotify:artist:0rsHKddRhuze38fVL0egOY" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 204000, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DEYO62200079" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/5nxZSkMS7VpbjEHaCQ39a1" + }, + "href": "https://api.spotify.com/v1/tracks/5nxZSkMS7VpbjEHaCQ39a1", + "id": "5nxZSkMS7VpbjEHaCQ39a1", + "is_local": false, + "name": "No Heaven", + "popularity": 48, + "preview_url": "https://p.scdn.co/mp3-preview/79ebf42e5bdc83ea9f7363fef621f3bed2d76556?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:5nxZSkMS7VpbjEHaCQ39a1" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "compilation", + "album_type": "compilation", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/52qKfVcIV4GS8A8Vay2xtt" + }, + "href": "https://api.spotify.com/v1/artists/52qKfVcIV4GS8A8Vay2xtt", + "id": "52qKfVcIV4GS8A8Vay2xtt", + "name": "Ice Nine Kills", + "type": "artist", + "uri": "spotify:artist:52qKfVcIV4GS8A8Vay2xtt" + }], + "available_markets": ["AE", "AL", "AR", "AT", "AU", "BA", "BE", "BG", "BH", "BO", "BR", "CA", "CH", "CI", "CL", "CM", "CO", "CR", "CW", "CY", "CZ", "DE", "DK", "DO", "DZ", "EC", "EE", "EG", "ES", "FI", "FR", "GB", "GH", "GR", "GT", "HK", "HN", "HR", "HU", "ID", "IE", "IL", "IN", "IS", "IT", "JP", "KE", "KH", "KR", "KW", "LB", "LK", "LT", "LU", "LV", "MA", "ME", "MK", "MT", "MX", "MY", "NG", "NI", "NL", "NO", "NZ", "OM", "PA", "PE", "PH", "PL", "PT", "PY", "QA", "RO", "RS", "SA", "SE", "SG", "SI", "SK", "SN", "SV", "TH", "TN", "TR", "TT", "TW", "UA", "US", "UY", "VE", "VN", "XK", "ZA"], + "external_urls": { + "spotify": "https://open.spotify.com/album/273LyHQV9St48MzqO73UkX" + }, + "href": "https://api.spotify.com/v1/albums/273LyHQV9St48MzqO73UkX", + "id": "273LyHQV9St48MzqO73UkX", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273939aaba2289ceaae1024a705", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02939aaba2289ceaae1024a705", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851939aaba2289ceaae1024a705", + "width": 64 + }], + "is_playable": true, + "name": "The Shower Scene Playlist", + "release_date": "2022-06-24", + "release_date_precision": "day", + "total_tracks": 7, + "type": "album", + "uri": "spotify:album:273LyHQV9St48MzqO73UkX" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/52qKfVcIV4GS8A8Vay2xtt" + }, + "href": "https://api.spotify.com/v1/artists/52qKfVcIV4GS8A8Vay2xtt", + "id": "52qKfVcIV4GS8A8Vay2xtt", + "name": "Ice Nine Kills", + "type": "artist", + "uri": "spotify:artist:52qKfVcIV4GS8A8Vay2xtt" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/3a0Ol9AaugGXjf1ZQcAs1U" + }, + "href": "https://api.spotify.com/v1/artists/3a0Ol9AaugGXjf1ZQcAs1U", + "id": "3a0Ol9AaugGXjf1ZQcAs1U", + "name": "Jacoby Shaddix", + "type": "artist", + "uri": "spotify:artist:3a0Ol9AaugGXjf1ZQcAs1U" + }], + "available_markets": ["AE", "AL", "AR", "AT", "AU", "BA", "BE", "BG", "BH", "BO", "BR", "CA", "CH", "CI", "CL", "CM", "CO", "CR", "CW", "CY", "CZ", "DE", "DK", "DO", "DZ", "EC", "EE", "EG", "ES", "FI", "FR", "GB", "GH", "GR", "GT", "HK", "HN", "HR", "HU", "ID", "IE", "IL", "IN", "IS", "IT", "JP", "KE", "KH", "KR", "KW", "LB", "LK", "LT", "LU", "LV", "MA", "ME", "MK", "MT", "MX", "MY", "NG", "NI", "NL", "NO", "NZ", "OM", "PA", "PE", "PH", "PL", "PT", "PY", "QA", "RO", "RS", "SA", "SE", "SG", "SI", "SK", "SN", "SV", "TH", "TN", "TR", "TT", "TW", "UA", "US", "UY", "VE", "VN", "XK", "ZA"], + "disc_number": 1, + "duration_ms": 205276, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "US5262124132" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/4lEbtjtLpF0YxRCFWeswAG" + }, + "href": "https://api.spotify.com/v1/tracks/4lEbtjtLpF0YxRCFWeswAG", + "id": "4lEbtjtLpF0YxRCFWeswAG", + "is_local": false, + "name": "Hip To Be Scared", + "popularity": 39, + "preview_url": null, + "track": true, + "track_number": 2, + "type": "track", + "uri": "spotify:track:4lEbtjtLpF0YxRCFWeswAG" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6DAXLVtNvEBAy0ncBuaQGv" + }, + "href": "https://api.spotify.com/v1/artists/6DAXLVtNvEBAy0ncBuaQGv", + "id": "6DAXLVtNvEBAy0ncBuaQGv", + "name": "Grieve", + "type": "artist", + "uri": "spotify:artist:6DAXLVtNvEBAy0ncBuaQGv" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/0wKIiZrKsOPxqhRxvlWcQ0" + }, + "href": "https://api.spotify.com/v1/albums/0wKIiZrKsOPxqhRxvlWcQ0", + "id": "0wKIiZrKsOPxqhRxvlWcQ0", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2734009a46786fe217474f3f50a", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e024009a46786fe217474f3f50a", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048514009a46786fe217474f3f50a", + "width": 64 + }], + "is_playable": true, + "name": "Empty, Like Me.", + "release_date": "2022-10-28", + "release_date_precision": "day", + "total_tracks": 5, + "type": "album", + "uri": "spotify:album:0wKIiZrKsOPxqhRxvlWcQ0" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6DAXLVtNvEBAy0ncBuaQGv" + }, + "href": "https://api.spotify.com/v1/artists/6DAXLVtNvEBAy0ncBuaQGv", + "id": "6DAXLVtNvEBAy0ncBuaQGv", + "name": "Grieve", + "type": "artist", + "uri": "spotify:artist:6DAXLVtNvEBAy0ncBuaQGv" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/5KrUtVY5gE9p9U52TT42rR" + }, + "href": "https://api.spotify.com/v1/artists/5KrUtVY5gE9p9U52TT42rR", + "id": "5KrUtVY5gE9p9U52TT42rR", + "name": "Joshua Roberts", + "type": "artist", + "uri": "spotify:artist:5KrUtVY5gE9p9U52TT42rR" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 264710, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "QZTAS2251535" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/1oaRm4ubgYTSlDNM0xGbgR" + }, + "href": "https://api.spotify.com/v1/tracks/1oaRm4ubgYTSlDNM0xGbgR", + "id": "1oaRm4ubgYTSlDNM0xGbgR", + "is_local": false, + "name": "Empty, Like Me.", + "popularity": 34, + "preview_url": "https://p.scdn.co/mp3-preview/b1dcc228490252d49fe209404c9c52de0cd5ab64?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 3, + "type": "track", + "uri": "spotify:track:1oaRm4ubgYTSlDNM0xGbgR" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "album", + "album_type": "album", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/7iWiAD5LLKyiox2grgfmUT" + }, + "href": "https://api.spotify.com/v1/artists/7iWiAD5LLKyiox2grgfmUT", + "id": "7iWiAD5LLKyiox2grgfmUT", + "name": "Bullet For My Valentine", + "type": "artist", + "uri": "spotify:artist:7iWiAD5LLKyiox2grgfmUT" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AO", "AR", "AU", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BZ", "CA", "CD", "CG", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KH", "KI", "KM", "KN", "KR", "KW", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UG", "US", "UY", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/6FqFZ1gdiCXhCPWhFbF1fF" + }, + "href": "https://api.spotify.com/v1/albums/6FqFZ1gdiCXhCPWhFbF1fF", + "id": "6FqFZ1gdiCXhCPWhFbF1fF", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273417504217838fa0b6eae1061", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02417504217838fa0b6eae1061", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851417504217838fa0b6eae1061", + "width": 64 + }], + "is_playable": true, + "name": "Bullet For My Valentine (Deluxe)", + "release_date": "2022-08-05", + "release_date_precision": "day", + "total_tracks": 15, + "type": "album", + "uri": "spotify:album:6FqFZ1gdiCXhCPWhFbF1fF" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/7iWiAD5LLKyiox2grgfmUT" + }, + "href": "https://api.spotify.com/v1/artists/7iWiAD5LLKyiox2grgfmUT", + "id": "7iWiAD5LLKyiox2grgfmUT", + "name": "Bullet For My Valentine", + "type": "artist", + "uri": "spotify:artist:7iWiAD5LLKyiox2grgfmUT" + }], + "available_markets": ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "MD", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 235018, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "GBUM72201809" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/4f1Bxzgor1HNbdm2kGl8mL" + }, + "href": "https://api.spotify.com/v1/tracks/4f1Bxzgor1HNbdm2kGl8mL", + "id": "4f1Bxzgor1HNbdm2kGl8mL", + "is_local": false, + "name": "This Means War", + "popularity": 48, + "preview_url": null, + "track": true, + "track_number": 15, + "type": "track", + "uri": "spotify:track:4f1Bxzgor1HNbdm2kGl8mL" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "album", + "album_type": "album", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6o8sDniHcZPM1SixvjKiYS" + }, + "href": "https://api.spotify.com/v1/artists/6o8sDniHcZPM1SixvjKiYS", + "id": "6o8sDniHcZPM1SixvjKiYS", + "name": "NOVELISTS", + "type": "artist", + "uri": "spotify:artist:6o8sDniHcZPM1SixvjKiYS" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/4aSQ7ZdevivIQFeSMWxPSW" + }, + "href": "https://api.spotify.com/v1/albums/4aSQ7ZdevivIQFeSMWxPSW", + "id": "4aSQ7ZdevivIQFeSMWxPSW", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273076ab8e6857a57b951bf2735", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02076ab8e6857a57b951bf2735", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851076ab8e6857a57b951bf2735", + "width": 64 + }], + "is_playable": true, + "name": "Déjà Vu", + "release_date": "2022-09-23", + "release_date_precision": "day", + "total_tracks": 12, + "type": "album", + "uri": "spotify:album:4aSQ7ZdevivIQFeSMWxPSW" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6G43CiunIxMwb2tQ12vNP6" + }, + "href": "https://api.spotify.com/v1/artists/6G43CiunIxMwb2tQ12vNP6", + "id": "6G43CiunIxMwb2tQ12vNP6", + "name": "LANDMVRKS", + "type": "artist", + "uri": "spotify:artist:6G43CiunIxMwb2tQ12vNP6" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/6o8sDniHcZPM1SixvjKiYS" + }, + "href": "https://api.spotify.com/v1/artists/6o8sDniHcZPM1SixvjKiYS", + "id": "6o8sDniHcZPM1SixvjKiYS", + "name": "NOVELISTS", + "type": "artist", + "uri": "spotify:artist:6o8sDniHcZPM1SixvjKiYS" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 202418, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DEBZ72200060" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/4whGYZQVkjI7r1hAyc4BFY" + }, + "href": "https://api.spotify.com/v1/tracks/4whGYZQVkjI7r1hAyc4BFY", + "id": "4whGYZQVkjI7r1hAyc4BFY", + "is_local": false, + "name": "Heretic", + "popularity": 51, + "preview_url": "https://p.scdn.co/mp3-preview/67af647c65372db1ccab526d1ad657bea16a7cda?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 3, + "type": "track", + "uri": "spotify:track:4whGYZQVkjI7r1hAyc4BFY" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/0OgdRTPItr9dw4XYp4JJUx" + }, + "href": "https://api.spotify.com/v1/artists/0OgdRTPItr9dw4XYp4JJUx", + "id": "0OgdRTPItr9dw4XYp4JJUx", + "name": "Fit For A King", + "type": "artist", + "uri": "spotify:artist:0OgdRTPItr9dw4XYp4JJUx" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/6RnuLQwxEgHaHPyWjel051" + }, + "href": "https://api.spotify.com/v1/albums/6RnuLQwxEgHaHPyWjel051", + "id": "6RnuLQwxEgHaHPyWjel051", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273f9993bd0b39d72160c509fbc", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02f9993bd0b39d72160c509fbc", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851f9993bd0b39d72160c509fbc", + "width": 64 + }], + "is_playable": true, + "name": "Reaper", + "release_date": "2022-06-23", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:6RnuLQwxEgHaHPyWjel051" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/0OgdRTPItr9dw4XYp4JJUx" + }, + "href": "https://api.spotify.com/v1/artists/0OgdRTPItr9dw4XYp4JJUx", + "id": "0OgdRTPItr9dw4XYp4JJUx", + "name": "Fit For A King", + "type": "artist", + "uri": "spotify:artist:0OgdRTPItr9dw4XYp4JJUx" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 199500, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "QMGVJ2200051" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/6I7ilpVQq4oETOdmHPL5LE" + }, + "href": "https://api.spotify.com/v1/tracks/6I7ilpVQq4oETOdmHPL5LE", + "id": "6I7ilpVQq4oETOdmHPL5LE", + "is_local": false, + "name": "Reaper", + "popularity": 43, + "preview_url": "https://p.scdn.co/mp3-preview/697897163eb7faaf1502f527ef548edad6ba0e6b?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:6I7ilpVQq4oETOdmHPL5LE" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/3Zj2B8yAi8gHoR8vpsPatZ" + }, + "href": "https://api.spotify.com/v1/artists/3Zj2B8yAi8gHoR8vpsPatZ", + "id": "3Zj2B8yAi8gHoR8vpsPatZ", + "name": "Gideon", + "type": "artist", + "uri": "spotify:artist:3Zj2B8yAi8gHoR8vpsPatZ" + }], + "available_markets": ["AE", "AG", "AO", "AR", "AU", "AZ", "BB", "BD", "BF", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BZ", "CA", "CD", "CG", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "DJ", "DM", "DO", "DZ", "EC", "EG", "ET", "FJ", "FM", "GA", "GD", "GH", "GM", "GN", "GQ", "GT", "GW", "GY", "HK", "HN", "HT", "ID", "IN", "IQ", "JM", "JO", "JP", "KE", "KH", "KI", "KM", "KN", "KR", "KW", "LA", "LB", "LC", "LK", "LR", "LS", "LY", "MA", "MG", "MH", "ML", "MN", "MO", "MR", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PS", "PW", "PY", "QA", "RW", "SA", "SB", "SC", "SG", "SL", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TL", "TN", "TO", "TT", "TV", "TW", "TZ", "UG", "US", "UY", "VC", "VE", "VN", "VU", "WS", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/4Am9KEEleButgBfQ9rq6Gh" + }, + "href": "https://api.spotify.com/v1/albums/4Am9KEEleButgBfQ9rq6Gh", + "id": "4Am9KEEleButgBfQ9rq6Gh", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2730f713d1120eb2a6a5bed5f23", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e020f713d1120eb2a6a5bed5f23", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048510f713d1120eb2a6a5bed5f23", + "width": 64 + }], + "is_playable": true, + "name": "Take Off", + "release_date": "2023-02-17", + "release_date_precision": "day", + "total_tracks": 3, + "type": "album", + "uri": "spotify:album:4Am9KEEleButgBfQ9rq6Gh" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/3Zj2B8yAi8gHoR8vpsPatZ" + }, + "href": "https://api.spotify.com/v1/artists/3Zj2B8yAi8gHoR8vpsPatZ", + "id": "3Zj2B8yAi8gHoR8vpsPatZ", + "name": "Gideon", + "type": "artist", + "uri": "spotify:artist:3Zj2B8yAi8gHoR8vpsPatZ" + }], + "available_markets": ["AR", "AU", "BO", "BR", "CA", "CL", "CO", "CR", "DO", "EC", "SV", "GT", "HN", "HK", "MY", "MX", "NZ", "NI", "PA", "PY", "PE", "PH", "SG", "TW", "UY", "US", "ID", "JP", "TH", "VN", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "VE", "ET"], + "disc_number": 1, + "duration_ms": 208880, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "US3X52246306" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/0TSz9TsaZXc6I6yKAa4xCD" + }, + "href": "https://api.spotify.com/v1/tracks/0TSz9TsaZXc6I6yKAa4xCD", + "id": "0TSz9TsaZXc6I6yKAa4xCD", + "is_local": false, + "name": "Take Off", + "popularity": 37, + "preview_url": "https://p.scdn.co/mp3-preview/d2cae38b8cdb50bf336f2b19de06b08f01e576c4?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:0TSz9TsaZXc6I6yKAa4xCD" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "album", + "album_type": "album", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/4pCVGaLWxDe4d8bsjsnmUM" + }, + "href": "https://api.spotify.com/v1/artists/4pCVGaLWxDe4d8bsjsnmUM", + "id": "4pCVGaLWxDe4d8bsjsnmUM", + "name": "coldrain", + "type": "artist", + "uri": "spotify:artist:4pCVGaLWxDe4d8bsjsnmUM" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/2XA78l6T2geC3hfxcnOs6V" + }, + "href": "https://api.spotify.com/v1/albums/2XA78l6T2geC3hfxcnOs6V", + "id": "2XA78l6T2geC3hfxcnOs6V", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2734fc2b816166db68ba62424ca", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e024fc2b816166db68ba62424ca", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048514fc2b816166db68ba62424ca", + "width": 64 + }], + "is_playable": true, + "name": "Nonnegative", + "release_date": "2022-07-06", + "release_date_precision": "day", + "total_tracks": 12, + "type": "album", + "uri": "spotify:album:2XA78l6T2geC3hfxcnOs6V" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/4pCVGaLWxDe4d8bsjsnmUM" + }, + "href": "https://api.spotify.com/v1/artists/4pCVGaLWxDe4d8bsjsnmUM", + "id": "4pCVGaLWxDe4d8bsjsnmUM", + "name": "coldrain", + "type": "artist", + "uri": "spotify:artist:4pCVGaLWxDe4d8bsjsnmUM" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 233678, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "JPWP02270484" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/7qLbPd5yhm0Vne45PXPabV" + }, + "href": "https://api.spotify.com/v1/tracks/7qLbPd5yhm0Vne45PXPabV", + "id": "7qLbPd5yhm0Vne45PXPabV", + "is_local": false, + "name": "From Today", + "popularity": 46, + "preview_url": "https://p.scdn.co/mp3-preview/ae37c73d9ef381046ca76873f02d46d7d74be757?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 12, + "type": "track", + "uri": "spotify:track:7qLbPd5yhm0Vne45PXPabV" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/10Z7WzKMeIdNBKexi1YarP" + }, + "href": "https://api.spotify.com/v1/artists/10Z7WzKMeIdNBKexi1YarP", + "id": "10Z7WzKMeIdNBKexi1YarP", + "name": "Fame on Fire", + "type": "artist", + "uri": "spotify:artist:10Z7WzKMeIdNBKexi1YarP" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/7IJVzIr5F8Vq0Qe50PGwke" + }, + "href": "https://api.spotify.com/v1/albums/7IJVzIr5F8Vq0Qe50PGwke", + "id": "7IJVzIr5F8Vq0Qe50PGwke", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273471038c9bf8d1af038ca83d0", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02471038c9bf8d1af038ca83d0", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851471038c9bf8d1af038ca83d0", + "width": 64 + }], + "is_playable": true, + "name": "Ketamine", + "release_date": "2022-06-24", + "release_date_precision": "day", + "total_tracks": 4, + "type": "album", + "uri": "spotify:album:7IJVzIr5F8Vq0Qe50PGwke" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/10Z7WzKMeIdNBKexi1YarP" + }, + "href": "https://api.spotify.com/v1/artists/10Z7WzKMeIdNBKexi1YarP", + "id": "10Z7WzKMeIdNBKexi1YarP", + "name": "Fame on Fire", + "type": "artist", + "uri": "spotify:artist:10Z7WzKMeIdNBKexi1YarP" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 172019, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "USHR22212706" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/37vKzukXbXcJiA3TMmGptj" + }, + "href": "https://api.spotify.com/v1/tracks/37vKzukXbXcJiA3TMmGptj", + "id": "37vKzukXbXcJiA3TMmGptj", + "is_local": false, + "name": "Ketamine", + "popularity": 42, + "preview_url": "https://p.scdn.co/mp3-preview/b4c3ff5f4b9f1b5a9a62c6493cfe752b65532022?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:37vKzukXbXcJiA3TMmGptj" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2UoOdQyBGyzrEfxcY77ce0" + }, + "href": "https://api.spotify.com/v1/artists/2UoOdQyBGyzrEfxcY77ce0", + "id": "2UoOdQyBGyzrEfxcY77ce0", + "name": "ERRA", + "type": "artist", + "uri": "spotify:artist:2UoOdQyBGyzrEfxcY77ce0" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/2KElNfghT2G7tHLaOCMqFe" + }, + "href": "https://api.spotify.com/v1/albums/2KElNfghT2G7tHLaOCMqFe", + "id": "2KElNfghT2G7tHLaOCMqFe", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b27394875e23212e1eca7354b02a", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e0294875e23212e1eca7354b02a", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d0000485194875e23212e1eca7354b02a", + "width": 64 + }], + "is_playable": true, + "name": "Pull From The Ghost", + "release_date": "2022-07-07", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:2KElNfghT2G7tHLaOCMqFe" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2UoOdQyBGyzrEfxcY77ce0" + }, + "href": "https://api.spotify.com/v1/artists/2UoOdQyBGyzrEfxcY77ce0", + "id": "2UoOdQyBGyzrEfxcY77ce0", + "name": "ERRA", + "type": "artist", + "uri": "spotify:artist:2UoOdQyBGyzrEfxcY77ce0" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 251191, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "AUI442200129" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/5X0o92ihmXE7KP5fcmNSFv" + }, + "href": "https://api.spotify.com/v1/tracks/5X0o92ihmXE7KP5fcmNSFv", + "id": "5X0o92ihmXE7KP5fcmNSFv", + "is_local": false, + "name": "Pull From The Ghost", + "popularity": 50, + "preview_url": "https://p.scdn.co/mp3-preview/8a80c5af5bdd8f6f9297ffeda6e41197c66640d2?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:5X0o92ihmXE7KP5fcmNSFv" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/7GNTvmIi6DDF2XDJKYKoUk" + }, + "href": "https://api.spotify.com/v1/artists/7GNTvmIi6DDF2XDJKYKoUk", + "id": "7GNTvmIi6DDF2XDJKYKoUk", + "name": "Chaosbay", + "type": "artist", + "uri": "spotify:artist:7GNTvmIi6DDF2XDJKYKoUk" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/2Fig0Wysa46RMtW7JyNAc9" + }, + "href": "https://api.spotify.com/v1/albums/2Fig0Wysa46RMtW7JyNAc9", + "id": "2Fig0Wysa46RMtW7JyNAc9", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273a1410b5e7b3de50d9a9f64ca", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02a1410b5e7b3de50d9a9f64ca", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851a1410b5e7b3de50d9a9f64ca", + "width": 64 + }], + "is_playable": true, + "name": "What Is War", + "release_date": "2022-05-26", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:2Fig0Wysa46RMtW7JyNAc9" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/7GNTvmIi6DDF2XDJKYKoUk" + }, + "href": "https://api.spotify.com/v1/artists/7GNTvmIi6DDF2XDJKYKoUk", + "id": "7GNTvmIi6DDF2XDJKYKoUk", + "name": "Chaosbay", + "type": "artist", + "uri": "spotify:artist:7GNTvmIi6DDF2XDJKYKoUk" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/0Hx4gv3eoiodtu6XYHF1X0" + }, + "href": "https://api.spotify.com/v1/artists/0Hx4gv3eoiodtu6XYHF1X0", + "id": "0Hx4gv3eoiodtu6XYHF1X0", + "name": "Siamese", + "type": "artist", + "uri": "spotify:artist:0Hx4gv3eoiodtu6XYHF1X0" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 239975, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DEXN92239727" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/3qPDkJVT3nTadE0DowU2w5" + }, + "href": "https://api.spotify.com/v1/tracks/3qPDkJVT3nTadE0DowU2w5", + "id": "3qPDkJVT3nTadE0DowU2w5", + "is_local": false, + "name": "What Is War", + "popularity": 40, + "preview_url": "https://p.scdn.co/mp3-preview/0f8789873890117e2de3c368f1aedf092de96c80?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:3qPDkJVT3nTadE0DowU2w5" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/1AYs2fxCu0pV8iKaguz4po" + }, + "href": "https://api.spotify.com/v1/artists/1AYs2fxCu0pV8iKaguz4po", + "id": "1AYs2fxCu0pV8iKaguz4po", + "name": "Eyes Wide Open", + "type": "artist", + "uri": "spotify:artist:1AYs2fxCu0pV8iKaguz4po" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/5ByL1dXjgnjKAEF6H63e5p" + }, + "href": "https://api.spotify.com/v1/albums/5ByL1dXjgnjKAEF6H63e5p", + "id": "5ByL1dXjgnjKAEF6H63e5p", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2730ea4fb34e281c92128799e31", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e020ea4fb34e281c92128799e31", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048510ea4fb34e281c92128799e31", + "width": 64 + }], + "is_playable": true, + "name": "Cross My Heart", + "release_date": "2022-05-13", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:5ByL1dXjgnjKAEF6H63e5p" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/1AYs2fxCu0pV8iKaguz4po" + }, + "href": "https://api.spotify.com/v1/artists/1AYs2fxCu0pV8iKaguz4po", + "id": "1AYs2fxCu0pV8iKaguz4po", + "name": "Eyes Wide Open", + "type": "artist", + "uri": "spotify:artist:1AYs2fxCu0pV8iKaguz4po" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 198000, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DEYO62200027" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/2icamhwuMDLOPIGcTq3qxg" + }, + "href": "https://api.spotify.com/v1/tracks/2icamhwuMDLOPIGcTq3qxg", + "id": "2icamhwuMDLOPIGcTq3qxg", + "is_local": false, + "name": "Cross My Heart", + "popularity": 41, + "preview_url": "https://p.scdn.co/mp3-preview/d6607212017049734987c6bd86c80fa748f295a5?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:2icamhwuMDLOPIGcTq3qxg" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "album", + "album_type": "album", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2vhrwzjf9H3icunkVFi9tq" + }, + "href": "https://api.spotify.com/v1/artists/2vhrwzjf9H3icunkVFi9tq", + "id": "2vhrwzjf9H3icunkVFi9tq", + "name": "Smash Into Pieces", + "type": "artist", + "uri": "spotify:artist:2vhrwzjf9H3icunkVFi9tq" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/66snwEHAdTrN5gw7z3mpoA" + }, + "href": "https://api.spotify.com/v1/albums/66snwEHAdTrN5gw7z3mpoA", + "id": "66snwEHAdTrN5gw7z3mpoA", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b27302d45ed91e80f93a6aa4b118", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e0202d45ed91e80f93a6aa4b118", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d0000485102d45ed91e80f93a6aa4b118", + "width": 64 + }], + "is_playable": true, + "name": "Throne", + "release_date": "2022-06-24", + "release_date_precision": "day", + "total_tracks": 7, + "type": "album", + "uri": "spotify:album:66snwEHAdTrN5gw7z3mpoA" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2vhrwzjf9H3icunkVFi9tq" + }, + "href": "https://api.spotify.com/v1/artists/2vhrwzjf9H3icunkVFi9tq", + "id": "2vhrwzjf9H3icunkVFi9tq", + "name": "Smash Into Pieces", + "type": "artist", + "uri": "spotify:artist:2vhrwzjf9H3icunkVFi9tq" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 207936, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "QM6MZ2289849" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/1IIHG2cRp9PBYSGLSKAdgD" + }, + "href": "https://api.spotify.com/v1/tracks/1IIHG2cRp9PBYSGLSKAdgD", + "id": "1IIHG2cRp9PBYSGLSKAdgD", + "is_local": false, + "name": "Throne", + "popularity": 48, + "preview_url": "https://p.scdn.co/mp3-preview/54b267540f236780fa243600e3a622f1b298650d?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:1IIHG2cRp9PBYSGLSKAdgD" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6drAKOLWO1vzBrdmJmg5SE" + }, + "href": "https://api.spotify.com/v1/artists/6drAKOLWO1vzBrdmJmg5SE", + "id": "6drAKOLWO1vzBrdmJmg5SE", + "name": "Outline In Color", + "type": "artist", + "uri": "spotify:artist:6drAKOLWO1vzBrdmJmg5SE" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/3YMpkFfYLXaD8eZlQalBHC" + }, + "href": "https://api.spotify.com/v1/artists/3YMpkFfYLXaD8eZlQalBHC", + "id": "3YMpkFfYLXaD8eZlQalBHC", + "name": "Foxera", + "type": "artist", + "uri": "spotify:artist:3YMpkFfYLXaD8eZlQalBHC" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/3vo077XHNBeAEVlnWGQUCG" + }, + "href": "https://api.spotify.com/v1/albums/3vo077XHNBeAEVlnWGQUCG", + "id": "3vo077XHNBeAEVlnWGQUCG", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b27319e4fe3e1a34cd0f238e0ede", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e0219e4fe3e1a34cd0f238e0ede", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d0000485119e4fe3e1a34cd0f238e0ede", + "width": 64 + }], + "is_playable": true, + "name": "Quicksand", + "release_date": "2022-07-01", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:3vo077XHNBeAEVlnWGQUCG" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/6drAKOLWO1vzBrdmJmg5SE" + }, + "href": "https://api.spotify.com/v1/artists/6drAKOLWO1vzBrdmJmg5SE", + "id": "6drAKOLWO1vzBrdmJmg5SE", + "name": "Outline In Color", + "type": "artist", + "uri": "spotify:artist:6drAKOLWO1vzBrdmJmg5SE" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/3YMpkFfYLXaD8eZlQalBHC" + }, + "href": "https://api.spotify.com/v1/artists/3YMpkFfYLXaD8eZlQalBHC", + "id": "3YMpkFfYLXaD8eZlQalBHC", + "name": "Foxera", + "type": "artist", + "uri": "spotify:artist:3YMpkFfYLXaD8eZlQalBHC" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/1p4l2x4EUENGm1VCQfBkuu" + }, + "href": "https://api.spotify.com/v1/artists/1p4l2x4EUENGm1VCQfBkuu", + "id": "1p4l2x4EUENGm1VCQfBkuu", + "name": "Michael Swank", + "type": "artist", + "uri": "spotify:artist:1p4l2x4EUENGm1VCQfBkuu" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 152000, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "QM6N22231680" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/3B2lC0tHokLJuPOhKaLycU" + }, + "href": "https://api.spotify.com/v1/tracks/3B2lC0tHokLJuPOhKaLycU", + "id": "3B2lC0tHokLJuPOhKaLycU", + "is_local": false, + "name": "Quicksand (feat. Michael Swank)", + "popularity": 37, + "preview_url": "https://p.scdn.co/mp3-preview/8c72c71a21c2c39c4d330681a03afc7c386a5054?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:3B2lC0tHokLJuPOhKaLycU" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/3f3CYDS0i8Z0Egxp9gwD1Z" + }, + "href": "https://api.spotify.com/v1/artists/3f3CYDS0i8Z0Egxp9gwD1Z", + "id": "3f3CYDS0i8Z0Egxp9gwD1Z", + "name": "Execution Day", + "type": "artist", + "uri": "spotify:artist:3f3CYDS0i8Z0Egxp9gwD1Z" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/6KXqyVNZsxl7NwgQVvtZ4C" + }, + "href": "https://api.spotify.com/v1/albums/6KXqyVNZsxl7NwgQVvtZ4C", + "id": "6KXqyVNZsxl7NwgQVvtZ4C", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273d2bb0cb91686f9b0c8625812", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02d2bb0cb91686f9b0c8625812", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851d2bb0cb91686f9b0c8625812", + "width": 64 + }], + "is_playable": true, + "name": "Suffocate", + "release_date": "2022-05-13", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:6KXqyVNZsxl7NwgQVvtZ4C" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/3f3CYDS0i8Z0Egxp9gwD1Z" + }, + "href": "https://api.spotify.com/v1/artists/3f3CYDS0i8Z0Egxp9gwD1Z", + "id": "3f3CYDS0i8Z0Egxp9gwD1Z", + "name": "Execution Day", + "type": "artist", + "uri": "spotify:artist:3f3CYDS0i8Z0Egxp9gwD1Z" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 227272, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "usdy42205848" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/7aIKpaMchQAKcNv7W8GQhv" + }, + "href": "https://api.spotify.com/v1/tracks/7aIKpaMchQAKcNv7W8GQhv", + "id": "7aIKpaMchQAKcNv7W8GQhv", + "is_local": false, + "name": "Suffocate", + "popularity": 39, + "preview_url": "https://p.scdn.co/mp3-preview/efe34df0893f7e115cc04297afdcba686f102bab?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:7aIKpaMchQAKcNv7W8GQhv" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/4GnK2zRFtw1gBoiFORWHsA" + }, + "href": "https://api.spotify.com/v1/artists/4GnK2zRFtw1gBoiFORWHsA", + "id": "4GnK2zRFtw1gBoiFORWHsA", + "name": "Of Virtue", + "type": "artist", + "uri": "spotify:artist:4GnK2zRFtw1gBoiFORWHsA" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/4Qiu3xzymfFETMN7yEDCP3" + }, + "href": "https://api.spotify.com/v1/albums/4Qiu3xzymfFETMN7yEDCP3", + "id": "4Qiu3xzymfFETMN7yEDCP3", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273f56fe4dc140893ee3a285b9d", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02f56fe4dc140893ee3a285b9d", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851f56fe4dc140893ee3a285b9d", + "width": 64 + }], + "is_playable": true, + "name": "A.N.X.I.E.T.Y.", + "release_date": "2023-02-09", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:4Qiu3xzymfFETMN7yEDCP3" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/4GnK2zRFtw1gBoiFORWHsA" + }, + "href": "https://api.spotify.com/v1/artists/4GnK2zRFtw1gBoiFORWHsA", + "id": "4GnK2zRFtw1gBoiFORWHsA", + "name": "Of Virtue", + "type": "artist", + "uri": "spotify:artist:4GnK2zRFtw1gBoiFORWHsA" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 179275, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DEYO62200240" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/2FlSBOa7In5PcpL5SXFwkW" + }, + "href": "https://api.spotify.com/v1/tracks/2FlSBOa7In5PcpL5SXFwkW", + "id": "2FlSBOa7In5PcpL5SXFwkW", + "is_local": false, + "name": "A.N.X.I.E.T.Y.", + "popularity": 43, + "preview_url": "https://p.scdn.co/mp3-preview/342fb0a2d5faf2e3b4f6b6950cde89e2cca53dc0?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:2FlSBOa7In5PcpL5SXFwkW" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2tjnvrUmP46XNjFh9V0NGc" + }, + "href": "https://api.spotify.com/v1/artists/2tjnvrUmP46XNjFh9V0NGc", + "id": "2tjnvrUmP46XNjFh9V0NGc", + "name": "Alpha Wolf", + "type": "artist", + "uri": "spotify:artist:2tjnvrUmP46XNjFh9V0NGc" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/3GdgTYJ6MCD7nsQ8uZZly5" + }, + "href": "https://api.spotify.com/v1/albums/3GdgTYJ6MCD7nsQ8uZZly5", + "id": "3GdgTYJ6MCD7nsQ8uZZly5", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2735ae606698677e51d8528f06d", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e025ae606698677e51d8528f06d", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048515ae606698677e51d8528f06d", + "width": 64 + }], + "is_playable": true, + "name": "Hotel Underground", + "release_date": "2022-06-23", + "release_date_precision": "day", + "total_tracks": 2, + "type": "album", + "uri": "spotify:album:3GdgTYJ6MCD7nsQ8uZZly5" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2tjnvrUmP46XNjFh9V0NGc" + }, + "href": "https://api.spotify.com/v1/artists/2tjnvrUmP46XNjFh9V0NGc", + "id": "2tjnvrUmP46XNjFh9V0NGc", + "name": "Alpha Wolf", + "type": "artist", + "uri": "spotify:artist:2tjnvrUmP46XNjFh9V0NGc" + }], + "available_markets": ["AR", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 166181, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "DED832200123" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/0CoxiZuaRFycPJ0Xl1oSOJ" + }, + "href": "https://api.spotify.com/v1/tracks/0CoxiZuaRFycPJ0Xl1oSOJ", + "id": "0CoxiZuaRFycPJ0Xl1oSOJ", + "is_local": false, + "name": "Hotel Underground", + "popularity": 43, + "preview_url": "https://p.scdn.co/mp3-preview/5bc4b961000d6331dd5bbb0d933cdb3f8b500dbf?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:0CoxiZuaRFycPJ0Xl1oSOJ" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "album", + "album_type": "album", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/28XopU8Uw6D6Wl7rIgCVNE" + }, + "href": "https://api.spotify.com/v1/artists/28XopU8Uw6D6Wl7rIgCVNE", + "id": "28XopU8Uw6D6Wl7rIgCVNE", + "name": "Villain of the Story", + "type": "artist", + "uri": "spotify:artist:28XopU8Uw6D6Wl7rIgCVNE" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/3y8C86Pm7N3YWAohYNAmjY" + }, + "href": "https://api.spotify.com/v1/albums/3y8C86Pm7N3YWAohYNAmjY", + "id": "3y8C86Pm7N3YWAohYNAmjY", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2731cbbbe8452940b15715c1a47", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e021cbbbe8452940b15715c1a47", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048511cbbbe8452940b15715c1a47", + "width": 64 + }], + "is_playable": true, + "name": "Divided", + "release_date": "2022-07-22", + "release_date_precision": "day", + "total_tracks": 8, + "type": "album", + "uri": "spotify:album:3y8C86Pm7N3YWAohYNAmjY" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/28XopU8Uw6D6Wl7rIgCVNE" + }, + "href": "https://api.spotify.com/v1/artists/28XopU8Uw6D6Wl7rIgCVNE", + "id": "28XopU8Uw6D6Wl7rIgCVNE", + "name": "Villain of the Story", + "type": "artist", + "uri": "spotify:artist:28XopU8Uw6D6Wl7rIgCVNE" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 208920, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DEBZ72100155" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/10K74dbHDqw7hmtSmLfs7t" + }, + "href": "https://api.spotify.com/v1/tracks/10K74dbHDqw7hmtSmLfs7t", + "id": "10K74dbHDqw7hmtSmLfs7t", + "is_local": false, + "name": "Losing Control", + "popularity": 58, + "preview_url": "https://p.scdn.co/mp3-preview/1c292635d52d6ba0f70081cd304dd22d4dea8b77?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 5, + "type": "track", + "uri": "spotify:track:10K74dbHDqw7hmtSmLfs7t" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2tl280wIokrLjabzrSKTgU" + }, + "href": "https://api.spotify.com/v1/artists/2tl280wIokrLjabzrSKTgU", + "id": "2tl280wIokrLjabzrSKTgU", + "name": "Holding Absence", + "type": "artist", + "uri": "spotify:artist:2tl280wIokrLjabzrSKTgU" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/4qPVQisdRPip6QzcBXP7Xz" + }, + "href": "https://api.spotify.com/v1/albums/4qPVQisdRPip6QzcBXP7Xz", + "id": "4qPVQisdRPip6QzcBXP7Xz", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273c19398c5c5e6908bfdf77355", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02c19398c5c5e6908bfdf77355", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851c19398c5c5e6908bfdf77355", + "width": 64 + }], + "is_playable": true, + "name": "Coffin", + "release_date": "2022-08-03", + "release_date_precision": "day", + "total_tracks": 3, + "type": "album", + "uri": "spotify:album:4qPVQisdRPip6QzcBXP7Xz" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/2tl280wIokrLjabzrSKTgU" + }, + "href": "https://api.spotify.com/v1/artists/2tl280wIokrLjabzrSKTgU", + "id": "2tl280wIokrLjabzrSKTgU", + "name": "Holding Absence", + "type": "artist", + "uri": "spotify:artist:2tl280wIokrLjabzrSKTgU" + }, { + "external_urls": { + "spotify": "https://open.spotify.com/artist/2tjnvrUmP46XNjFh9V0NGc" + }, + "href": "https://api.spotify.com/v1/artists/2tjnvrUmP46XNjFh9V0NGc", + "id": "2tjnvrUmP46XNjFh9V0NGc", + "name": "Alpha Wolf", + "type": "artist", + "uri": "spotify:artist:2tjnvrUmP46XNjFh9V0NGc" + }], + "available_markets": ["AR", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XC", "XK"], + "disc_number": 1, + "duration_ms": 264306, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DED832200124" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/49UQKQom802JUWPq63lxEb" + }, + "href": "https://api.spotify.com/v1/tracks/49UQKQom802JUWPq63lxEb", + "id": "49UQKQom802JUWPq63lxEb", + "is_local": false, + "name": "Aching Longing", + "popularity": 43, + "preview_url": "https://p.scdn.co/mp3-preview/a7a36386693cf651291a37bd781c3c4cccb436e9?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 3, + "type": "track", + "uri": "spotify:track:49UQKQom802JUWPq63lxEb" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/04LbaB3D3XOMbfPnWmObAi" + }, + "href": "https://api.spotify.com/v1/artists/04LbaB3D3XOMbfPnWmObAi", + "id": "04LbaB3D3XOMbfPnWmObAi", + "name": "Ocean Sleeper", + "type": "artist", + "uri": "spotify:artist:04LbaB3D3XOMbfPnWmObAi" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/17yymNfb1oyI5bBn0BvXv2" + }, + "href": "https://api.spotify.com/v1/albums/17yymNfb1oyI5bBn0BvXv2", + "id": "17yymNfb1oyI5bBn0BvXv2", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2734ed2b5055689f160989b7f1d", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e024ed2b5055689f160989b7f1d", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048514ed2b5055689f160989b7f1d", + "width": 64 + }], + "is_playable": true, + "name": "Your Love I'll Never Need", + "release_date": "2022-06-28", + "release_date_precision": "day", + "total_tracks": 1, + "type": "album", + "uri": "spotify:album:17yymNfb1oyI5bBn0BvXv2" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/04LbaB3D3XOMbfPnWmObAi" + }, + "href": "https://api.spotify.com/v1/artists/04LbaB3D3XOMbfPnWmObAi", + "id": "04LbaB3D3XOMbfPnWmObAi", + "name": "Ocean Sleeper", + "type": "artist", + "uri": "spotify:artist:04LbaB3D3XOMbfPnWmObAi" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 200843, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "AUOXM2200369" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/228ijND7JwCIpNt8sYlHYW" + }, + "href": "https://api.spotify.com/v1/tracks/228ijND7JwCIpNt8sYlHYW", + "id": "228ijND7JwCIpNt8sYlHYW", + "is_local": false, + "name": "Your Love I'll Never Need", + "popularity": 40, + "preview_url": "https://p.scdn.co/mp3-preview/be89c6958811f2bf29d27e5ddb42a7e077cce994?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:228ijND7JwCIpNt8sYlHYW" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "album", + "album_type": "album", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/50YmW8f4U5IxTIwYI9mGAe" + }, + "href": "https://api.spotify.com/v1/artists/50YmW8f4U5IxTIwYI9mGAe", + "id": "50YmW8f4U5IxTIwYI9mGAe", + "name": "Hollow Front", + "type": "artist", + "uri": "spotify:artist:50YmW8f4U5IxTIwYI9mGAe" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/7y1KzLYE9ws4vN3vP6OZh4" + }, + "href": "https://api.spotify.com/v1/albums/7y1KzLYE9ws4vN3vP6OZh4", + "id": "7y1KzLYE9ws4vN3vP6OZh4", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273d8a1f224d1e52b9bf338a7d4", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02d8a1f224d1e52b9bf338a7d4", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851d8a1f224d1e52b9bf338a7d4", + "width": 64 + }], + "is_playable": true, + "name": "The Price Of Dreaming", + "release_date": "2022-05-27", + "release_date_precision": "day", + "total_tracks": 12, + "type": "album", + "uri": "spotify:album:7y1KzLYE9ws4vN3vP6OZh4" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/50YmW8f4U5IxTIwYI9mGAe" + }, + "href": "https://api.spotify.com/v1/artists/50YmW8f4U5IxTIwYI9mGAe", + "id": "50YmW8f4U5IxTIwYI9mGAe", + "name": "Hollow Front", + "type": "artist", + "uri": "spotify:artist:50YmW8f4U5IxTIwYI9mGAe" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 280579, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "AUI442100091" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/1ALVr49q6IjFtzMajHvaU9" + }, + "href": "https://api.spotify.com/v1/tracks/1ALVr49q6IjFtzMajHvaU9", + "id": "1ALVr49q6IjFtzMajHvaU9", + "is_local": false, + "name": "Thick As Blood", + "popularity": 42, + "preview_url": "https://p.scdn.co/mp3-preview/ddf07c882de9f9a39d7cef33d27e49f2a9349c35?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 4, + "type": "track", + "uri": "spotify:track:1ALVr49q6IjFtzMajHvaU9" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "album", + "album_type": "album", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/4QnuZOyl4C9d1keyOZXJ21" + }, + "href": "https://api.spotify.com/v1/artists/4QnuZOyl4C9d1keyOZXJ21", + "id": "4QnuZOyl4C9d1keyOZXJ21", + "name": "Future Palace", + "type": "artist", + "uri": "spotify:artist:4QnuZOyl4C9d1keyOZXJ21" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/3PsbQWb1jzu1TieGQwvjd7" + }, + "href": "https://api.spotify.com/v1/albums/3PsbQWb1jzu1TieGQwvjd7", + "id": "3PsbQWb1jzu1TieGQwvjd7", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2736d6b13d1fc6d3af5ae92f61e", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e026d6b13d1fc6d3af5ae92f61e", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048516d6b13d1fc6d3af5ae92f61e", + "width": 64 + }], + "is_playable": true, + "name": "Run", + "release_date": "2022-06-10", + "release_date_precision": "day", + "total_tracks": 12, + "type": "album", + "uri": "spotify:album:3PsbQWb1jzu1TieGQwvjd7" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/4QnuZOyl4C9d1keyOZXJ21" + }, + "href": "https://api.spotify.com/v1/artists/4QnuZOyl4C9d1keyOZXJ21", + "id": "4QnuZOyl4C9d1keyOZXJ21", + "name": "Future Palace", + "type": "artist", + "uri": "spotify:artist:4QnuZOyl4C9d1keyOZXJ21" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 204040, + "episode": false, + "explicit": false, + "external_ids": { + "isrc": "DEYO62100129" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/4hZIolup6cgYhrzzGq46aq" + }, + "href": "https://api.spotify.com/v1/tracks/4hZIolup6cgYhrzzGq46aq", + "id": "4hZIolup6cgYhrzzGq46aq", + "is_local": false, + "name": "Dead Inside", + "popularity": 54, + "preview_url": "https://p.scdn.co/mp3-preview/4d4adc339aed709c8e3bad499e679745a406f23d?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 2, + "type": "track", + "uri": "spotify:track:4hZIolup6cgYhrzzGq46aq" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/3CMyREgx8ZErRUydXlmCDX" + }, + "href": "https://api.spotify.com/v1/artists/3CMyREgx8ZErRUydXlmCDX", + "id": "3CMyREgx8ZErRUydXlmCDX", + "name": "Dark Divine", + "type": "artist", + "uri": "spotify:artist:3CMyREgx8ZErRUydXlmCDX" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/48yuoZ91DAKQGAvfPwNYF0" + }, + "href": "https://api.spotify.com/v1/albums/48yuoZ91DAKQGAvfPwNYF0", + "id": "48yuoZ91DAKQGAvfPwNYF0", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b2732259cd7294f13d62772198b9", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e022259cd7294f13d62772198b9", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d000048512259cd7294f13d62772198b9", + "width": 64 + }], + "is_playable": true, + "name": "Circles", + "release_date": "2022-06-24", + "release_date_precision": "day", + "total_tracks": 4, + "type": "album", + "uri": "spotify:album:48yuoZ91DAKQGAvfPwNYF0" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/3CMyREgx8ZErRUydXlmCDX" + }, + "href": "https://api.spotify.com/v1/artists/3CMyREgx8ZErRUydXlmCDX", + "id": "3CMyREgx8ZErRUydXlmCDX", + "name": "Dark Divine", + "type": "artist", + "uri": "spotify:artist:3CMyREgx8ZErRUydXlmCDX" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 182057, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "QM6MZ2284348" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/0JIEEyj0EsqTZORin5bxnM" + }, + "href": "https://api.spotify.com/v1/tracks/0JIEEyj0EsqTZORin5bxnM", + "id": "0JIEEyj0EsqTZORin5bxnM", + "is_local": false, + "name": "Circles", + "popularity": 40, + "preview_url": "https://p.scdn.co/mp3-preview/c5c7e9ab73e31da5930a9ca70db3508460431b33?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:0JIEEyj0EsqTZORin5bxnM" + }, + "video_thumbnail": { + "url": null + } + }, { + "added_at": "2023-03-10T05:39:11Z", + "added_by": { + "external_urls": { + "spotify": "https://open.spotify.com/user/" + }, + "href": "https://api.spotify.com/v1/users/", + "id": "", + "type": "user", + "uri": "spotify:user:" + }, + "is_local": false, + "primary_color": null, + "track": { + "album": { + "album_group": "single", + "album_type": "single", + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/567L1a4812VuMSRrbCqdo4" + }, + "href": "https://api.spotify.com/v1/artists/567L1a4812VuMSRrbCqdo4", + "id": "567L1a4812VuMSRrbCqdo4", + "name": "Stain the Canvas", + "type": "artist", + "uri": "spotify:artist:567L1a4812VuMSRrbCqdo4" + }], + "available_markets": ["AD", "AE", "AG", "AL", "AM", "AO", "AR", "AT", "AU", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BN", "BO", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CD", "CG", "CH", "CI", "CL", "CM", "CO", "CR", "CV", "CW", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ES", "ET", "FI", "FJ", "FM", "FR", "GA", "GB", "GD", "GE", "GH", "GM", "GN", "GQ", "GR", "GT", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IN", "IQ", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KR", "KW", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MN", "MO", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NE", "NG", "NI", "NL", "NO", "NP", "NR", "NZ", "OM", "PA", "PE", "PG", "PH", "PK", "PL", "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RW", "SA", "SB", "SC", "SE", "SG", "SI", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SZ", "TD", "TG", "TH", "TJ", "TL", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "US", "UY", "UZ", "VC", "VE", "VN", "VU", "WS", "XK", "ZA", "ZM", "ZW"], + "external_urls": { + "spotify": "https://open.spotify.com/album/3Z7HDWGhP7QV3mML7pEIVY" + }, + "href": "https://api.spotify.com/v1/albums/3Z7HDWGhP7QV3mML7pEIVY", + "id": "3Z7HDWGhP7QV3mML7pEIVY", + "images": [{ + "height": 640, + "url": "https://i.scdn.co/image/ab67616d0000b273392ddeb33fcd0cf1e19b2c9a", + "width": 640 + }, { + "height": 300, + "url": "https://i.scdn.co/image/ab67616d00001e02392ddeb33fcd0cf1e19b2c9a", + "width": 300 + }, { + "height": 64, + "url": "https://i.scdn.co/image/ab67616d00004851392ddeb33fcd0cf1e19b2c9a", + "width": 64 + }], + "is_playable": true, + "name": "Dead Circus", + "release_date": "2022-05-06", + "release_date_precision": "day", + "total_tracks": 5, + "type": "album", + "uri": "spotify:album:3Z7HDWGhP7QV3mML7pEIVY" + }, + "artists": [{ + "external_urls": { + "spotify": "https://open.spotify.com/artist/567L1a4812VuMSRrbCqdo4" + }, + "href": "https://api.spotify.com/v1/artists/567L1a4812VuMSRrbCqdo4", + "id": "567L1a4812VuMSRrbCqdo4", + "name": "Stain the Canvas", + "type": "artist", + "uri": "spotify:artist:567L1a4812VuMSRrbCqdo4" + }], + "available_markets": ["AR", "AU", "AT", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "DE", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "CH", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "BA", "HR", "ME", "MK", "RS", "SI", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET", "XK"], + "disc_number": 1, + "duration_ms": 190250, + "episode": false, + "explicit": true, + "external_ids": { + "isrc": "QM4TX2233916" + }, + "external_urls": { + "spotify": "https://open.spotify.com/track/4RJ2TLSVhIyHFaEVYKygGh" + }, + "href": "https://api.spotify.com/v1/tracks/4RJ2TLSVhIyHFaEVYKygGh", + "id": "4RJ2TLSVhIyHFaEVYKygGh", + "is_local": false, + "name": "Dead Circus", + "popularity": 40, + "preview_url": "https://p.scdn.co/mp3-preview/3d1f27384501b933985a802ca48d6edf6d200928?cid=3c5328c75f1f44c086b25e73608c453b", + "track": true, + "track_number": 1, + "type": "track", + "uri": "spotify:track:4RJ2TLSVhIyHFaEVYKygGh" + }, + "video_thumbnail": { + "url": null + } + }], + "limit": 100, + "next": null, + "offset": 0, + "previous": null, + "total": 74 + }, + "type": "playlist", + "uri": "spotify:playlist:37i9dQZF1DWXIcbzpLauPS" + }; +} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/data/validShow.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validShow.ts new file mode 100644 index 0000000..094d09d --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validShow.ts @@ -0,0 +1,2221 @@ +export function validShow() { + return { + "available_markets": [ + "AD", + "AE", + "AG", + "AL", + "AM", + "AO", + "AR", + "AT", + "AU", + "AZ", + "BA", + "BB", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BN", + "BO", + "BR", + "BS", + "BT", + "BW", + "BZ", + "CA", + "CH", + "CI", + "CL", + "CM", + "CO", + "CR", + "CV", + "CW", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "ES", + "FI", + "FJ", + "FM", + "FR", + "GA", + "GB", + "GD", + "GE", + "GH", + "GM", + "GN", + "GQ", + "GR", + "GT", + "GW", + "GY", + "HK", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IN", + "IS", + "IT", + "JM", + "JO", + "JP", + "KE", + "KH", + "KI", + "KM", + "KN", + "KR", + "KW", + "LA", + "LB", + "LC", + "LI", + "LR", + "LS", + "LT", + "LU", + "LV", + "MA", + "MC", + "ME", + "MG", + "MH", + "MK", + "ML", + "MN", + "MO", + "MR", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NE", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NZ", + "OM", + "PA", + "PE", + "PG", + "PH", + "PL", + "PS", + "PT", + "PW", + "PY", + "QA", + "RO", + "RS", + "RW", + "SA", + "SB", + "SC", + "SE", + "SG", + "SI", + "SK", + "SL", + "SM", + "SN", + "SR", + "ST", + "SV", + "SZ", + "TD", + "TG", + "TH", + "TL", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "US", + "UY", + "UZ", + "VC", + "VN", + "VU", + "WS", + "XK", + "ZA", + "ZM", + "ZW" + ], + "copyrights": [], + "description": "Vi är där historien är. Ansvarig utgivare: Nina Glans", + "episodes": { + "href": "https://api.spotify.com/v1/shows/38bS44xjbVVZ3No3ByF1dJ/episodes?offset=0&limit=50&market=GB", + "items": [ + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/3a3c4ab877ecee7d4a235790e860aa72995fcc94", + "description": "Vill du ha sällskap av en nedsupen björn i hängmattan? Hör Vetenskapsradion Historia bläddra bland 1700-talsfiskar, Edith Södergrans fotografier och ryska krigsplaner i sommarens boktipsprogram! Luta dig tillbaka i solstolen och låt Vetenskapsradion Historia tipsa dig om sommarens bästa historiska böcker. Historienördarna Kristina Ekero Eriksson, Urban Björstadius och Tobias Svanelid bläddrar bland drottningar, runristare och nedsupna björnar för att vaska fram guldkornen i vårens historieboksutgivning. Böckerna som tipsas om är:Hedvig Eleonora och hennes tid av Eva Helen UlvrosHotet från Ryssland av Oscar JonssonFienden av Dick HarrisonEn annan Edith av Nina UlmajaKvinnorna, makten, religionen av Jan-Gunnar Rosenblad och Gundel SöderholmBaltikums befrielse av Tobias Berglund och Niclas SennertegFinlands svenska historia av Martin HårdstedtGunila Axén av Jelena ZetterströmPetrus Artedi Ichtyologia av Jakob ChristenssonNationens avskum, militärens elit av Lars Ericson WolkeTyde den som kan av Torun Zachrisson och Magnus KällströmPromenerandets historia av Kekke Stadin", + "duration_ms": 2160000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/5AmVFYRKXAkd10ZRWlBkxu" + }, + "href": "https://api.spotify.com/v1/episodes/5AmVFYRKXAkd10ZRWlBkxu", + "html_description": "

Vill du ha sällskap av en nedsupen björn i hängmattan? Hör Vetenskapsradion Historia bläddra bland 1700-talsfiskar, Edith Södergrans fotografier och ryska krigsplaner i sommarens boktipsprogram!

Luta dig tillbaka i solstolen och låt Vetenskapsradion Historia tipsa dig om sommarens bästa historiska böcker. Historienördarna Kristina Ekero Eriksson, Urban Björstadius och Tobias Svanelid bläddrar bland drottningar, runristare och nedsupna björnar för att vaska fram guldkornen i vårens historieboksutgivning.

 

Böckerna som tipsas om är:

Hedvig Eleonora och hennes tid av Eva Helen Ulvros

Hotet frĂĄn Ryssland av Oscar Jonsson

Fienden av Dick Harrison

En annan Edith av Nina Ulmaja

Kvinnorna, makten, religionen av Jan-Gunnar Rosenblad och Gundel Söderholm

Baltikums befrielse av Tobias Berglund och Niclas Sennerteg

Finlands svenska historia av Martin HĂĄrdstedt

Gunila Axén av Jelena Zetterström

Petrus Artedi Ichtyologia av Jakob Christensson

Nationens avskum, militärens elit av Lars Ericson Wolke

Tyde den som kan av Torun Zachrisson och Magnus Källström

Promenerandets historia av Kekke Stadin

", + "id": "5AmVFYRKXAkd10ZRWlBkxu", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a9936ced0aacbc3bb42766418", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f9936ced0aacbc3bb42766418", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d9936ced0aacbc3bb42766418", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Nedsupen björn i hängmattan?", + "release_date": "2023-06-20", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:5AmVFYRKXAkd10ZRWlBkxu" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/e6883f764d4b237a70d186d9bad4d66ac1e9ed22", + "description": "Ödlepungar, götiska dryckesoffer och yxmördade fornmänniskor samsas i Vetenskapsradion Historias 1000:e program, som sänds inför publik där Tobias Svanelid samlas tre namnkunniga historiker på scenen. Tobias Svanelid firar Vetenskapsradion Historias 1000:e program med en sändning inför publik, där en historikerpanel bland annat diskuterar Sveriges födelse, vikingarnas symbolvärde och vad historieintresse gör med oss människor.Ifrån scenen på Ekermanska malmgården på Södermalm i Stockholm sänds alltså den tusende upplagan av Vetenskapsradion Historia. Ett program som drog igång i januari 2000 och som programletts av Tobias Svanelid.På scenen diskuterar historikern Bo Eriksson och arkeologerna Kristina Ekero Eriksson och Jonathan Lindström Sveriges potentiella födelsedagar och historia, Gustav Vasas despotism och vikingarnas attraktionsvärde och svenskhet. Dessutom hör vi om ödlepungar, götiska dryckesoffer och värdet av historia i en föränderlig tid.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/5trZFEgnvz1GtWWOmEvc3p" + }, + "href": "https://api.spotify.com/v1/episodes/5trZFEgnvz1GtWWOmEvc3p", + "html_description": "

Ödlepungar, götiska dryckesoffer och yxmördade fornmänniskor samsas i Vetenskapsradion Historias 1000:e program, som sänds inför publik där Tobias Svanelid samlas tre namnkunniga historiker på scenen.

Tobias Svanelid firar Vetenskapsradion Historias 1000:e program med en sändning inför publik, där en historikerpanel bland annat diskuterar Sveriges födelse, vikingarnas symbolvärde och vad historieintresse gör med oss människor.

Ifrån scenen på Ekermanska malmgården på Södermalm i Stockholm sänds alltså den tusende upplagan av Vetenskapsradion Historia. Ett program som drog igång i januari 2000 och som programletts av Tobias Svanelid.

På scenen diskuterar historikern Bo Eriksson och arkeologerna Kristina Ekero Eriksson och Jonathan Lindström Sveriges potentiella födelsedagar och historia, Gustav Vasas despotism och vikingarnas attraktionsvärde och svenskhet. Dessutom hör vi om ödlepungar, götiska dryckesoffer och värdet av historia i en föränderlig tid.

", + "id": "5trZFEgnvz1GtWWOmEvc3p", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a801fdf1d46d8b6aafc8ad993", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f801fdf1d46d8b6aafc8ad993", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d801fdf1d46d8b6aafc8ad993", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Vi firar 1000 program!", + "release_date": "2023-06-13", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:5trZFEgnvz1GtWWOmEvc3p" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/0880e608e3db7dde0721d94e00c967b3ce8bee8a", + "description": "För femhundra år sedan valdes Gustav Eriksson Vasa till svensk kung. Tobias Svanelid återvänder till valplatsen i Strängnäs för att diskutera valet och kungen och hur vi minns Gustav Vasa idag. Utanför Strängnäs domkyrka valdes Gustav Eriksson till Sveriges kung den 6 juni 1523. Tobias Svanelid återvänder till ett nästan heligt landskap där kungavalet ägde rum för femhundra år sedan, på kyrkbacken, i Roggeborgen och de osynliga resterna av Sankt Eskils kapell. Historikern Olle Ferm och Elin Andersson vid Roggeborgen guidar runt vid de mytomspunna platserna och reder ut hur kungavalet gick till, vem som egentligen var hjärnan bakom mötet i Strängnäs och vad Hansestaden Lübeck hade för intresse av en ny svensk kung.Dessutom tecknar historikerna Roger Axelsson och Åsa Karlsson bilden av Gustav Vasa som en maktgirig koleriker, men också en person som höjdes till skyarna av Gustav III och odödliggjordes i såväl Sveriges första kungastaty som 1700-talsoperan Gustav Vasa.", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/4lDLntgGQavVxfqPzJqPAn" + }, + "href": "https://api.spotify.com/v1/episodes/4lDLntgGQavVxfqPzJqPAn", + "html_description": "

För femhundra år sedan valdes Gustav Eriksson Vasa till svensk kung. Tobias Svanelid återvänder till valplatsen i Strängnäs för att diskutera valet och kungen och hur vi minns Gustav Vasa idag.

Utanför Strängnäs domkyrka valdes Gustav Eriksson till Sveriges kung den 6 juni 1523. Tobias Svanelid återvänder till ett nästan heligt landskap där kungavalet ägde rum för femhundra år sedan, på kyrkbacken, i Roggeborgen och de osynliga resterna av Sankt Eskils kapell. Historikern Olle Ferm och Elin Andersson vid Roggeborgen guidar runt vid de mytomspunna platserna och reder ut hur kungavalet gick till, vem som egentligen var hjärnan bakom mötet i Strängnäs och vad Hansestaden Lübeck hade för intresse av en ny svensk kung.

Dessutom tecknar historikerna Roger Axelsson och Åsa Karlsson bilden av Gustav Vasa som en maktgirig koleriker, men också en person som höjdes till skyarna av Gustav III och odödliggjordes i såväl Sveriges första kungastaty som 1700-talsoperan Gustav Vasa.

", + "id": "4lDLntgGQavVxfqPzJqPAn", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8aec33e4cbd72c7f6294bf2eb4", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1fec33e4cbd72c7f6294bf2eb4", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68dec33e4cbd72c7f6294bf2eb4", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Gustav Vasas kungaval 1523", + "release_date": "2023-06-06", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:4lDLntgGQavVxfqPzJqPAn" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/d3de45be4459c6b629d6ce423edfa0e70084433c", + "description": "Innebar valet av Gustav Vasa till svensk kung och det moderna Sveriges födelse? Vetenskapsradion Historia reder ut argumenten kring jubiléet som inte tycks firas så mycket som många hoppats. 6 juni 1523 valdes Gustav Vasa till kung av Sverige. I år menar vissa att händelsen borde uppmärksammas som Sveriges femhundraårsdag, medan kritiker anser att kungavalet inte markerade något principiellt nytt för Sverige.Tobias Svanelid går till botten med femhundraårsdagen och pratar med personerna som vill uppmärksamma kungavalet och försöker förstå varför det stora firandet ändå tycks utebli. Vad säger historikerna i frågan och hur kan en folklorist förklara varför 1523 inte blivit lika viktigt för oss svenskar som 1789 blivit för fransmännen och 1814 för Norge?", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/1VoXREJtZJSp0LStFHaa9o" + }, + "href": "https://api.spotify.com/v1/episodes/1VoXREJtZJSp0LStFHaa9o", + "html_description": "

Innebar valet av Gustav Vasa till svensk kung och det moderna Sveriges födelse? Vetenskapsradion Historia reder ut argumenten kring jubiléet som inte tycks firas så mycket som många hoppats.

6 juni 1523 valdes Gustav Vasa till kung av Sverige. I år menar vissa att händelsen borde uppmärksammas som Sveriges femhundraårsdag, medan kritiker anser att kungavalet inte markerade något principiellt nytt för Sverige.

Tobias Svanelid går till botten med femhundraårsdagen och pratar med personerna som vill uppmärksamma kungavalet och försöker förstå varför det stora firandet ändå tycks utebli. Vad säger historikerna i frågan och hur kan en folklorist förklara varför 1523 inte blivit lika viktigt för oss svenskar som 1789 blivit för fransmännen och 1814 för Norge?

", + "id": "1VoXREJtZJSp0LStFHaa9o", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a1721e8d8a5670a661f3c4eac", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f1721e8d8a5670a661f3c4eac", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d1721e8d8a5670a661f3c4eac", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Ska vi fira Sveriges 500-årsdag?", + "release_date": "2023-05-30", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:1VoXREJtZJSp0LStFHaa9o" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/342e34870c826032bd71dc0316e2cffab8df2f4b", + "description": "Historia är viktigt för Sverigedemokraterna, och vilka historiska personer och händelser som passar in partiets världsbild analyseras nu av historikern Julia Håkansson. Vikingen, Engelbrekt och Karl XII är Sverigedemokraternas älsklingspersoner i den svenska historien, men på senare år har folkhemmet kommit att ta över rollen som historisk idealbild. Historikern Julia Håkansson är aktuell med en avhandling om Sverigedemokraternas historiesyn och varför historia verkar vara så viktigt för partiet.Dessutom om Tryckfrihetsförordningen 1766 som just utnämnts till ett nytt svenskt världsminne av Unesco. Bok- och bibliotekshistorikern Jonas Nordin beskriver den unika reformen på 1700-talet då Sverige blev först att tillåta yttrandefrihet i en skala som världen aldrig tidigare erfarit.Och så reder Dick Harrison ut varför det bara är brittiska men inga andra monarker som låter kröna sig numera.Programledare är Tobias Svanelid.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/5MKC7i0cVbXCJiT3TrxuNt" + }, + "href": "https://api.spotify.com/v1/episodes/5MKC7i0cVbXCJiT3TrxuNt", + "html_description": "

Historia är viktigt för Sverigedemokraterna, och vilka historiska personer och händelser som passar in partiets världsbild analyseras nu av historikern Julia Håkansson.

Vikingen, Engelbrekt och Karl XII är Sverigedemokraternas älsklingspersoner i den svenska historien, men på senare år har folkhemmet kommit att ta över rollen som historisk idealbild. Historikern Julia Håkansson är aktuell med en avhandling om Sverigedemokraternas historiesyn och varför historia verkar vara så viktigt för partiet.

Dessutom om Tryckfrihetsförordningen 1766 som just utnämnts till ett nytt svenskt världsminne av Unesco. Bok- och bibliotekshistorikern Jonas Nordin beskriver den unika reformen på 1700-talet då Sverige blev först att tillåta yttrandefrihet i en skala som världen aldrig tidigare erfarit.

Och så reder Dick Harrison ut varför det bara är brittiska men inga andra monarker som låter kröna sig numera.

Programledare är Tobias Svanelid.

", + "id": "5MKC7i0cVbXCJiT3TrxuNt", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8ae17f5a0aaf73a99ae3229cf3", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1fe17f5a0aaf73a99ae3229cf3", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68de17f5a0aaf73a99ae3229cf3", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Så formar Sverigedemokraterna historien", + "release_date": "2023-05-23", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:5MKC7i0cVbXCJiT3TrxuNt" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/e25208154c785a438cd87aa2299f911f172062bc", + "description": "Kringresande akrobater, skäggiga damer och kanariefågelspektakel roade 17- och 1800-talets svenskar. Vi tar pulsen på en svunnen nöjeskultur. Och kartlägger handskriftens plågsamma historia. Dresserade kanariefåglar, trollkarlar och akrobater turnerade Sverige runt på 17- och 1800-talet. Dåtidens underhållare var tidens superstjärnor och slipade entreprenörer som nu undersöks av idéhistorikern Leif Runefelt. Vetenskapsradion Historia promenerar tillsammans med honom på Djurgården i Stockholm för att söka efter spåren av dåtidens kringresande underhållningskultur.Dessutom uppmärksammar vi handskriftens plågsamma historia. Såväl medeltidens manuskriptskrivande munkar som 1800-talets skrivkrampande stålpenneskrivare fick lida för konsten att skriva för hand. Litteraturvetaren Thomas Götselius undersöker vad handskriftens historia kan berätta om historiska texter och vår egen tids förhållande till tangentbord, skärmar och hur artificiell intelligens nu författar våra böcker.Programledare är Tobias Svanelid.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/27tZeGuSMu1dj6WzN5fDbY" + }, + "href": "https://api.spotify.com/v1/episodes/27tZeGuSMu1dj6WzN5fDbY", + "html_description": "

Kringresande akrobater, skäggiga damer och kanariefågelspektakel roade 17- och 1800-talets svenskar. Vi tar pulsen på en svunnen nöjeskultur. Och kartlägger handskriftens plågsamma historia.

Dresserade kanariefåglar, trollkarlar och akrobater turnerade Sverige runt på 17- och 1800-talet. Dåtidens underhållare var tidens superstjärnor och slipade entreprenörer som nu undersöks av idéhistorikern Leif Runefelt. Vetenskapsradion Historia promenerar tillsammans med honom på Djurgården i Stockholm för att söka efter spåren av dåtidens kringresande underhållningskultur.

Dessutom uppmärksammar vi handskriftens plågsamma historia. Såväl medeltidens manuskriptskrivande munkar som 1800-talets skrivkrampande stålpenneskrivare fick lida för konsten att skriva för hand. Litteraturvetaren Thomas Götselius undersöker vad handskriftens historia kan berätta om historiska texter och vår egen tids förhållande till tangentbord, skärmar och hur artificiell intelligens nu författar våra böcker.

Programledare är Tobias Svanelid.

", + "id": "27tZeGuSMu1dj6WzN5fDbY", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a6f06c00c48e757d565405b87", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f6f06c00c48e757d565405b87", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d6f06c00c48e757d565405b87", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Dresserade kanariefåglar roade 1800-talet", + "release_date": "2023-05-16", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:27tZeGuSMu1dj6WzN5fDbY" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/518f159e5f4dda284b4611696998c19cdee4a513", + "description": "Skrattspeglar och kortväxta personer skapade succén Liseberg. 100 år efter invigningen besöker vi nöjesfältet som skulle göra Göteborg roligare. Och så uppmärksammar vi okända spionbasen Kari. Krockbilar, bergbanor, dansbanor och ett eget Lilleputtland skulle göra Göteborg roligare och dra folk till staden. Tobias Svanelid besöker 100-årsjubilerande Liseberg som trots invigningsårets regnsommar blev en stor succé och som allt sedan dess roat göteborgare och andra med åkattraktioner, musik och dans.Dessutom uppmärksammar vi de arkeologiska undersökningarna av den första allierade spionbasen på svensk mark under andra världskriget. Mitt under brinnande krig tillät det förment alliansfria Sverige de allierade att anlägga en radiomast och en sabotagebas för norska och allierade spioner i trakterna av Torne träsk. Nu avslöjas vardagslivet på basen, och dess okända historia.", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/5VArykQcDSfiqaaNqh0o1p" + }, + "href": "https://api.spotify.com/v1/episodes/5VArykQcDSfiqaaNqh0o1p", + "html_description": "

Skrattspeglar och kortväxta personer skapade succén Liseberg. 100 år efter invigningen besöker vi nöjesfältet som skulle göra Göteborg roligare. Och så uppmärksammar vi okända spionbasen Kari.

Krockbilar, bergbanor, dansbanor och ett eget Lilleputtland skulle göra Göteborg roligare och dra folk till staden. Tobias Svanelid besöker 100-årsjubilerande Liseberg som trots invigningsårets regnsommar blev en stor succé och som allt sedan dess roat göteborgare och andra med åkattraktioner, musik och dans.

Dessutom uppmärksammar vi de arkeologiska undersökningarna av den första allierade spionbasen på svensk mark under andra världskriget. Mitt under brinnande krig tillät det förment alliansfria Sverige de allierade att anlägga en radiomast och en sabotagebas för norska och allierade spioner i trakterna av Torne träsk. Nu avslöjas vardagslivet på basen, och dess okända historia.

", + "id": "5VArykQcDSfiqaaNqh0o1p", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a3a95289e736b6562c123a197", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f3a95289e736b6562c123a197", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d3a95289e736b6562c123a197", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Liseberg gjorde Göteborg roligare", + "release_date": "2023-05-09", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:5VArykQcDSfiqaaNqh0o1p" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/024bdb6d57cb4a5acecc396fc648992c441705c4", + "description": "Vilka var Sveriges bästa och sämsta kungar och vem hade fulast frisyr? Panelen återsamlas för att debattera kungar genom historien. Och så granskar vi bioaktuella filmen om de tre musketörerna! Historiepanelen träffas för att diskutera kungens 50 år på tronen och listar Sveriges bästa och värsta kungar. Hör om Gustav III som turistguide, om Magnus Erikssons misslyckanden och rikskanslern som var bättre än Gustav II Adolf, men också om Karl IX:s hopplösa frisyr och bibliskt inspirerade lagstiftning.Dessutom går vi på bio för att granska aktuella De tre musketörerna – d’Artagnans historievetenskapliga förtjänster och tillkortakommanden. Historikerna Mats Hallenberg och Magnus Linnarsson gillar filmens ambitioner, men är tveksamma till 1600-talsmusköternas träffsäkerhet.Och så reder Dick Harrison ut om det är vår långa alliansfrihet eller bara ren och skär tur som gjort att Sverige klarat sig undan krig under drygt 200 år.Programledare är Tobias Svanelid.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/3BB21jA2vdM6sNVXl0vndg" + }, + "href": "https://api.spotify.com/v1/episodes/3BB21jA2vdM6sNVXl0vndg", + "html_description": "

Vilka var Sveriges bästa och sämsta kungar och vem hade fulast frisyr? Panelen återsamlas för att debattera kungar genom historien. Och så granskar vi bioaktuella filmen om de tre musketörerna!

Historiepanelen träffas för att diskutera kungens 50 år på tronen och listar Sveriges bästa och värsta kungar. Hör om Gustav III som turistguide, om Magnus Erikssons misslyckanden och rikskanslern som var bättre än Gustav II Adolf, men också om Karl IX:s hopplösa frisyr och bibliskt inspirerade lagstiftning.

Dessutom går vi på bio för att granska aktuella De tre musketörerna – d’Artagnans historievetenskapliga förtjänster och tillkortakommanden. Historikerna Mats Hallenberg och Magnus Linnarsson gillar filmens ambitioner, men är tveksamma till 1600-talsmusköternas träffsäkerhet.

Och så reder Dick Harrison ut om det är vår långa alliansfrihet eller bara ren och skär tur som gjort att Sverige klarat sig undan krig under drygt 200 år.

Programledare är Tobias Svanelid.

", + "id": "3BB21jA2vdM6sNVXl0vndg", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8aa2ec8db962dcf68ddb282034", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1fa2ec8db962dcf68ddb282034", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68da2ec8db962dcf68ddb282034", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "De var Sveriges sämsta kungar", + "release_date": "2023-05-02", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:3BB21jA2vdM6sNVXl0vndg" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/0507794c1e7bb25ad1711cff19b4a931d24269b7", + "description": "En norsk korstågskung steg i land i det påstått hedniska Småland år 1123. Tobias Svanelid undersöker historien kring Kalmare ledung och hur lilla fiskeläget Simrishamn då steg fram i historiens ljus. År 1123 seglade hundratals norska skepp in i Kalmarsund i syfte att kristna de hedniska smålänningarna. Händelsen som gått till historien som Kalmare ledung var mer av en storpolitisk revirmarkering än ett heligt krig, menar historikern Dick Harrison, och fick också konsekvensen att lilla fiskeläget Simrishamn stapplade in i historiens ljus.Tobias Svanelid reser till Simrishamn för att med museichefen Lena Alebo prata om stadens historia, som alltså började för 900 år sedan, och som man firar stort i år. Och så reder vi ut vad som egentligen hände under Kalmare ledung, och hur hedniska smålänningarna egentligen var år 1123.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/34cKuUWCbsM85VCOE07wYF" + }, + "href": "https://api.spotify.com/v1/episodes/34cKuUWCbsM85VCOE07wYF", + "html_description": "

En norsk korstågskung steg i land i det påstått hedniska Småland år 1123. Tobias Svanelid undersöker historien kring Kalmare ledung och hur lilla fiskeläget Simrishamn då steg fram i historiens ljus.

År 1123 seglade hundratals norska skepp in i Kalmarsund i syfte att kristna de hedniska smålänningarna. Händelsen som gått till historien som Kalmare ledung var mer av en storpolitisk revirmarkering än ett heligt krig, menar historikern Dick Harrison, och fick också konsekvensen att lilla fiskeläget Simrishamn stapplade in i historiens ljus.

Tobias Svanelid reser till Simrishamn för att med museichefen Lena Alebo prata om stadens historia, som alltså började för 900 år sedan, och som man firar stort i år. Och så reder vi ut vad som egentligen hände under Kalmare ledung, och hur hedniska smålänningarna egentligen var år 1123.

", + "id": "34cKuUWCbsM85VCOE07wYF", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a145e74df87ddae67af4b5454", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f145e74df87ddae67af4b5454", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d145e74df87ddae67af4b5454", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Norges korståg mot Småland", + "release_date": "2023-04-25", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:34cKuUWCbsM85VCOE07wYF" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/4c0ab334d2fe63f375016b6925a1d137ca1871c2", + "description": "Sverige hade sin egen Biggles! Hör om Gustaf Lönnbergs fantastiska historia i brittiska RAF och hur de svenska piloterna i allierad tjänst stred mot Hitler med glömdes bort av hemlandet. Flera svenskar stred i det brittiska flygvapnet RAF mot Hitlertyskland. I den aktuella boken Svenska flygare mot Hitler, frivilliga i Royal Air Force 1939-45 kartlägger militärhistorikerna Lars Gyllenhaal och Lennart Westberg deras öden och äventyr. Flera av dem blev rikt dekorerade av den brittiska staten, men hemma i Sverige sågs de med misstänksamhet, och deras historia har glömts bort. För lika mycket som svenskarna älskade den fiktive Biggles, lika mycket hade man svårt att förstå sina landsmäns erfarenheter från kriget, berättar Lars Gyllenhaal.Dessutom diskuterar vi surrogatens och livsmedelssubstitutens historia i Sverige. Idag har kaffeprisets uppgång skapat krigsrubriker, men redan på 1700-talet försökte man komma runt de höga kaffepriserna med hjälp av fantasifulla surrogat, berättar historikern Hanna Hodacs som kartlägger surrogathistorien i ett nytt forskningsprojekt.Och så reder Dick Harrison ut historien om våra svenska socknar och hur de egentligen uppstod.Programledare är Tobias Svanelid.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/3bFIYSSgoNnwhMNKyj1Jjb" + }, + "href": "https://api.spotify.com/v1/episodes/3bFIYSSgoNnwhMNKyj1Jjb", + "html_description": "

Sverige hade sin egen Biggles! Hör om Gustaf Lönnbergs fantastiska historia i brittiska RAF och hur de svenska piloterna i allierad tjänst stred mot Hitler med glömdes bort av hemlandet.

Flera svenskar stred i det brittiska flygvapnet RAF mot Hitlertyskland. I den aktuella boken Svenska flygare mot Hitler, frivilliga i Royal Air Force 1939-45 kartlägger militärhistorikerna Lars Gyllenhaal och Lennart Westberg deras öden och äventyr. Flera av dem blev rikt dekorerade av den brittiska staten, men hemma i Sverige sågs de med misstänksamhet, och deras historia har glömts bort. För lika mycket som svenskarna älskade den fiktive Biggles, lika mycket hade man svårt att förstå sina landsmäns erfarenheter från kriget, berättar Lars Gyllenhaal.

Dessutom diskuterar vi surrogatens och livsmedelssubstitutens historia i Sverige. Idag har kaffeprisets uppgång skapat krigsrubriker, men redan på 1700-talet försökte man komma runt de höga kaffepriserna med hjälp av fantasifulla surrogat, berättar historikern Hanna Hodacs som kartlägger surrogathistorien i ett nytt forskningsprojekt.

Och sĂĄ reder Dick Harrison ut historien om vĂĄra svenska socknar och hur de egentligen uppstod.

Programledare är Tobias Svanelid.

", + "id": "3bFIYSSgoNnwhMNKyj1Jjb", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8ac73a44acb6f83e1efb29d501", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1fc73a44acb6f83e1efb29d501", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68dc73a44acb6f83e1efb29d501", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Sveriges Biggles", + "release_date": "2023-04-18", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:3bFIYSSgoNnwhMNKyj1Jjb" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/2e03a48f9b97ba624e39b22e102418bb1338ed2e", + "description": "Blodet från avrättade kunde bota epileptiker och magiska drycker gav bödlar mord i sinnet. I en aktuell bok skildras Sveriges sista bödlar, och vi besöker deras arbetsplats - galgbacken i Stockholm. Ännu en bit in på 1900-talet verkställde bödlar många av de straff som svenskar dömts för. Mitt i det industrialiserade och moderniserade Sverige arbetade denna rest från medeltiden, och präglade sin samtid. Historikern Isak Lidström har undersökt de sista bödlarnas liv i Sverige, och den kultur och många myter som uppstod kring dem, om såväl magiska drycker som heligt blod.Och så rapporterar vi från Vasamuseets nya upptäckt, att en av Vasas besättningsmän inte var båtman, utan – kvinna! Anna Maria Forssberg vid Vasamuseet berättar om kvinnorna på Vasa och vilken roll de spelade i den svenska flottan.Dick Harrison reder dessutom ut vad Hälsingland var för 2500 år sedan.Programledare är Tobias Svanelid.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/4cmzSLFanlniua1oqMXR04" + }, + "href": "https://api.spotify.com/v1/episodes/4cmzSLFanlniua1oqMXR04", + "html_description": "

Blodet från avrättade kunde bota epileptiker och magiska drycker gav bödlar mord i sinnet. I en aktuell bok skildras Sveriges sista bödlar, och vi besöker deras arbetsplats - galgbacken i Stockholm.

Ännu en bit in på 1900-talet verkställde bödlar många av de straff som svenskar dömts för. Mitt i det industrialiserade och moderniserade Sverige arbetade denna rest från medeltiden, och präglade sin samtid. Historikern Isak Lidström har undersökt de sista bödlarnas liv i Sverige, och den kultur och många myter som uppstod kring dem, om såväl magiska drycker som heligt blod.

Och så rapporterar vi från Vasamuseets nya upptäckt, att en av Vasas besättningsmän inte var båtman, utan – kvinna! Anna Maria Forssberg vid Vasamuseet berättar om kvinnorna på Vasa och vilken roll de spelade i den svenska flottan.

Dick Harrison reder dessutom ut vad Hälsingland var för 2500 år sedan.

Programledare är Tobias Svanelid.

", + "id": "4cmzSLFanlniua1oqMXR04", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a84b623b50fbac9202c548519", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f84b623b50fbac9202c548519", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d84b623b50fbac9202c548519", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "De sista bödlarna", + "release_date": "2023-04-11", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:4cmzSLFanlniua1oqMXR04" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/d21eddadf749ec1937b2f26720fa2d10948ce3fe", + "description": "I slutet av 1700-talet gick de politiska och känslomässiga svallvågorna höga. Men hur klarade dåtidens politiker av att anpassa sig till revolutionernas tidevarv? Ny forskning ger svar. I en känslostormande tid måste också politiken tala till hjärtat snarare än till hjärnan. Så tycks det sena 1700-talets brittiska politiker ha resonerat när de stred om landets framtid i revolutionernas tidevarv. Historikern Alvar Blomgren har undersökt hur känslostormarna under Franska revolutionen omsattes till politisk verklighet och vilka nya krav på känslomässighet och utlevande gester som ställdes på den tidens politiker. Och vad som lever kvar av tankarna idag.Dessutom reder Dick Harrison ut vad som lever kvar av det romerska imperiet i dagens katolska kyrka.Programledare är Tobias Svanelid. ", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/6rMBMF5ZETBWhFcMAK6ZCJ" + }, + "href": "https://api.spotify.com/v1/episodes/6rMBMF5ZETBWhFcMAK6ZCJ", + "html_description": "

I slutet av 1700-talet gick de politiska och känslomässiga svallvågorna höga. Men hur klarade dåtidens politiker av att anpassa sig till revolutionernas tidevarv? Ny forskning ger svar.

I en känslostormande tid måste också politiken tala till hjärtat snarare än till hjärnan. Så tycks det sena 1700-talets brittiska politiker ha resonerat när de stred om landets framtid i revolutionernas tidevarv. Historikern Alvar Blomgren har undersökt hur känslostormarna under Franska revolutionen omsattes till politisk verklighet och vilka nya krav på känslomässighet och utlevande gester som ställdes på den tidens politiker. Och vad som lever kvar av tankarna idag.

Dessutom reder Dick Harrison ut vad som lever kvar av det romerska imperiet i dagens katolska kyrka.

Programledare är Tobias Svanelid. 

", + "id": "6rMBMF5ZETBWhFcMAK6ZCJ", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a03ef80ecb5ed4635ea4e71d0", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f03ef80ecb5ed4635ea4e71d0", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d03ef80ecb5ed4635ea4e71d0", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "När känslorna kom in i politiken", + "release_date": "2023-04-04", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:6rMBMF5ZETBWhFcMAK6ZCJ" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/398ef10b737e9883a780f6a87b1ff931b172ac14", + "description": "Varför har relationen mellan Sverige och Ryssland stadigt blivit sämre det senaste årtusendet? Dick Harrison gästar Tobias Svanelid, liksom krigsvetaren Oscar Jonsson, aktuell med Hotet från Ryssland. Det började med striderna om Finland och Baltikum på 1200-talet och urartade totalt med Johan III:s ”skällebrev” till Ivan den Förskräcklige. 1700-talets våldsamma ryska påverkanskampanjer mot Sverige och den svenska russofobin under 1800-talet cementerade osämjan. Sveriges relation till Ryssland har präglats av fiendskap och främlingskap och i den nya boken Fienden analyserar Dick Harrison orsakerna till den dåliga stämningen länderna emellan.Hur hotet från Ryssland ska förstås undersöks också av Oscar Jonsson, doktor i krigsvetenskap och expert på rysk krigföring i aktuella Hotet från Ryssland. Att bevara regimens maktställning är en av nyckelpunkterna i Putins strategi som vi behöver förstå för att greppa invasionen av Ukraina säger han.Programledare är Tobias Svanelid.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/0rfsnLOftzct0mi0MC44Xa" + }, + "href": "https://api.spotify.com/v1/episodes/0rfsnLOftzct0mi0MC44Xa", + "html_description": "

Varför har relationen mellan Sverige och Ryssland stadigt blivit sämre det senaste årtusendet? Dick Harrison gästar Tobias Svanelid, liksom krigsvetaren Oscar Jonsson, aktuell med Hotet från Ryssland.

Det började med striderna om Finland och Baltikum på 1200-talet och urartade totalt med Johan III:s ”skällebrev” till Ivan den Förskräcklige. 1700-talets våldsamma ryska påverkanskampanjer mot Sverige och den svenska russofobin under 1800-talet cementerade osämjan. Sveriges relation till Ryssland har präglats av fiendskap och främlingskap och i den nya boken Fienden analyserar Dick Harrison orsakerna till den dåliga stämningen länderna emellan.

Hur hotet från Ryssland ska förstås undersöks också av Oscar Jonsson, doktor i krigsvetenskap och expert på rysk krigföring i aktuella Hotet från Ryssland. Att bevara regimens maktställning är en av nyckelpunkterna i Putins strategi som vi behöver förstå för att greppa invasionen av Ukraina säger han.

Programledare är Tobias Svanelid.

", + "id": "0rfsnLOftzct0mi0MC44Xa", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a1f46bc45fdccabe76730573e", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f1f46bc45fdccabe76730573e", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d1f46bc45fdccabe76730573e", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Ryssland har varit Sveriges eviga fiende", + "release_date": "2023-03-28", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:0rfsnLOftzct0mi0MC44Xa" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/671c90202a45fcb769e818eaa8fe078eb9d2bc5f", + "description": "Privata mattanter, fängelsehålor och tiggeri präglade de första svenska gymnasieelevernas vardag. Tobias Svanelid besöker 400-årsjublierande gymnasiet i Västerås, stormaktstidens bildningsprojekt. 1623 välkomnades de första eleverna till Västerås gymnasium, den svenska stormaktstidens nya flaggskepp för bildning som skulle utbilda nyttiga medborgare till statsförvaltningen. Vetenskapsradion Historia reser dit med historikern Pontus Folkesson för att leva sig in i de första gymnasieelevernas vardag, med privatanställda mattanter, stränga straff i fängelsehålan ”Proban” och dåtidens studiestödssystem – djäknegången, som ofta ledde till bråk och sen ankomst.Dessutom hör vi om hur 400-årsjubiléet ska firas och hur skolans traditioner än idag upprätthålls av Arosbröderna, Sveriges äldsta skolförening.Och så berättar ukrainska bibliotekarien Tetiana Chorna som nyligen varit på Sverigebesök om situationen för Ukrainas hotade bibliotek. Omkring 400 bibliotek har redan skadats eller förstörts i kriget och nu satsar man på digitaliseringsprojekt för att rädda landets bokskatter.Programledare är Tobias Svanelid.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/3mqR2AyxofEZjt3jKNeyb5" + }, + "href": "https://api.spotify.com/v1/episodes/3mqR2AyxofEZjt3jKNeyb5", + "html_description": "

Privata mattanter, fängelsehålor och tiggeri präglade de första svenska gymnasieelevernas vardag. Tobias Svanelid besöker 400-årsjublierande gymnasiet i Västerås, stormaktstidens bildningsprojekt.

1623 välkomnades de första eleverna till Västerås gymnasium, den svenska stormaktstidens nya flaggskepp för bildning som skulle utbilda nyttiga medborgare till statsförvaltningen. Vetenskapsradion Historia reser dit med historikern Pontus Folkesson för att leva sig in i de första gymnasieelevernas vardag, med privatanställda mattanter, stränga straff i fängelsehålan ”Proban” och dåtidens studiestödssystem – djäknegången, som ofta ledde till bråk och sen ankomst.

Dessutom hör vi om hur 400-årsjubiléet ska firas och hur skolans traditioner än idag upprätthålls av Arosbröderna, Sveriges äldsta skolförening.

Och så berättar ukrainska bibliotekarien Tetiana Chorna som nyligen varit på Sverigebesök om situationen för Ukrainas hotade bibliotek. Omkring 400 bibliotek har redan skadats eller förstörts i kriget och nu satsar man på digitaliseringsprojekt för att rädda landets bokskatter.

Programledare är Tobias Svanelid.

", + "id": "3mqR2AyxofEZjt3jKNeyb5", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a664e5fbe026e4484de40e45f", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f664e5fbe026e4484de40e45f", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d664e5fbe026e4484de40e45f", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Sveriges första gymnasieskola", + "release_date": "2023-03-21", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:3mqR2AyxofEZjt3jKNeyb5" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/94afe36cf22748cd4d34e7bd259861fa340ec369", + "description": "Vilka var stenålderns gropkeramiker som levde längs Skandinaviens kuster? Vi uppmärksammar forskningen om säljägarna i Ajvide på Gotland där jägar- och fiskekulturen frodades för 5000 år sedan. De vägrade bli bönder och valde istället att fiska och jaga säl längs Skandinaviens kuster. I gotländska Ajvide finns de bäst bevarade resterna av den gropkeramiska kulturen, som för 5000 år sedan dominerade våra kuster och som inte ville beblanda sig särskilt mycket med jordbrukarna i inlandet. Tobias Svanelid uppmärksammar den aktuella forskning som nu försöker förstå sig på gropkeramikerna bättre och som bland det enorma skelettmaterialet ifrån Ajvide hittar tecken på enorma grisfester, igelkottsdyrkan och en envishet att hålla kvar vid sin egen livsstil i konkurrens med bönderna.Dessutom svarar Dick Harrison på en lyssnarfråga om hur det kunde gå så snabbt när islam spreds över Europa och Asien under medeltiden.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/2JIxVl3WyaeXYH6VRi49C8" + }, + "href": "https://api.spotify.com/v1/episodes/2JIxVl3WyaeXYH6VRi49C8", + "html_description": "

Vilka var stenålderns gropkeramiker som levde längs Skandinaviens kuster? Vi uppmärksammar forskningen om säljägarna i Ajvide på Gotland där jägar- och fiskekulturen frodades för 5000 år sedan.

De vägrade bli bönder och valde istället att fiska och jaga säl längs Skandinaviens kuster. I gotländska Ajvide finns de bäst bevarade resterna av den gropkeramiska kulturen, som för 5000 år sedan dominerade våra kuster och som inte ville beblanda sig särskilt mycket med jordbrukarna i inlandet. Tobias Svanelid uppmärksammar den aktuella forskning som nu försöker förstå sig på gropkeramikerna bättre och som bland det enorma skelettmaterialet ifrån Ajvide hittar tecken på enorma grisfester, igelkottsdyrkan och en envishet att hålla kvar vid sin egen livsstil i konkurrens med bönderna.

Dessutom svarar Dick Harrison på en lyssnarfråga om hur det kunde gå så snabbt när islam spreds över Europa och Asien under medeltiden.

", + "id": "2JIxVl3WyaeXYH6VRi49C8", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8ad2d7cf7404c17b2bd2dece17", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1fd2d7cf7404c17b2bd2dece17", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68dd2d7cf7404c17b2bd2dece17", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Stenålderns säljägare kartläggs", + "release_date": "2023-03-14", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:2JIxVl3WyaeXYH6VRi49C8" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/57e22f139de2b3b0035d5c59f8f53a620c8948c7", + "description": "Hur skapades Sveriges största propagandamålning från Stormaktstiden? Nytt forskningsprojekt kartlägger Riddarhusets blaffiga takmålning. Och så reder Dick Harrison ut svenska kolonialäventyr i Afrika. Riddarhusets tak pryds av konstverket Dygdernas rådslag, där 1600-talets Moder Svea sitter uppflugen på ett moln för att sprida budskapet om den nya supermakten Sverige. Konstnären David Kläcker Ehrenstrahls målning har kommit att bli sinnebilden för stormaktstidens svenska propaganda, men hur bilden kom till och hur den har förändrats undersökt nu i ett nytt forskningsprojekt. Med hjälp av infrarött och ultraviolett ljus försöker konstvetare nu penetrera konstverkets historia.Dessutom återser vi den arga historikern, bloggkollektivet som ville få in historiska perspektiv i samtidsdebatten, men som nu lägger ner. Varför?Och så reder Dick Harrison ut den smått nedtystade historien om Sveriges koloniala äventyr på afrikanska Guldkusten.Programledare är Tobias Svanelid.", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/6RqBTuLHKZaNLuvjJEfzH4" + }, + "href": "https://api.spotify.com/v1/episodes/6RqBTuLHKZaNLuvjJEfzH4", + "html_description": "

Hur skapades Sveriges största propagandamålning från Stormaktstiden? Nytt forskningsprojekt kartlägger Riddarhusets blaffiga takmålning. Och så reder Dick Harrison ut svenska kolonialäventyr i Afrika.

Riddarhusets tak pryds av konstverket Dygdernas rådslag, där 1600-talets Moder Svea sitter uppflugen på ett moln för att sprida budskapet om den nya supermakten Sverige. Konstnären David Kläcker Ehrenstrahls målning har kommit att bli sinnebilden för stormaktstidens svenska propaganda, men hur bilden kom till och hur den har förändrats undersökt nu i ett nytt forskningsprojekt. Med hjälp av infrarött och ultraviolett ljus försöker konstvetare nu penetrera konstverkets historia.

Dessutom återser vi den arga historikern, bloggkollektivet som ville få in historiska perspektiv i samtidsdebatten, men som nu lägger ner. Varför?

Och så reder Dick Harrison ut den smått nedtystade historien om Sveriges koloniala äventyr på afrikanska Guldkusten.

Programledare är Tobias Svanelid.

", + "id": "6RqBTuLHKZaNLuvjJEfzH4", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a7684f26157d1efe988930052", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f7684f26157d1efe988930052", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d7684f26157d1efe988930052", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Stormaktstidens propagandabild kartläggs", + "release_date": "2023-03-07", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:6RqBTuLHKZaNLuvjJEfzH4" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/40344321fb2ce57db4371a98fe546ab7ebd7c72c", + "description": "De historiska trådarna mellan Sverige och Ukraina är många och starka, inte minst under vikingatid och under Karl XII:s fälttåg i öst. Vetenskapsradion Historia uppmärksammar vår gemensamma historia. Under vikingatid kryllade Kiev av svenskättade vikingar och på 1700-talet stred Karl XII för Ukrainas sak. Vetenskapsradion Historia uppmärksammar forskningsprojekten som nu vill rikta ljuset på Sverige och Ukrainas långa gemensamma historia som döljer sig i arkivens och museernas källare.Elin Fornander vid Historiska museet berättar om det nya initiativ som syftar till att lyfta fram de föremål i både svenska och ukrainska museer som kan berätta om kontakterna mellan länderna. Det handlar, menar hon, om ett nytt sätt att berätta historia och att låta var och en dra sina egna slutsatser av de många källor som finns.Arkeologen Charlotte Hedenstierna Jonsson berättar om det skandinavisk-slaviska samhälle som växte fram runt Kiev under vikingatiden och vad nya DNA-analyser kan berätta om den multietniska befolkning som gärna ville framstå som tuffa vikingar, oavsett vilket ursprung man hade.Och så berättar historikern Jan Mispelaere vid Riksarkivet om alla de dokument som avslöjar Karl XII:s och Stormakts-Sveriges djupa engagemang för ett fritt Ukraina. Förutom den första ukrainska konstitutionen finns i svenska arkiv unika dokument som berättar om den ukrainska nationens första stapplande steg.Programledare är Tobias Svanelid och programmet spelades in för publik på Historiska museet på årsdagen av Rysslands invasion av Ukraina.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/0cb9UNjnuesXZATgvZBftU" + }, + "href": "https://api.spotify.com/v1/episodes/0cb9UNjnuesXZATgvZBftU", + "html_description": "

De historiska trådarna mellan Sverige och Ukraina är många och starka, inte minst under vikingatid och under Karl XII:s fälttåg i öst. Vetenskapsradion Historia uppmärksammar vår gemensamma historia.

Under vikingatid kryllade Kiev av svenskättade vikingar och på 1700-talet stred Karl XII för Ukrainas sak. Vetenskapsradion Historia uppmärksammar forskningsprojekten som nu vill rikta ljuset på Sverige och Ukrainas långa gemensamma historia som döljer sig i arkivens och museernas källare.

Elin Fornander vid Historiska museet berättar om det nya initiativ som syftar till att lyfta fram de föremål i både svenska och ukrainska museer som kan berätta om kontakterna mellan länderna. Det handlar, menar hon, om ett nytt sätt att berätta historia och att låta var och en dra sina egna slutsatser av de många källor som finns.

Arkeologen Charlotte Hedenstierna Jonsson berättar om det skandinavisk-slaviska samhälle som växte fram runt Kiev under vikingatiden och vad nya DNA-analyser kan berätta om den multietniska befolkning som gärna ville framstå som tuffa vikingar, oavsett vilket ursprung man hade.

Och så berättar historikern Jan Mispelaere vid Riksarkivet om alla de dokument som avslöjar Karl XII:s och Stormakts-Sveriges djupa engagemang för ett fritt Ukraina. Förutom den första ukrainska konstitutionen finns i svenska arkiv unika dokument som berättar om den ukrainska nationens första stapplande steg.

Programledare är Tobias Svanelid och programmet spelades in för publik på Historiska museet på årsdagen av Rysslands invasion av Ukraina.

", + "id": "0cb9UNjnuesXZATgvZBftU", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8aac2e70e6b50b638f8c4d447b", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1fac2e70e6b50b638f8c4d447b", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68dac2e70e6b50b638f8c4d447b", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Ukrainas historia är vår", + "release_date": "2023-02-28", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:0cb9UNjnuesXZATgvZBftU" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/78960c689287a453b6af25c4ca65fbe78e02fff0", + "description": "Hur länge kan en gäst stanna hos dig innan du tröttnar? Nu har historiker undersökt gästfrihetens historia och avslöjar våra attityder gentemot främlingar, flyktingar och krigsfångar. Hur har vi tänkt kring gäster, flyktingar och andra som kommit på kortare eller längre besök i Sverige? I en aktuell bok undersöker historiker gästfrihetens historia, där svenskarna, redan sedan medeltiden verkat ha intagit en särställning.- Adam av Bremen skrev redan på 1000-talet att av alla folk kring Östersjön var svenskarna de mest gästfria, berättar historikern Wojtek Jezierski.Historikerna Olof Blomqvist och Sari Nauman studerar situationen med krigsflyktingar och krigsfångar som kom till Sverige under Stora nordiska kriget på 1700-talet, och som snabbt kom att bli undersåtarnas, snarare än kungens ansvar. Hur flyktingarna skulle hjälpas och vem som var i störst behov av hjälp var frågor som svenskarna då ställde sig för första gången.Dessutom svarar Dick Harrison om vilket som varit det senaste kriget som Storbritannien förlorat.Programledare är Tobias Svanelid.", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/2xZE8R1aWDDeZUDGgHIsbC" + }, + "href": "https://api.spotify.com/v1/episodes/2xZE8R1aWDDeZUDGgHIsbC", + "html_description": "

Hur länge kan en gäst stanna hos dig innan du tröttnar? Nu har historiker undersökt gästfrihetens historia och avslöjar våra attityder gentemot främlingar, flyktingar och krigsfångar.

Hur har vi tänkt kring gäster, flyktingar och andra som kommit på kortare eller längre besök i Sverige? I en aktuell bok undersöker historiker gästfrihetens historia, där svenskarna, redan sedan medeltiden verkat ha intagit en särställning.

- Adam av Bremen skrev redan på 1000-talet att av alla folk kring Östersjön var svenskarna de mest gästfria, berättar historikern Wojtek Jezierski.

Historikerna Olof Blomqvist och Sari Nauman studerar situationen med krigsflyktingar och krigsfångar som kom till Sverige under Stora nordiska kriget på 1700-talet, och som snabbt kom att bli undersåtarnas, snarare än kungens ansvar. Hur flyktingarna skulle hjälpas och vem som var i störst behov av hjälp var frågor som svenskarna då ställde sig för första gången.

Dessutom svarar Dick Harrison om vilket som varit det senaste kriget som Storbritannien förlorat.

Programledare är Tobias Svanelid.

", + "id": "2xZE8R1aWDDeZUDGgHIsbC", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a1ff0f85f8b5886b801a602f6", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f1ff0f85f8b5886b801a602f6", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d1ff0f85f8b5886b801a602f6", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Gästfrihetens historia", + "release_date": "2023-02-21", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:2xZE8R1aWDDeZUDGgHIsbC" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/a5d2de2735e32c2029cb0bf3b3c264e15290f229", + "description": "Hur får man ner Sveriges 15 000 år långa historia på 10 timmar? Vi träffar producenterna bakom kommande SVT-satsningen Historien om Sverige. Och så analyserar vi Sveriges största fiasko på slagfältet. Det är televisionens genom tidernas största satsning på en historisk dokumentärserie. I höst får SVT:s Historien om Sverige premiär men redan nu tar Vetenskapsradion Historia pulsen på mastodontprojektet som försöker sammanfatta 15 000 år på 10 timmar. Vi följer med när Axel von Fersen klubbas ihjäl av en ilsken folkhop och pratar med producenter, regissör och maskörer om utmaningarna att återskapa historien.Dessutom reder Dick Harrison ut hur Sveriges blodigaste fiasko på slagfältet, slaget vid Kirkholm 1605, kunde hända, och varför vi så ogärna vill tala om katastrofen fyrahundra år senare.Programledare är Tobias Svanelid.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/67XbBVD2TkKVqOFw6vhJYY" + }, + "href": "https://api.spotify.com/v1/episodes/67XbBVD2TkKVqOFw6vhJYY", + "html_description": "

Hur får man ner Sveriges 15 000 år långa historia på 10 timmar? Vi träffar producenterna bakom kommande SVT-satsningen Historien om Sverige. Och så analyserar vi Sveriges största fiasko på slagfältet.

Det är televisionens genom tidernas största satsning på en historisk dokumentärserie. I höst får SVT:s Historien om Sverige premiär men redan nu tar Vetenskapsradion Historia pulsen på mastodontprojektet som försöker sammanfatta 15 000 år på 10 timmar. Vi följer med när Axel von Fersen klubbas ihjäl av en ilsken folkhop och pratar med producenter, regissör och maskörer om utmaningarna att återskapa historien.

Dessutom reder Dick Harrison ut hur Sveriges blodigaste fiasko på slagfältet, slaget vid Kirkholm 1605, kunde hända, och varför vi så ogärna vill tala om katastrofen fyrahundra år senare.

Programledare är Tobias Svanelid.

", + "id": "67XbBVD2TkKVqOFw6vhJYY", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a8a231a52fc7a3af4b5b9d9c9", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f8a231a52fc7a3af4b5b9d9c9", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d8a231a52fc7a3af4b5b9d9c9", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "SVT storsatsar på Historien om Sverige", + "release_date": "2023-02-14", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:67XbBVD2TkKVqOFw6vhJYY" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/c6bbe462b25aeabbce31718205d5521b64d810ba", + "description": "Hur gick det till när de gamla asagudarna byttes mot Jesus? Ny forskning visar att processen kunde gå våldsamt till och att många hedniska tankar levde kvar långt in i vår egen tid. Med mutor, hot och våld tvingade kyrkan och missionärerna Nordens hedningar att lämna sina gamla gudar. Tor, Oden och Freja byttes mot Jesus Kristus under en process som ibland var allt annat än fredlig. Religionshistorikern Olof Sundqvist har undersökt hur den här revolutionerande förändringen i Norden gick till och vad som levt kvar av hedniska tankar och trosföreställningar också efter att kyrkorna började byggas.Dessutom om mossliken som nu inventerats och undersökts i en ny studie. Arkeologen Sophie Bergerbrant berättar om den mångtusenåriga traditionen att sänka ner människokroppar i dimmiga mossar och kärr och hur den här seden levt kvar långt in i modern tid.Programledare är Tobias Svanelid.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/0Uhlkv492kg7IRKZkU0Web" + }, + "href": "https://api.spotify.com/v1/episodes/0Uhlkv492kg7IRKZkU0Web", + "html_description": "

Hur gick det till när de gamla asagudarna byttes mot Jesus? Ny forskning visar att processen kunde gå våldsamt till och att många hedniska tankar levde kvar långt in i vår egen tid.

Med mutor, hot och våld tvingade kyrkan och missionärerna Nordens hedningar att lämna sina gamla gudar. Tor, Oden och Freja byttes mot Jesus Kristus under en process som ibland var allt annat än fredlig. Religionshistorikern Olof Sundqvist har undersökt hur den här revolutionerande förändringen i Norden gick till och vad som levt kvar av hedniska tankar och trosföreställningar också efter att kyrkorna började byggas.

Dessutom om mossliken som nu inventerats och undersökts i en ny studie. Arkeologen Sophie Bergerbrant berättar om den mångtusenåriga traditionen att sänka ner människokroppar i dimmiga mossar och kärr och hur den här seden levt kvar långt in i modern tid.

Programledare är Tobias Svanelid.

", + "id": "0Uhlkv492kg7IRKZkU0Web", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a98a20e10fbae0fb264729113", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f98a20e10fbae0fb264729113", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d98a20e10fbae0fb264729113", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "När Oden byttes mot Jesus", + "release_date": "2023-02-07", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:0Uhlkv492kg7IRKZkU0Web" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/02ebea9ddc9a9e6099eb0281bcce148e5bec85cf", + "description": "Flickor förväntades ta mest ansvar för oönskade graviditeter och sexuellt överförbara sjukdomar också under den sexuella revolutionen. Trots nya tankar levde gamla normer kvar visar ny forskning. Den sexuella revolutionen på 70-talet innebar en ny syn på sex och samliv, men gamla tankar levde kvar. Historikern Anna-Karin Larsson har studerat debatterna i dåtidens medicinska tidskrifter och visar hur flickor fortfarande förväntades ta ansvar inte bara för sin egen sexualitet men också för pojkarnas.Vi undersöker också hur minnet av Mahatma Gandhi lever kvar i Indien, 75 år efter mordet på landsfadern. Sveriges Radios Sydasienkorrespondent Naila Saleem menar att Gandhi inte hade känt igen sig i dagens Indien.Och så svarar Dick Harrison på en lyssnarfråga om hur det gick till när den långa gränsen mellan Sverige och Norge skulle dras på 1700-talet.Programledare är Tobias Svanelid.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/5GU0RuFEvJVlFGLxRoVKSz" + }, + "href": "https://api.spotify.com/v1/episodes/5GU0RuFEvJVlFGLxRoVKSz", + "html_description": "

Flickor förväntades ta mest ansvar för oönskade graviditeter och sexuellt överförbara sjukdomar också under den sexuella revolutionen. Trots nya tankar levde gamla normer kvar visar ny forskning.

Den sexuella revolutionen på 70-talet innebar en ny syn på sex och samliv, men gamla tankar levde kvar. Historikern Anna-Karin Larsson har studerat debatterna i dåtidens medicinska tidskrifter och visar hur flickor fortfarande förväntades ta ansvar inte bara för sin egen sexualitet men också för pojkarnas.

Vi undersöker också hur minnet av Mahatma Gandhi lever kvar i Indien, 75 år efter mordet på landsfadern. Sveriges Radios Sydasienkorrespondent Naila Saleem menar att Gandhi inte hade känt igen sig i dagens Indien.

Och så svarar Dick Harrison på en lyssnarfråga om hur det gick till när den långa gränsen mellan Sverige och Norge skulle dras på 1700-talet.

Programledare är Tobias Svanelid.

", + "id": "5GU0RuFEvJVlFGLxRoVKSz", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8af7e700ae86451ae6c667541b", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1ff7e700ae86451ae6c667541b", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68df7e700ae86451ae6c667541b", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Tjejer tog mest ansvar för sex", + "release_date": "2023-01-31", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:5GU0RuFEvJVlFGLxRoVKSz" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/50e659c576893b88f64b1ae9127c8b0e43101264", + "description": "Inte som lamm till slakt. Kenneth Hermeles nya bok om judiskt motstånd under Förintelsen ger en helt ny bild av hur judar i Europa gjorde kraftigt motstånd mot sina nazistiska bödlar. Judarna gjorde inte nämnvärt motstånd mot sina nazistiska bödlar under Förintelsen, utan leddes ”som lamm till slakt” har det hetat. Nu visar författaren Kenneth Hermele i en aktuell bok att så var långt ifrån fallet och tillsammans med Tobias Svanelid diskuterar han såväl våldsamma partisanaktioner, dödliga danserskor i förintelselägren och kulsprutor i synagogan, som judisk smuggling, teateruppsättningar och arkivarbete som tillsammans ger bilden av ett kraftfullt judiskt motstånd.Dessutom reder Dick Harrison ut hur rädda folk var inför millennieskiftet år 1000.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/6OWCSj6Axvo1HaWl60yuYS" + }, + "href": "https://api.spotify.com/v1/episodes/6OWCSj6Axvo1HaWl60yuYS", + "html_description": "

Inte som lamm till slakt. Kenneth Hermeles nya bok om judiskt motstånd under Förintelsen ger en helt ny bild av hur judar i Europa gjorde kraftigt motstånd mot sina nazistiska bödlar.

Judarna gjorde inte nämnvärt motstånd mot sina nazistiska bödlar under Förintelsen, utan leddes ”som lamm till slakt” har det hetat. Nu visar författaren Kenneth Hermele i en aktuell bok att så var långt ifrån fallet och tillsammans med Tobias Svanelid diskuterar han såväl våldsamma partisanaktioner, dödliga danserskor i förintelselägren och kulsprutor i synagogan, som judisk smuggling, teateruppsättningar och arkivarbete som tillsammans ger bilden av ett kraftfullt judiskt motstånd.

Dessutom reder Dick Harrison ut hur rädda folk var inför millennieskiftet år 1000.

", + "id": "6OWCSj6Axvo1HaWl60yuYS", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a4f8d504935bba46193b5a698", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f4f8d504935bba46193b5a698", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d4f8d504935bba46193b5a698", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Judiskt motstånd under Förintelsen", + "release_date": "2023-01-24", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:6OWCSj6Axvo1HaWl60yuYS" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/b323efde89c89f7c697edc47b94afb15e8aa7035", + "description": "Vetenskapsradion Historia fortsätter resan i etruskernas fotspår, i jakt på det mytomspunna folkets liv för 2 500 år sedan, bland mäktiga tempelruiner och praktfulla gravkammare. Följ med Tobias Svanelid och arkeologen Richard Holmgren i etruskernas fotspår – när de fortsätter att söka efter spåren efter såväl de levande som de döda etruskerna. I San Giovenales 2 500-åriga ruiner testar man dryckesspel och i Tarquinias tempelruiner diskuteras augurernas och andra etruskiska siares förmågor att förutsäga framtiden. Dessutom besöker man de magnifika gravfälten i Monterozzi – Italiens Konungarnas dal, testar att måla svartfigurig keramik på etruskiskt vis, och reser till Banditaccianekropolen, den antika medelhavsvärldens största gravplats med praktfulla gravar som skildrar livet på 500-talet före Kristus.", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/1MSkmRUjGpcOC2Q4UrBHsx" + }, + "href": "https://api.spotify.com/v1/episodes/1MSkmRUjGpcOC2Q4UrBHsx", + "html_description": "

Vetenskapsradion Historia fortsätter resan i etruskernas fotspår, i jakt på det mytomspunna folkets liv för 2 500 år sedan, bland mäktiga tempelruiner och praktfulla gravkammare.

Följ med Tobias Svanelid och arkeologen Richard Holmgren i etruskernas fotspår – när de fortsätter att söka efter spåren efter såväl de levande som de döda etruskerna. I San Giovenales 2 500-åriga ruiner testar man dryckesspel och i Tarquinias tempelruiner diskuteras augurernas och andra etruskiska siares förmågor att förutsäga framtiden. Dessutom besöker man de magnifika gravfälten i Monterozzi – Italiens Konungarnas dal, testar att måla svartfigurig keramik på etruskiskt vis, och reser till Banditaccianekropolen, den antika medelhavsvärldens största gravplats med praktfulla gravar som skildrar livet på 500-talet före Kristus.

", + "id": "1MSkmRUjGpcOC2Q4UrBHsx", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a537376c5d636741e3113653b", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f537376c5d636741e3113653b", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d537376c5d636741e3113653b", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "I etruskernas fotspår", + "release_date": "2023-01-17", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:1MSkmRUjGpcOC2Q4UrBHsx" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/06cffa10385089272216a19db60410bf07123343", + "description": "Följ med Tobias Svanelid och arkeologen Richard Holmgren på en resa i etruskernas värld. Vad var det för folk som föregick romarna som Italiens härskare och varifrån kom de? De dominerade de italienska halvön hundratals år innan romarna steg upp på scenen, och de utvecklade en kultur som än idag fascinerar och förbryllar. Vetenskapsradion Historias Tobias Svanelid reser med arkeologen Richard Holmgren till etruskernas värld för att ta reda på vilka detta mytomspunna folk egentligen var. I gravkammare, djupa raviner och bland etruskiska ruiner och lämningar diskuteras bland annat frågan om etruskernas mystiska ursprung och språk. Var kom de egentligen ifrån? Och så diskuteras en teori till varför etruskerna kom att få en så dominant position runt Medelhavet för 2 500 år sedan.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/3qnAJYd3yhwNpHQ9mJ23xS" + }, + "href": "https://api.spotify.com/v1/episodes/3qnAJYd3yhwNpHQ9mJ23xS", + "html_description": "

Följ med Tobias Svanelid och arkeologen Richard Holmgren på en resa i etruskernas värld. Vad var det för folk som föregick romarna som Italiens härskare och varifrån kom de?

De dominerade de italienska halvön hundratals år innan romarna steg upp på scenen, och de utvecklade en kultur som än idag fascinerar och förbryllar. Vetenskapsradion Historias Tobias Svanelid reser med arkeologen Richard Holmgren till etruskernas värld för att ta reda på vilka detta mytomspunna folk egentligen var. I gravkammare, djupa raviner och bland etruskiska ruiner och lämningar diskuteras bland annat frågan om etruskernas mystiska ursprung och språk. Var kom de egentligen ifrån? Och så diskuteras en teori till varför etruskerna kom att få en så dominant position runt Medelhavet för 2 500 år sedan.

", + "id": "3qnAJYd3yhwNpHQ9mJ23xS", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a7118bd77c986982b079ae3cb", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f7118bd77c986982b079ae3cb", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d7118bd77c986982b079ae3cb", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "De mytomspunna etruskerna", + "release_date": "2023-01-10", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:3qnAJYd3yhwNpHQ9mJ23xS" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/df961768a0d0a7c1256f12d406c067385faa6341", + "description": "Demokratiska städer, buffeltokiga präriefolk och mänsklig uppfinningsrikedom och lekfullhet står i fokus när forntidshistorien nu skrivs om. Vi träffar författaren till omdebatterade Början på allt. Vår bild av forntiden och människans förhistoria formades för hundratals år sedan, men är dags att slå sönder. I boken Början på allt vill arkeologen David Wengrow och antropologen David Graeber ge en myllrande bild av alla de olika sätt som forntidsmänniskan format sina städer och tidiga civilisationer på. Glöm föreställningarna om en ursprunglig utopisk harmoni eller ett allas krig mot alla – forntiden kunde vara allt detta men mycket, mycket mer.Dessutom listar Urban Björstadius det gångna årets tio viktigaste arkeologiska upptäckter och så träffar vi egyptologen Zahi Hawass som suttit som en spindel i nätet i all fornegyptisk forskning de senaste femtio åren och nu är engagerad i utgrävningarna av den bländande staden Aten.Programledare är Tobias Svanelid.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/52SjIso8es7SvxytK99pJn" + }, + "href": "https://api.spotify.com/v1/episodes/52SjIso8es7SvxytK99pJn", + "html_description": "

Demokratiska städer, buffeltokiga präriefolk och mänsklig uppfinningsrikedom och lekfullhet står i fokus när forntidshistorien nu skrivs om. Vi träffar författaren till omdebatterade Början på allt.

Vår bild av forntiden och människans förhistoria formades för hundratals år sedan, men är dags att slå sönder. I boken Början på allt vill arkeologen David Wengrow och antropologen David Graeber ge en myllrande bild av alla de olika sätt som forntidsmänniskan format sina städer och tidiga civilisationer på. Glöm föreställningarna om en ursprunglig utopisk harmoni eller ett allas krig mot alla – forntiden kunde vara allt detta men mycket, mycket mer.

Dessutom listar Urban Björstadius det gångna årets tio viktigaste arkeologiska upptäckter och så träffar vi egyptologen Zahi Hawass som suttit som en spindel i nätet i all fornegyptisk forskning de senaste femtio åren och nu är engagerad i utgrävningarna av den bländande staden Aten.

Programledare är Tobias Svanelid.

", + "id": "52SjIso8es7SvxytK99pJn", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8ac8ebfe77c168c59fa5a991e6", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1fc8ebfe77c168c59fa5a991e6", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68dc8ebfe77c168c59fa5a991e6", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Forntidens historia skrivs om", + "release_date": "2023-01-03", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:52SjIso8es7SvxytK99pJn" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/b0a537ba043486fb098e88cd76d7be6dc823fca0", + "description": "Vad minns du av historieåret 2022? Följ med Tobias Svanelid till årets jubileer och mest spännande forskning! Historiskt storkrig i Europa, historiskt höga elpriser och en historiskt skenande inflation. År 2022 har varit ett historiskt år, och Vetenskapsradion Historias Tobias Svanelid guidar dig runt bland de viktigaste historiska händelserna, från Vasaloppsjubileum till återskapade historiska spritsorter.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/4hK61wlkooPyRcS9TB2sr5" + }, + "href": "https://api.spotify.com/v1/episodes/4hK61wlkooPyRcS9TB2sr5", + "html_description": "

Vad minns du av historieåret 2022? Följ med Tobias Svanelid till årets jubileer och mest spännande forskning!

Historiskt storkrig i Europa, historiskt höga elpriser och en historiskt skenande inflation. År 2022 har varit ett historiskt år, och Vetenskapsradion Historias Tobias Svanelid guidar dig runt bland de viktigaste historiska händelserna, från Vasaloppsjubileum till återskapade historiska spritsorter.

", + "id": "4hK61wlkooPyRcS9TB2sr5", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8af15ccf7523348d3ec743b0aa", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1ff15ccf7523348d3ec743b0aa", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68df15ccf7523348d3ec743b0aa", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Historieåret 2022 avrundas", + "release_date": "2022-12-27", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:4hK61wlkooPyRcS9TB2sr5" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/3caf8ce68782ff318aca069b574e9c3b14934641", + "description": "Följ med Tobias Svanelid till Rhodos där spåren efter en av världshistoriens blodigaste belägringar fortfarande finns kvar. Hör om riddarnas sista strid, där johanniterorden försvarade sig mot turkar. För femhundra år sedan utspelade sig en av världshistoriens blodigaste och mest ikoniska belägringar. Uppemot 70 000 turkiska soldater stod mot 700 korsriddare på den grekiska ön Rhodos i vad som vissa menat var riddarnas sista strid. Tobias Svanelid reser till Rhodos för att se de mäktiga befästningarna och diskuterar belägringen med historikern Dick Harrison och vad striden kom att leda till för såväl johanniterorden som för turkarna.Dessutom träffar vi historikern som försöker förklara varför det känns så skönt när svenska skidlöpare vinner mot norrmän i OS.", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/5emGcpaVVCSzPiTtmak3Md" + }, + "href": "https://api.spotify.com/v1/episodes/5emGcpaVVCSzPiTtmak3Md", + "html_description": "

Följ med Tobias Svanelid till Rhodos där spåren efter en av världshistoriens blodigaste belägringar fortfarande finns kvar. Hör om riddarnas sista strid, där johanniterorden försvarade sig mot turkar.

För femhundra år sedan utspelade sig en av världshistoriens blodigaste och mest ikoniska belägringar. Uppemot 70 000 turkiska soldater stod mot 700 korsriddare på den grekiska ön Rhodos i vad som vissa menat var riddarnas sista strid. Tobias Svanelid reser till Rhodos för att se de mäktiga befästningarna och diskuterar belägringen med historikern Dick Harrison och vad striden kom att leda till för såväl johanniterorden som för turkarna.

Dessutom träffar vi historikern som försöker förklara varför det känns så skönt när svenska skidlöpare vinner mot norrmän i OS.

", + "id": "5emGcpaVVCSzPiTtmak3Md", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a75cbeeb1e70c7f821a28b2a4", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f75cbeeb1e70c7f821a28b2a4", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d75cbeeb1e70c7f821a28b2a4", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Belägringen av Rhodos 1522", + "release_date": "2022-12-20", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:5emGcpaVVCSzPiTtmak3Md" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/d1ce0826dbad511e66f2eedc56d715278009ea48", + "description": "Glimrande hovliv, smarriga kolbullar, kloka korpar och fjälliga sjömänniskor samsas i Vetenskapsradion Historias julklappsboktips! Och så testar vi brädspelet i Jane Austens herrgårds-England! Missa inte Vetenskapsradion Historias julklappstips där Kristina Ekero Eriksson, Urban Björstadius och Tobias Svanelid tipsar om böcker om glimrande hovliv och kungligheter, om kolning, saffran, korpar och mycket, mycket annat. Och så testar Spelpanelen att navigera i Englands Downton Abbey-miljö i spelet Obsession och att överleva Första världskriget i The Grizzled.Böckerna och spelen som nämnts i programmet:Sagan om Saffran av Gunnel CarlssonKarl XV av Thorsten SandbergFrån Savolaxbrigden till Särskilda skyddsgruppen av Fredrik Eriksson, Lars Ericson Wolke och Gunnar ÅseliusAnfallskrigens argument av Ove BringTill eftervärlden av Marianne Molander BeyerDödens idéhistoria av Karin Dirke, Andreas Hellerstedt och Martin Wiklund (red)Mumier av Sofia HäggmanDe utomordentliga av Maja BondestamHovet av Björn AskerKolning av Gunnar NygrenKorpen av Bengt-Erik Engholm och Lina BlixtEuropas mödrar av Karin BojsJärnålderns symboler och dolda budskap av Kent AnderssonObsession av Dan HallagenThe Grizzled av Fabien Riffaud och Juan Rodriguez", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/2xC5qxAqcxqNQpd1geIn7H" + }, + "href": "https://api.spotify.com/v1/episodes/2xC5qxAqcxqNQpd1geIn7H", + "html_description": "

Glimrande hovliv, smarriga kolbullar, kloka korpar och fjälliga sjömänniskor samsas i Vetenskapsradion Historias julklappsboktips! Och så testar vi brädspelet i Jane Austens herrgårds-England!

Missa inte Vetenskapsradion Historias julklappstips där Kristina Ekero Eriksson, Urban Björstadius och Tobias Svanelid tipsar om böcker om glimrande hovliv och kungligheter, om kolning, saffran, korpar och mycket, mycket annat. Och så testar Spelpanelen att navigera i Englands Downton Abbey-miljö i spelet Obsession och att överleva Första världskriget i The Grizzled.

Böckerna och spelen som nämnts i programmet:

Sagan om Saffran av Gunnel Carlsson

Karl XV av Thorsten Sandberg

Från Savolaxbrigden till Särskilda skyddsgruppen av Fredrik Eriksson, Lars Ericson Wolke och Gunnar Åselius

Anfallskrigens argument av Ove Bring

Till eftervärlden av Marianne Molander Beyer

Dödens idéhistoria av Karin Dirke, Andreas Hellerstedt och Martin Wiklund (red)

Mumier av Sofia Häggman

De utomordentliga av Maja Bondestam

Hovet av Björn Asker

Kolning av Gunnar Nygren

Korpen av Bengt-Erik Engholm och Lina Blixt

Europas mödrar av Karin Bojs

Järnålderns symboler och dolda budskap av Kent Andersson

Obsession av Dan Hallagen

The Grizzled av Fabien Riffaud och Juan Rodriguez

", + "id": "2xC5qxAqcxqNQpd1geIn7H", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a0644c9896f8466a39e90fc17", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f0644c9896f8466a39e90fc17", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d0644c9896f8466a39e90fc17", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Hovliv och kolbullar", + "release_date": "2022-12-13", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:2xC5qxAqcxqNQpd1geIn7H" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/55c6902d9659931a9e9e25b0b9a20ceb59bf91af", + "description": "För femtio år sedan landade Apollo 17 på månen, men nu är vi på väg dit igen. Hör om människans ständiga längtan efter månen och vad vi genom historien trott och tänkt om denna mystiska himlakropp. Det har gått femtio år sedan människan senast satte fötterna på månen men nu är vi så smått på väg dit igen. Tobias Svanelid samtalar med arkeologen och amatörastronomen Jonathan Lindström om vad månen betytt för oss människor genom historien och vad vi trott om denna den närmsta av våra himlakroppar. Var månfläckarna egentligen utspilld tjära? Kunde man starta kring när månen stod i nedan? Är det sant att vi blir mångalna?Och så berättar historikern Lisa Svanfeldt-Winter om sin forskning om 1800-talets vetenskapsdebatt om huruvida jorden var platt. Idag frodas dessa tankar på sociala medier, men redan i mitten av 1800-talet lanserade Samuel Rowbotham sina teorier om en platt jord.", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/11L6kL6k1bSmS61bToXL3g" + }, + "href": "https://api.spotify.com/v1/episodes/11L6kL6k1bSmS61bToXL3g", + "html_description": "

För femtio år sedan landade Apollo 17 på månen, men nu är vi på väg dit igen. Hör om människans ständiga längtan efter månen och vad vi genom historien trott och tänkt om denna mystiska himlakropp.

Det har gått femtio år sedan människan senast satte fötterna på månen men nu är vi så smått på väg dit igen. Tobias Svanelid samtalar med arkeologen och amatörastronomen Jonathan Lindström om vad månen betytt för oss människor genom historien och vad vi trott om denna den närmsta av våra himlakroppar. Var månfläckarna egentligen utspilld tjära? Kunde man starta kring när månen stod i nedan? Är det sant att vi blir mångalna?

Och så berättar historikern Lisa Svanfeldt-Winter om sin forskning om 1800-talets vetenskapsdebatt om huruvida jorden var platt. Idag frodas dessa tankar på sociala medier, men redan i mitten av 1800-talet lanserade Samuel Rowbotham sina teorier om en platt jord.

", + "id": "11L6kL6k1bSmS61bToXL3g", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a8b3c6c23a2bf767b286e6f27", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f8b3c6c23a2bf767b286e6f27", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d8b3c6c23a2bf767b286e6f27", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Människans längtan till månen", + "release_date": "2022-12-06", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:11L6kL6k1bSmS61bToXL3g" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/31ef36a91ba2fc9bc9cd38b4c174f4d1c8cae340", + "description": "Bänka dig i biofåtöljen och hör historikerna granska bioaktuella The Woman King, om Afrikas amazoner och Devotion - Top Gun i Koreakrigsmiljö! I hundratals år stred kvinnor som elitsoldater i det afrikanska kungariket Dahomeys armé. Nu skildras deras liv och öden i bioaktuella The Woman King och Vetenskapsradion Historia granskar filmens historiska kvalitéer med hjälp av historikern Anders Claréus och diskuterar kvinnliga krigare och kvinnors deltagande i historiska krig med författaren Anna Larsdotter.Dessutom granskar vi aktuella Devotion – en Top Gun-film under Koreakriget där Armémuseets Thomas Roth delar ut betyg.Programledare är Tobias Svanelid.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/3CRQcqucr4Qa6Jo7nB53U9" + }, + "href": "https://api.spotify.com/v1/episodes/3CRQcqucr4Qa6Jo7nB53U9", + "html_description": "

Bänka dig i biofåtöljen och hör historikerna granska bioaktuella The Woman King, om Afrikas amazoner och Devotion - Top Gun i Koreakrigsmiljö!

I hundratals år stred kvinnor som elitsoldater i det afrikanska kungariket Dahomeys armé. Nu skildras deras liv och öden i bioaktuella The Woman King och Vetenskapsradion Historia granskar filmens historiska kvalitéer med hjälp av historikern Anders Claréus och diskuterar kvinnliga krigare och kvinnors deltagande i historiska krig med författaren Anna Larsdotter.

Dessutom granskar vi aktuella Devotion – en Top Gun-film under Koreakriget där Armémuseets Thomas Roth delar ut betyg.

Programledare är Tobias Svanelid.

", + "id": "3CRQcqucr4Qa6Jo7nB53U9", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a4e038afcbeeb4cdd9915bb28", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f4e038afcbeeb4cdd9915bb28", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d4e038afcbeeb4cdd9915bb28", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Afrikas amazoner på bio", + "release_date": "2022-11-29", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:3CRQcqucr4Qa6Jo7nB53U9" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/63c99681e302c2dc881cc2efaa65f65d723ee560", + "description": "Smutsiga men ståtliga och tatuerade elitkrigare. Så beskrev muslimen Ibn Fadlan sitt möte med vikingar år 922. Men vad berättar han egentligen om relationen mellan nordbor och muslimer? År 922 mötte den muslimske resenären vikingar under sina resor i nuvarande Ryssland. Han beskrev deras barbariska sedvänjor, deras obefintliga personliga hygien, deras tatueringar och hur en hövding begravdes i en båt. Men han talade också om dem som ståtliga och högvuxna krigare. Tobias Svanelid samlas arkeologen Charlotte Hedenstierna Jonsson och religionsvetaren Simon Sorgenfrei för att diskutera vad Ibn Fadlans berättelse betytt för vår förståelse av vikingar, men också vad den kan berätta om relationerna mellan Skandinavien och dåtidens högkultur, de muslimska kalifaten.Dessutom svarar Dick Harrison på en lyssnarfråga om vad vi egentligen vet om slaget vid Herrevadsbro år 1251, slaget som påstås lagt grunden för det moderna Sverige och banat vägen för den nya staden Stockholm.", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/04HzXcqi8UoWk1MSrHAqWf" + }, + "href": "https://api.spotify.com/v1/episodes/04HzXcqi8UoWk1MSrHAqWf", + "html_description": "

Smutsiga men ståtliga och tatuerade elitkrigare. Så beskrev muslimen Ibn Fadlan sitt möte med vikingar år 922. Men vad berättar han egentligen om relationen mellan nordbor och muslimer?

År 922 mötte den muslimske resenären vikingar under sina resor i nuvarande Ryssland. Han beskrev deras barbariska sedvänjor, deras obefintliga personliga hygien, deras tatueringar och hur en hövding begravdes i en båt. Men han talade också om dem som ståtliga och högvuxna krigare. Tobias Svanelid samlas arkeologen Charlotte Hedenstierna Jonsson och religionsvetaren Simon Sorgenfrei för att diskutera vad Ibn Fadlans berättelse betytt för vår förståelse av vikingar, men också vad den kan berätta om relationerna mellan Skandinavien och dåtidens högkultur, de muslimska kalifaten.

Dessutom svarar Dick Harrison på en lyssnarfråga om vad vi egentligen vet om slaget vid Herrevadsbro år 1251, slaget som påstås lagt grunden för det moderna Sverige och banat vägen för den nya staden Stockholm.

", + "id": "04HzXcqi8UoWk1MSrHAqWf", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8ab7604c0461bd9a2489f58a03", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1fb7604c0461bd9a2489f58a03", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68db7604c0461bd9a2489f58a03", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Ibn Fadlans möte med vikingar", + "release_date": "2022-11-22", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:04HzXcqi8UoWk1MSrHAqWf" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/f7cdd266162f0024036f4c54a443c5275cda2a67", + "description": "Omkring 300 människor miste livet i det kalla novembervattnet 1872, när havet höjdes drygt 3 meter och slog sönder kusterna längs södra Östersjön. Vi söker spåren efter denna bortglömda katastrof. För 150 år sedan översköljdes Östersjöns kuster av en stormflod. Havsnivån höjdes på sina ställen med mer än tre meter och hundratals människor drunknade i det iskalla vattnet. Tobias Svanelid vandrar runt på Falsterbonäset där det fortfarande finns spår kvar efter stormfloden 1872, och träffar kustingenjören Caroline Hallin som berättar om katastrofen och vad vi idag kan lära av den.Och så uppmärksammar vi tidskapseln från Storkyrkan som presenterades för allmänheten tidigare i höstas, men som bär på ytterligare dolda budskap.Dessutom granskar vi Netflixfilmen På västfronten intet nytt och tar reda på vad den kan säga om vår tids skyttegravskrig i Ukraina.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/5vuboOq73oBTsTumCHE3E8" + }, + "href": "https://api.spotify.com/v1/episodes/5vuboOq73oBTsTumCHE3E8", + "html_description": "

Omkring 300 människor miste livet i det kalla novembervattnet 1872, när havet höjdes drygt 3 meter och slog sönder kusterna längs södra Östersjön. Vi söker spåren efter denna bortglömda katastrof.

För 150 år sedan översköljdes Östersjöns kuster av en stormflod. Havsnivån höjdes på sina ställen med mer än tre meter och hundratals människor drunknade i det iskalla vattnet. Tobias Svanelid vandrar runt på Falsterbonäset där det fortfarande finns spår kvar efter stormfloden 1872, och träffar kustingenjören Caroline Hallin som berättar om katastrofen och vad vi idag kan lära av den.

Och så uppmärksammar vi tidskapseln från Storkyrkan som presenterades för allmänheten tidigare i höstas, men som bär på ytterligare dolda budskap.

Dessutom granskar vi Netflixfilmen På västfronten intet nytt och tar reda på vad den kan säga om vår tids skyttegravskrig i Ukraina.

", + "id": "5vuboOq73oBTsTumCHE3E8", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8ad788851b76498f5c9b55dbad", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1fd788851b76498f5c9b55dbad", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68dd788851b76498f5c9b55dbad", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Stormfloden 1872", + "release_date": "2022-11-15", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:5vuboOq73oBTsTumCHE3E8" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/dfc72b57909555fcca6b5eff6622276919e2142e", + "description": "Var det bläckfiskar, hajar eller galna mördare som orsakade Mary Celestes undergång. I 150 år har man nu spekulerat om spökskeppets öde och varför besättningen var spårlöst försvunnen. I november 1872, för 150 år sedan, satte Mary Celeste segel för sin resa över Atlanten. Några veckor senare hittas hon drivande i vågorna utanför Portugals kust. Hennes besättning är spårlöst försvunnen. Allt sedan dess har spekulationerna om vad som hände Mary Celeste varit många och Tobias Svanelid reder ut bland teorierna om spökskeppets öden och äventyr, bland hajar, bläckfiskar, galna mördare och explosioner.Dessutom svarar Dick Harrison på en lyssnarfråga om varför Norge blev monarki och inte republik vid unionsupplösningen 1905.", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/6T7xgiOEJ8advsXfZOfiEL" + }, + "href": "https://api.spotify.com/v1/episodes/6T7xgiOEJ8advsXfZOfiEL", + "html_description": "

Var det bläckfiskar, hajar eller galna mördare som orsakade Mary Celestes undergång. I 150 år har man nu spekulerat om spökskeppets öde och varför besättningen var spårlöst försvunnen.

I november 1872, för 150 år sedan, satte Mary Celeste segel för sin resa över Atlanten. Några veckor senare hittas hon drivande i vågorna utanför Portugals kust. Hennes besättning är spårlöst försvunnen. Allt sedan dess har spekulationerna om vad som hände Mary Celeste varit många och Tobias Svanelid reder ut bland teorierna om spökskeppets öden och äventyr, bland hajar, bläckfiskar, galna mördare och explosioner.

Dessutom svarar Dick Harrison på en lyssnarfråga om varför Norge blev monarki och inte republik vid unionsupplösningen 1905.

", + "id": "6T7xgiOEJ8advsXfZOfiEL", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8aaf8163b0c72ce6d3cb92042f", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1faf8163b0c72ce6d3cb92042f", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68daf8163b0c72ce6d3cb92042f", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Spökskeppet Mary Celeste", + "release_date": "2022-11-08", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:6T7xgiOEJ8advsXfZOfiEL" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/feda4d72714de4e6885323985448409b039f7ffb", + "description": "Han var en av Egyptens kortast regerande faraoner och dog knappt 20 år gammal. Ändå skulle upptäckten av hans grav ta världen med storm och orsaka faraos förbannelse. ”Jag ser underbara ting” rapporterade Howard Carter när han som första människa på mer än 3000 år kikade in i Tutanchamons grav för exakt 100 år sedan. Vetenskapsradion Historia berättar om upptäckten som tog världen med storm och födde en Egyptenfeber utan like. Och som dessutom följdes av flertalet mystiska dödsfall – men vad ligger det egentligen för sanning i påståendena om mumiens förbannelse?Panelen med Jonathan Lindström och Kristina Ekero Eriksson återsamlas också för att diskutera andra banbrytande upptäckter i skuggan av Tutanchamon, och om de själva känt av förhistoriska förbannelser under sina egna arkeologiska utgrävningar.Programledare är Tobias Svanelid.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/74unMg1Sta60SZV5gdjSqC" + }, + "href": "https://api.spotify.com/v1/episodes/74unMg1Sta60SZV5gdjSqC", + "html_description": "

Han var en av Egyptens kortast regerande faraoner och dog knappt 20 år gammal. Ändå skulle upptäckten av hans grav ta världen med storm och orsaka faraos förbannelse.

”Jag ser underbara ting” rapporterade Howard Carter när han som första människa på mer än 3000 år kikade in i Tutanchamons grav för exakt 100 år sedan. Vetenskapsradion Historia berättar om upptäckten som tog världen med storm och födde en Egyptenfeber utan like. Och som dessutom följdes av flertalet mystiska dödsfall – men vad ligger det egentligen för sanning i påståendena om mumiens förbannelse?

Panelen med Jonathan Lindström och Kristina Ekero Eriksson återsamlas också för att diskutera andra banbrytande upptäckter i skuggan av Tutanchamon, och om de själva känt av förhistoriska förbannelser under sina egna arkeologiska utgrävningar.

Programledare är Tobias Svanelid.

", + "id": "74unMg1Sta60SZV5gdjSqC", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a5a283aa2fb103f081f170b34", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f5a283aa2fb103f081f170b34", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d5a283aa2fb103f081f170b34", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Tutanchamonfeber i hundra år", + "release_date": "2022-11-01", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:74unMg1Sta60SZV5gdjSqC" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/5f4865ed84fe62992b252d8207f403181febe503", + "description": "Vilka argument kan motivera ett anfallskrig. Genom årtusendena har stater, kungar och presidenter försökt rättfärdiga sina aggressionskrig och Vetenskapsradion Historia kartlägger argumenten. Vi har rätten på vår sida. Vi är starkare. Motståndarna torterar våra vänner eller är nazister. Och det var fienden som sköt först. Så lyder anfallskrigens argument genom historien, från det antika Atens anfall på ön Melos, via Gustav III:s anfall på Ryssland och Putins anfall mot Ukraina. Vi träffar folkrättsexperten Ove Bring som undersökt anfallskrigens argument i en aktuell bok.Vi uppmärksammar också det nya fyndet av regalskeppet Äpplet, Vasaskeppets systerfartyg, som hittats på bottnen utanför Vaxholm.Dessutom reder Dick Harrison ut en lyssnarfråga om Ragnar Lodbrok. Vad vet vi egentligen om denna vikingahövdings existens?Programledare är Tobias Svanelid.", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/5glIX0MIjLjBLrxKzRhgNq" + }, + "href": "https://api.spotify.com/v1/episodes/5glIX0MIjLjBLrxKzRhgNq", + "html_description": "

Vilka argument kan motivera ett anfallskrig. Genom årtusendena har stater, kungar och presidenter försökt rättfärdiga sina aggressionskrig och Vetenskapsradion Historia kartlägger argumenten.

Vi har rätten på vår sida. Vi är starkare. Motståndarna torterar våra vänner eller är nazister. Och det var fienden som sköt först. Så lyder anfallskrigens argument genom historien, från det antika Atens anfall på ön Melos, via Gustav III:s anfall på Ryssland och Putins anfall mot Ukraina. Vi träffar folkrättsexperten Ove Bring som undersökt anfallskrigens argument i en aktuell bok.

Vi uppmärksammar också det nya fyndet av regalskeppet Äpplet, Vasaskeppets systerfartyg, som hittats på bottnen utanför Vaxholm.

Dessutom reder Dick Harrison ut en lyssnarfråga om Ragnar Lodbrok. Vad vet vi egentligen om denna vikingahövdings existens?

Programledare är Tobias Svanelid.

", + "id": "5glIX0MIjLjBLrxKzRhgNq", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8aecb4ef4fc72d026f57a0ad41", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1fecb4ef4fc72d026f57a0ad41", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68decb4ef4fc72d026f57a0ad41", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Därför startar vi krig", + "release_date": "2022-10-25", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:5glIX0MIjLjBLrxKzRhgNq" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/98398bbc6ac9c60553b8823059bbc8e31024996f", + "description": "Nu återskapas två historiska spritsorter som kan skänka smaken av 1600-talet. Hör Vetenskapsradion Historia testa Vasaskeppets brännvin och 1700-talets mirakelkur - nu utan huggormskött! En tydlig ton av anis präglar brännvinet som hittades ombord på Vasaskeppet när hon bärgades. Nu har spriten återskapats och Vetenskapsradion Historia uppmärksammar detta kanske världens äldsta bevarade brännvin, och diskuterar också konsten och utmaningarna med att återskapa historisk sprit. För samtidigt som Vasadrycken lanseras kommer också 1700-talets mirakelmedicin Hjärnes Testamente ut i handeln, men där tillverkarna fått utesluta bland annat originalingredienserna huggorm och opium.Dessutom uppmärksammar vi Ettans snus som fyller 200 år och därmed blivit Sveriges kanske äldsta varumärke som fortfarande finns i livsmedelshandeln. Hur väl liknar dagens snus 1820-talets?Programledare är Tobias Svanelid.", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/4SEMDUbGpUWFcTQk62e5ox" + }, + "href": "https://api.spotify.com/v1/episodes/4SEMDUbGpUWFcTQk62e5ox", + "html_description": "

Nu återskapas två historiska spritsorter som kan skänka smaken av 1600-talet. Hör Vetenskapsradion Historia testa Vasaskeppets brännvin och 1700-talets mirakelkur - nu utan huggormskött!

En tydlig ton av anis präglar brännvinet som hittades ombord på Vasaskeppet när hon bärgades. Nu har spriten återskapats och Vetenskapsradion Historia uppmärksammar detta kanske världens äldsta bevarade brännvin, och diskuterar också konsten och utmaningarna med att återskapa historisk sprit. För samtidigt som Vasadrycken lanseras kommer också 1700-talets mirakelmedicin Hjärnes Testamente ut i handeln, men där tillverkarna fått utesluta bland annat originalingredienserna huggorm och opium.

Dessutom uppmärksammar vi Ettans snus som fyller 200 år och därmed blivit Sveriges kanske äldsta varumärke som fortfarande finns i livsmedelshandeln. Hur väl liknar dagens snus 1820-talets?

Programledare är Tobias Svanelid.

", + "id": "4SEMDUbGpUWFcTQk62e5ox", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a4f54e7a23f621e24a3785d64", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f4f54e7a23f621e24a3785d64", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d4f54e7a23f621e24a3785d64", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Så smakar Vasas brännvin", + "release_date": "2022-10-18", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:4SEMDUbGpUWFcTQk62e5ox" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/6eb73b9571cc30c039f8d5a08464e92c6f2e67ec", + "description": "Under hundratals år levde många svenskar säsongsvis vid Norrlandskusten för att fiska i Bottenviken. Fiskarkapellen var mötespunkten som skänkte trygghet och tröst och nu kartläggs deras kulturarv. För 400 år sedan började mellansvenska bönder resa till Norrlandskusten för att fiska. Ofta tog man med sig hela familjen och gårdens djur och tjänstefolk och var borta hela sommaren. Under det hårda livet bland Höga Kustens kobbar och skär var fiskekapellen ofta den enda trösten. Idag vittnar de om ett månghundraårigt kulturarv och nu har kapellen i Ångermanland och Medelpad undersökts. Vetenskapsradion Historia besöker Barsta kapell för att berätta fiskarkapellens spännande historia.Dessutom svarar Dick Harrison på en lyssnarfråga om svedjefinnarnas historia i Värmland – hur länge bibehöll man sina finska traditioner och finska namn egentligen?Programledare är Tobias Svanelid.", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/2sSYWETyAk9LcUSkX5Z2GE" + }, + "href": "https://api.spotify.com/v1/episodes/2sSYWETyAk9LcUSkX5Z2GE", + "html_description": "

Under hundratals år levde många svenskar säsongsvis vid Norrlandskusten för att fiska i Bottenviken. Fiskarkapellen var mötespunkten som skänkte trygghet och tröst och nu kartläggs deras kulturarv.

För 400 år sedan började mellansvenska bönder resa till Norrlandskusten för att fiska. Ofta tog man med sig hela familjen och gårdens djur och tjänstefolk och var borta hela sommaren. Under det hårda livet bland Höga Kustens kobbar och skär var fiskekapellen ofta den enda trösten. Idag vittnar de om ett månghundraårigt kulturarv och nu har kapellen i Ångermanland och Medelpad undersökts. Vetenskapsradion Historia besöker Barsta kapell för att berätta fiskarkapellens spännande historia.

Dessutom svarar Dick Harrison på en lyssnarfråga om svedjefinnarnas historia i Värmland – hur länge bibehöll man sina finska traditioner och finska namn egentligen?

Programledare är Tobias Svanelid.

", + "id": "2sSYWETyAk9LcUSkX5Z2GE", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a9b739e5f95a69eabac3af252", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f9b739e5f95a69eabac3af252", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d9b739e5f95a69eabac3af252", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Fiskarkapellens spännande kulturarv", + "release_date": "2022-10-11", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:2sSYWETyAk9LcUSkX5Z2GE" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/9c7643fb9ad38cf1858bd3580e9c6339d825a5e0", + "description": "Hur såg hallen ut där Uppåkras mäktiga hövdingar en gång bodde och höll hov och där de smidde planer för det förhistoriska Skåne i kamp mot daner och svear? Snart vet vi svaret! I mer än 1000 år dominerade Uppåkra de rika jordbruksbygderna i Skåne, och trots att inte mer än någon promille grävts ut av arkeologer har redan makalösa fynd gjorts. Nu tas nya spadtag på platsen i jakt efter hövdingahallen i Uppåkra, där stolta dynastier avlöst varandra under många sekel.Tobias Svanelid promenerar runt i Uppåkra med Dick Harrison som i sin aktuella bok Tusen år i Uppåkra målar upp bilden av ett mäktigt hövdingadöme, där de rika makthavarna sannolikt kontrollerade den religiösa kulten som de styrde ifrån sin hall och ifrån det mystiska kulthus som redan varit känt av arkeologerna. Kanske tillhörde de stammen harubarder, ett mytomspunnet folk som verkar ha kämpat med daner om makten runt Öresund.Dessutom redogör arkeologerna Mats Roslund, Torbjörn Ahlström och Håkan Aspeborg för de kommande unika utgrävningar som nu planeras vid hövdingahallen och som kommer att sprida nytt ljus över platsen som så länge utgjorde en stabil maktbas i södra Skandinavien.Och så tar vi en snabbtitt på de pågående arkeologiska undersökningarna på Gotska sandön, där säljägare och fiskare bott och verkat i fyratusen år. ", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/6PfvaqgLWebJioqPv3Tpfc" + }, + "href": "https://api.spotify.com/v1/episodes/6PfvaqgLWebJioqPv3Tpfc", + "html_description": "

Hur såg hallen ut där Uppåkras mäktiga hövdingar en gång bodde och höll hov och där de smidde planer för det förhistoriska Skåne i kamp mot daner och svear? Snart vet vi svaret!

I mer än 1000 år dominerade Uppåkra de rika jordbruksbygderna i Skåne, och trots att inte mer än någon promille grävts ut av arkeologer har redan makalösa fynd gjorts. Nu tas nya spadtag på platsen i jakt efter hövdingahallen i Uppåkra, där stolta dynastier avlöst varandra under många sekel.

Tobias Svanelid promenerar runt i Uppåkra med Dick Harrison som i sin aktuella bok Tusen år i Uppåkra målar upp bilden av ett mäktigt hövdingadöme, där de rika makthavarna sannolikt kontrollerade den religiösa kulten som de styrde ifrån sin hall och ifrån det mystiska kulthus som redan varit känt av arkeologerna. Kanske tillhörde de stammen harubarder, ett mytomspunnet folk som verkar ha kämpat med daner om makten runt Öresund.

Dessutom redogör arkeologerna Mats Roslund, Torbjörn Ahlström och Håkan Aspeborg för de kommande unika utgrävningar som nu planeras vid hövdingahallen och som kommer att sprida nytt ljus över platsen som så länge utgjorde en stabil maktbas i södra Skandinavien.

Och så tar vi en snabbtitt på de pågående arkeologiska undersökningarna på Gotska sandön, där säljägare och fiskare bott och verkat i fyratusen år.

 

", + "id": "6PfvaqgLWebJioqPv3Tpfc", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8aa255259e1238f1b559dcbaef", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1fa255259e1238f1b559dcbaef", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68da255259e1238f1b559dcbaef", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Uppåkras hövdingahall grävs ut", + "release_date": "2022-10-04", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:6PfvaqgLWebJioqPv3Tpfc" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/955aa2926f9395e83fd80b007c2b3fb6aeacc782", + "description": "För 200 år sedan knäcktes hieroglyfernas gåta med hjälp av texterna på den uråldriga Rosettastenen. Vi berättar hur det gick till, men också om Egyptens mumier som nu föräras en egen bok. För 200 år sedan rusade språkvetaren Champollion till sin bror och utropade att han knäckt hieroglyfernas gåta. Vetenskapsradion Historia berättar historien om Rosettastenen som hittades i slutet av 1700-talet och som fungerade som en nyckel för att dechiffrera det fornegyptiska språket. Och om att en av nyckelpersonerna i pusslet faktiskt var svensk, Johan David Åkerblad, berättar historikern Fredrik Thomasson.Dessutom berättas de egyptiska mumiernas historia med anledning av aktuella boken Mumier. Egyptologen Sofia Häggman menar att det tog lång tid för de gamla egyptierna att bemästra den svåra konsten, som delvis påminner om ett PCR-test, och vi idag ofta glömmer att mumierna faktiskt är mänskliga kvarlevor och inte bara ett mytiskt väsen tillsammans med varulvar och vampyrer.Programledare är Tobias Svanelid.", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/0QTLz2FQ7Ih4UDbnFfK5Ig" + }, + "href": "https://api.spotify.com/v1/episodes/0QTLz2FQ7Ih4UDbnFfK5Ig", + "html_description": "

För 200 år sedan knäcktes hieroglyfernas gåta med hjälp av texterna på den uråldriga Rosettastenen. Vi berättar hur det gick till, men också om Egyptens mumier som nu föräras en egen bok.

För 200 år sedan rusade språkvetaren Champollion till sin bror och utropade att han knäckt hieroglyfernas gåta. Vetenskapsradion Historia berättar historien om Rosettastenen som hittades i slutet av 1700-talet och som fungerade som en nyckel för att dechiffrera det fornegyptiska språket. Och om att en av nyckelpersonerna i pusslet faktiskt var svensk, Johan David Åkerblad, berättar historikern Fredrik Thomasson.

Dessutom berättas de egyptiska mumiernas historia med anledning av aktuella boken Mumier. Egyptologen Sofia Häggman menar att det tog lång tid för de gamla egyptierna att bemästra den svåra konsten, som delvis påminner om ett PCR-test, och vi idag ofta glömmer att mumierna faktiskt är mänskliga kvarlevor och inte bara ett mytiskt väsen tillsammans med varulvar och vampyrer.

Programledare är Tobias Svanelid.

", + "id": "0QTLz2FQ7Ih4UDbnFfK5Ig", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8ab386237c9df1a5b287ccd89a", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1fb386237c9df1a5b287ccd89a", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68db386237c9df1a5b287ccd89a", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "När hieroglyferna knäcktes", + "release_date": "2022-09-27", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:0QTLz2FQ7Ih4UDbnFfK5Ig" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/1a1a7df417e12bafcf40ebe83b142a9503f9d256", + "description": "Följ med till Bulverket - medeltidens sjunkna Atlantis - en gigantisk träplattform full av hus som nu kan avslöja 1000-åriga byggnadstekniker och vad plattformen en gång haft för funktion. I början av medeltiden byggdes en enorm plattform av timmer ute i den grunda sjön Tingstäde träsk på Gotland. En kort tid senare övergavs platsen men ännu idag är bygget synligt som ett gigantiskt plockepinn någon meter under vattenytan. Tobias Svanelid hoppar i gummibåten tillsammans med arkeologen Peter d’Agnan för att ta reda på vad Bulverket kan ha fyllt för funktion och för att fascineras av de extremt välbevarade träresterna som kan avslöja medeltidens byggnadstekniker.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/6JjK4uJaxMh3DV6FJDP571" + }, + "href": "https://api.spotify.com/v1/episodes/6JjK4uJaxMh3DV6FJDP571", + "html_description": "

Följ med till Bulverket - medeltidens sjunkna Atlantis - en gigantisk träplattform full av hus som nu kan avslöja 1000-åriga byggnadstekniker och vad plattformen en gång haft för funktion.

I början av medeltiden byggdes en enorm plattform av timmer ute i den grunda sjön Tingstäde träsk på Gotland. En kort tid senare övergavs platsen men ännu idag är bygget synligt som ett gigantiskt plockepinn någon meter under vattenytan. Tobias Svanelid hoppar i gummibåten tillsammans med arkeologen Peter d’Agnan för att ta reda på vad Bulverket kan ha fyllt för funktion och för att fascineras av de extremt välbevarade träresterna som kan avslöja medeltidens byggnadstekniker.

", + "id": "6JjK4uJaxMh3DV6FJDP571", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a7adf99961dcffc84f2d22ec5", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f7adf99961dcffc84f2d22ec5", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d7adf99961dcffc84f2d22ec5", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Bulverket – medeltidens sjunkna Atlantis", + "release_date": "2022-09-20", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:6JjK4uJaxMh3DV6FJDP571" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/91662050a136b9aae974fa86c3ea8efe6f2ce0ca", + "description": "En bonde med en kniv eller yxa i handen. Så såg 1600-talets typiska mördare ut visar den senaste forskningen som också försöker förstå varför dödligt våld blivit så mycket ovanligare i vår egen tid. Antalet mord och dråp i Sverige har minskat avsevärt de senaste 400 åren. Vetenskapsradion Historia undersöker hur det kommer sig och hur det dödliga våldet såg ut på 1600-talet. I en ny forskningsrapport undersöker historikern Dag Lindström hur det dödliga våldet såg ut på 1640-talet, och kan visa att den typiska mördaren då var en bonde som tog livet av en nära vän eller granne i sitt eget hem med hjälp av ett skarpt föremål.Dessutom berättar historikern Gunnar Wetterberg om prästernas långa historia i Sverige – landets kanske viktigaste och mest inflytelserika yrkesgrupp som har tröstat och förmanat, begravt, vigt, döpt och predikat i tusen år. I hans aktuella bok Prästerna lyfts deras insats upp i ljuset.Programledare är Tobias Svanelid.", + "duration_ms": 2685504, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/5d8CxZvDo2eDyX6CuXze1M" + }, + "href": "https://api.spotify.com/v1/episodes/5d8CxZvDo2eDyX6CuXze1M", + "html_description": "

En bonde med en kniv eller yxa i handen. Så såg 1600-talets typiska mördare ut visar den senaste forskningen som också försöker förstå varför dödligt våld blivit så mycket ovanligare i vår egen tid.

Antalet mord och dråp i Sverige har minskat avsevärt de senaste 400 åren. Vetenskapsradion Historia undersöker hur det kommer sig och hur det dödliga våldet såg ut på 1600-talet. I en ny forskningsrapport undersöker historikern Dag Lindström hur det dödliga våldet såg ut på 1640-talet, och kan visa att den typiska mördaren då var en bonde som tog livet av en nära vän eller granne i sitt eget hem med hjälp av ett skarpt föremål.

Dessutom berättar historikern Gunnar Wetterberg om prästernas långa historia i Sverige – landets kanske viktigaste och mest inflytelserika yrkesgrupp som har tröstat och förmanat, begravt, vigt, döpt och predikat i tusen år. I hans aktuella bok Prästerna lyfts deras insats upp i ljuset.

Programledare är Tobias Svanelid.

", + "id": "5d8CxZvDo2eDyX6CuXze1M", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8ae82dcabc6ae42ceeb3f70eea", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1fe82dcabc6ae42ceeb3f70eea", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68de82dcabc6ae42ceeb3f70eea", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "1600-talets dödliga våld utreds", + "release_date": "2022-09-13", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:5d8CxZvDo2eDyX6CuXze1M" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/28d0ae229d3f3c06689f60b66e1722a9585639a4", + "description": "Sverige hade kunnat bli symbolen för frihet, jämlikhet och broderskap om det inte varit för Gustav III:s statskupp för 250 år sedan. Hör om den och om klimatkrisen 1770 som pågick samtidigt. För 250 år sedan ställdes Sverige på ända. De demokratiska tendenser som börjat spira under Frihetstiden slog i ett slag sönder av Gustav III under hans statskupp. Vetenskapsradion Historia tar med sig historikern Jonas Nordin till Stockholms slott för att ta reda på hur kungen lyckades med kuppen och vilka politiska konsekvenser den fick för Sverige. Och vad som hade hänt om kuppen misslyckats?Dessutom lyfter historikern Dominik Collet upp den allvarliga klimatkrisen under 1770-talet som en okänd anledning till att statskuppen lyckades. I missväxttider och nödår lyckades Gustav III navigera skickligt, samtidigt som andra regenter i Europa drabbades betydligt hårdare.Och så uppmärksammar vi 400-årsdagen av den spanska galeonen Atochas undergång, och fyndet av hennes last som räknas som den värdefullaste i marinarkeologins historia.Programledare är Tobias Svanelid.", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/3ImQwVrE6XBcb44zbZUk9x" + }, + "href": "https://api.spotify.com/v1/episodes/3ImQwVrE6XBcb44zbZUk9x", + "html_description": "

Sverige hade kunnat bli symbolen för frihet, jämlikhet och broderskap om det inte varit för Gustav III:s statskupp för 250 år sedan. Hör om den och om klimatkrisen 1770 som pågick samtidigt.

För 250 år sedan ställdes Sverige på ända. De demokratiska tendenser som börjat spira under Frihetstiden slog i ett slag sönder av Gustav III under hans statskupp. Vetenskapsradion Historia tar med sig historikern Jonas Nordin till Stockholms slott för att ta reda på hur kungen lyckades med kuppen och vilka politiska konsekvenser den fick för Sverige. Och vad som hade hänt om kuppen misslyckats?

Dessutom lyfter historikern Dominik Collet upp den allvarliga klimatkrisen under 1770-talet som en okänd anledning till att statskuppen lyckades. I missväxttider och nödår lyckades Gustav III navigera skickligt, samtidigt som andra regenter i Europa drabbades betydligt hårdare.

Och så uppmärksammar vi 400-årsdagen av den spanska galeonen Atochas undergång, och fyndet av hennes last som räknas som den värdefullaste i marinarkeologins historia.

Programledare är Tobias Svanelid.

", + "id": "3ImQwVrE6XBcb44zbZUk9x", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a3fefd4e69b1bcbcbb67905a5", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f3fefd4e69b1bcbcbb67905a5", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d3fefd4e69b1bcbcbb67905a5", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Gustav III:s statskupp", + "release_date": "2022-09-06", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:3ImQwVrE6XBcb44zbZUk9x" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/7831162321c2f6e2179dc18e509518437b5a6535", + "description": "Hör Vetenskapsradion Historia live från Tantolunden där Panelen och Tobias Svanelid diskuterar historiska val och forntida demokrati, men också sjunger om Tantobommen och diskuterar mammutrumpor. Vetenskapsradion Historia sänder live ifrån Ekermanska malmgården på Södermalm i Stockholm och bjuder in Historiepanelen med Kristina Ekero Eriksson, Jonathan Lindström och Annika Sandén för att diskutera historiska val och stockholmshistorier med Södermalmskoppling.Hör om vikingatida tingsplatser, om Torgny Lagman, om demokratiska säljägare och crossdressande 1600-talstjejer, och lyssna på musikalisk underhållning av The Apricots som spelar låtar med demokratihistorisk anknytning.Programledare är Tobias Svanelid.", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/0IUR1AOhKItNRh0f44GC9I" + }, + "href": "https://api.spotify.com/v1/episodes/0IUR1AOhKItNRh0f44GC9I", + "html_description": "

Hör Vetenskapsradion Historia live från Tantolunden där Panelen och Tobias Svanelid diskuterar historiska val och forntida demokrati, men också sjunger om Tantobommen och diskuterar mammutrumpor.

Vetenskapsradion Historia sänder live ifrån Ekermanska malmgården på Södermalm i Stockholm och bjuder in Historiepanelen med Kristina Ekero Eriksson, Jonathan Lindström och Annika Sandén för att diskutera historiska val och stockholmshistorier med Södermalmskoppling.

Hör om vikingatida tingsplatser, om Torgny Lagman, om demokratiska säljägare och crossdressande 1600-talstjejer, och lyssna på musikalisk underhållning av The Apricots som spelar låtar med demokratihistorisk anknytning.

Programledare är Tobias Svanelid.

", + "id": "0IUR1AOhKItNRh0f44GC9I", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a73f53bdd67eb2a3b793ee76b", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f73f53bdd67eb2a3b793ee76b", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d73f53bdd67eb2a3b793ee76b", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Livesändning om historiska svenska val", + "release_date": "2022-08-30", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:0IUR1AOhKItNRh0f44GC9I" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/754f7f21b047547e940780e0f997948633a58044", + "description": "I november 1942 vände andra världskriget och Peter Englund vill nu ta reda på hur vanliga människor upplevde denna tumultartade tid. Dessutom tar vi reda på vad Facebook gör med vår historiesyn. Hur kändes det att leva under en av de mörkaste och mest tumultartade månaderna under 1900-talet? Historikern Peter Englund har i aktuella boken Onda nätters drömmar samlat berättelserna från ett 40-tal helt vanliga människor som på olika sätt påverkades av krigets vändpunkt – frontsoldater, journalister, sexslavar, koncentrationslägerfångar och helt vanliga hemmafruar. Tobias Svanelid träffar författaren för att ta reda på vad dessa erfarenheter kan säga oss idag och vilken ny bild de ger av andra världskrigets vändpunkt.Dessutom uppmärksammar vi pinfärska forskningsfältet digital minnes- och historiekultur, där historiker och andra forskare nu vill ta reda på vad Facebook och andra sociala medier gör med våra minnen och vår historiekultur. Robin Ekelund vid Malmö universitet är en av få svenska forskare som fördjupat sig i ämnet.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/0kHBMJv9ASbOkoEENdnvPY" + }, + "href": "https://api.spotify.com/v1/episodes/0kHBMJv9ASbOkoEENdnvPY", + "html_description": "

I november 1942 vände andra världskriget och Peter Englund vill nu ta reda på hur vanliga människor upplevde denna tumultartade tid. Dessutom tar vi reda på vad Facebook gör med vår historiesyn.

Hur kändes det att leva under en av de mörkaste och mest tumultartade månaderna under 1900-talet? Historikern Peter Englund har i aktuella boken Onda nätters drömmar samlat berättelserna från ett 40-tal helt vanliga människor som på olika sätt påverkades av krigets vändpunkt – frontsoldater, journalister, sexslavar, koncentrationslägerfångar och helt vanliga hemmafruar. Tobias Svanelid träffar författaren för att ta reda på vad dessa erfarenheter kan säga oss idag och vilken ny bild de ger av andra världskrigets vändpunkt.

Dessutom uppmärksammar vi pinfärska forskningsfältet digital minnes- och historiekultur, där historiker och andra forskare nu vill ta reda på vad Facebook och andra sociala medier gör med våra minnen och vår historiekultur. Robin Ekelund vid Malmö universitet är en av få svenska forskare som fördjupat sig i ämnet.

", + "id": "0kHBMJv9ASbOkoEENdnvPY", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8aca8e4a7514e87017cf543816", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1fca8e4a7514e87017cf543816", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68dca8e4a7514e87017cf543816", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "November 1942 – världskrigets vändpunkt", + "release_date": "2022-08-23", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:0kHBMJv9ASbOkoEENdnvPY" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/96d8d5f0caf2a80018b499cb26362e929321d165", + "description": "Ta med dig en historiebok i hängmattan så blir sommaren både spännande och lärorik. Och om det regnar kanske ett historiskt brädspel kan funka som underhållning? Skandaler i societeten, mumiens förbannelse eller kolgruvor i Storbritannien kanske kan underhålla i hängmattan i sommar? Vetenskapsradion Historias Tobias Svanelid sammankallar Kristina Ekero Eriksson och Urban Björstadius för att tipsa om historiska böcker inför semestern, och så testar Spelpanelen två historiska brädspel med industrihistoriskt tema och delar ut betyg.Böcker och spel som nämns i programmet:Historiska kärlekspar av Sara GribergSveriges historia för släktforskare av Roger Axelsson, Carin Bergström, Carl Henrik Carlsson och Sofia LingDe kommer att vara annorlunda svenskar av Simon Sorgenfrei Jaquette Gyldenstolpe av Anna-Lena BergSvarta St Barthelemy av Fredrik ThomassonSveriges långa historia av Jonathan LindströmTusen år i Uppåkra av Dick HarrisonKlart skepp av Ann Pålsson (redaktör)Ruths garderob av Ingela BendtExtas i folkhemmet av Leonidas AretakisJakten på Tutankhamon av Bengt Fredriksson och Andreas PalmaerFurnace av Ivan LashinBrass Birmingham av Gavan Brown, Matt Tolman och Martin Wallace", + "duration_ms": 2685000, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/4PulPQRdLooLmCdKiEe9GV" + }, + "href": "https://api.spotify.com/v1/episodes/4PulPQRdLooLmCdKiEe9GV", + "html_description": "

Ta med dig en historiebok i hängmattan så blir sommaren både spännande och lärorik. Och om det regnar kanske ett historiskt brädspel kan funka som underhållning?

Skandaler i societeten, mumiens förbannelse eller kolgruvor i Storbritannien kanske kan underhålla i hängmattan i sommar? Vetenskapsradion Historias Tobias Svanelid sammankallar Kristina Ekero Eriksson och Urban Björstadius för att tipsa om historiska böcker inför semestern, och så testar Spelpanelen två historiska brädspel med industrihistoriskt tema och delar ut betyg.

Böcker och spel som nämns i programmet:

Historiska kärlekspar av Sara Griberg

Sveriges historia för släktforskare av Roger Axelsson, Carin Bergström, Carl Henrik Carlsson och Sofia Ling

De kommer att vara annorlunda svenskar av Simon Sorgenfrei

Jaquette Gyldenstolpe av Anna-Lena Berg

Svarta St Barthelemy av Fredrik Thomasson

Sveriges långa historia av Jonathan Lindström

Tusen ĂĄr i UppĂĄkra av Dick Harrison

Klart skepp av Ann Pålsson (redaktör)

Ruths garderob av Ingela Bendt

Extas i folkhemmet av Leonidas Aretakis

Jakten pĂĄ Tutankhamon av Bengt Fredriksson och Andreas Palmaer

Furnace av Ivan Lashin

Brass Birmingham av Gavan Brown, Matt Tolman och Martin Wallace

", + "id": "4PulPQRdLooLmCdKiEe9GV", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a41807911678c0b83537f2a99", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f41807911678c0b83537f2a99", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d41807911678c0b83537f2a99", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Kärlek och industriromantik förgyller sommaren", + "release_date": "2022-06-21", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:4PulPQRdLooLmCdKiEe9GV" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/536e38215bd49e90208d92e6b0b1198a450b4306", + "description": "Hör om stridshingstar, fotbollskrig, 1200-talets Vietnamkrig och mycket annat i Vetenskapsradion Historias lyssnarfrågemarathon där Dick Harrison svarar på lyssnarnas egna frågor i ett helt program. Vad hände under Fotbollskriget 1969 och Körsbärskriget 1631 och varför bröt de ut? Följ med Vetenskapsradion Historia på Dick Harrison långlopp, årets lyssnarfrågemarathon där historieprofessorn besvarar lyssnarnas egna frågor. Denna gång berör samtliga frågor historiska krig med anledning av den pågående ryska invasionen av Ukraina.Programledare är Tobias Svanelid.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/1m0Kagczdo04dXgvdWPuHu" + }, + "href": "https://api.spotify.com/v1/episodes/1m0Kagczdo04dXgvdWPuHu", + "html_description": "

Hör om stridshingstar, fotbollskrig, 1200-talets Vietnamkrig och mycket annat i Vetenskapsradion Historias lyssnarfrågemarathon där Dick Harrison svarar på lyssnarnas egna frågor i ett helt program.

Vad hände under Fotbollskriget 1969 och Körsbärskriget 1631 och varför bröt de ut? Följ med Vetenskapsradion Historia på Dick Harrison långlopp, årets lyssnarfrågemarathon där historieprofessorn besvarar lyssnarnas egna frågor. Denna gång berör samtliga frågor historiska krig med anledning av den pågående ryska invasionen av Ukraina.

Programledare är Tobias Svanelid.

", + "id": "1m0Kagczdo04dXgvdWPuHu", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a2e4f8d2a0f3b11bbe5c5e1e3", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f2e4f8d2a0f3b11bbe5c5e1e3", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d2e4f8d2a0f3b11bbe5c5e1e3", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Lyssnarfrågemarathon med toyotakrig, fotbollskrig och körsbärskrig!", + "release_date": "2022-06-14", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:1m0Kagczdo04dXgvdWPuHu" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/33009f4972a398f72798bd1ab652ee6ac17d888a", + "description": "Från Kronans undergång utanför Öland till den stora segern vid Svensksund. Flottans historia har format riket. Den har skapat stormakten Sverige och skyddat landets handel. Nu fyller den 500 år. För femhundra år sedan ankrade ett antal krigsskepp upp i Slätbaken. Skeppen, som köpts på kredit från Lübeck, skulle komma att utgöra de första fartygen i den svenska flottan, och i Vetenskapsradion Historia berättar historikern Lars Ericson Wolke om flottans födelse och betydelse för Sveriges historia.Följ med till platserna för flottans största segrar och nederlag, till vattnen utanför Öland och till Finska viken, och hör om hur man nu planerar att fira jubiléet i en tid då flottans roll danas om igen.Programledare är Tobias Svanelid.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/5BzMNb6pNFzS3eUYYcdwfS" + }, + "href": "https://api.spotify.com/v1/episodes/5BzMNb6pNFzS3eUYYcdwfS", + "html_description": "

Från Kronans undergång utanför Öland till den stora segern vid Svensksund. Flottans historia har format riket. Den har skapat stormakten Sverige och skyddat landets handel. Nu fyller den 500 år.

För femhundra år sedan ankrade ett antal krigsskepp upp i Slätbaken. Skeppen, som köpts på kredit från Lübeck, skulle komma att utgöra de första fartygen i den svenska flottan, och i Vetenskapsradion Historia berättar historikern Lars Ericson Wolke om flottans födelse och betydelse för Sveriges historia.

Följ med till platserna för flottans största segrar och nederlag, till vattnen utanför Öland och till Finska viken, och hör om hur man nu planerar att fira jubiléet i en tid då flottans roll danas om igen.

Programledare är Tobias Svanelid.

", + "id": "5BzMNb6pNFzS3eUYYcdwfS", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a279214989153202ca5782448", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f279214989153202ca5782448", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d279214989153202ca5782448", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Flottan fyller 500", + "release_date": "2022-06-07", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:5BzMNb6pNFzS3eUYYcdwfS" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/7c065061ed2c53b2f564d9e4625a311baaf9b526", + "description": "Glöm den skäggige grottmannen och tänk dig istället en fingerfärdig och pratsam kulturvarelse med goda relationer med vår egen art. Det är författaren Rebecca Wragg Sykes budskap i aktuella Släktskap. Satte han på sig en kostym hade man knappt sett någon skillnad mellan neanderthalaren och oss själva. Vetenskapsradion Historia tar pulsen på den senaste forskningen om vår nära kusin som nu presenteras i aktuella boken Släktskap av arkeologen Rebecca Wragg Sykes. Med dagens vetenskapliga metoder kan en enda neanderthaltand avslöja vad personen åt, hur den reste, hur länge den ammades och hur den tillverkade sina verktyg, och all denna kunskap ger oss ny en helt ny bild av vår nära släkting. Glöm den barbariske grottmannen, och tänk dig istället en kulturellt utvecklad varelse som säkert hade nära samarbete med vår egen art, menar författaren.Och så tipsar Panelen om historiska sommaraktiviteter och lekar som kan förnöja oss och reder ut vilken roll barnen spelat i historien apropå aktuella säsongen av Stranger Things.Programledare är Tobias Svanelid.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/5TpImZuFku43lvR0JyMvjO" + }, + "href": "https://api.spotify.com/v1/episodes/5TpImZuFku43lvR0JyMvjO", + "html_description": "

Glöm den skäggige grottmannen och tänk dig istället en fingerfärdig och pratsam kulturvarelse med goda relationer med vår egen art. Det är författaren Rebecca Wragg Sykes budskap i aktuella Släktskap.

Satte han på sig en kostym hade man knappt sett någon skillnad mellan neanderthalaren och oss själva. Vetenskapsradion Historia tar pulsen på den senaste forskningen om vår nära kusin som nu presenteras i aktuella boken Släktskap av arkeologen Rebecca Wragg Sykes. Med dagens vetenskapliga metoder kan en enda neanderthaltand avslöja vad personen åt, hur den reste, hur länge den ammades och hur den tillverkade sina verktyg, och all denna kunskap ger oss ny en helt ny bild av vår nära släkting. Glöm den barbariske grottmannen, och tänk dig istället en kulturellt utvecklad varelse som säkert hade nära samarbete med vår egen art, menar författaren.

Och så tipsar Panelen om historiska sommaraktiviteter och lekar som kan förnöja oss och reder ut vilken roll barnen spelat i historien apropå aktuella säsongen av Stranger Things.

Programledare är Tobias Svanelid.

", + "id": "5TpImZuFku43lvR0JyMvjO", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8ac301f28bb3c12e16024f411a", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1fc301f28bb3c12e16024f411a", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68dc301f28bb3c12e16024f411a", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Hemlighetsfulla neanderthalaren i rampljuset", + "release_date": "2022-05-31", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:5TpImZuFku43lvR0JyMvjO" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/c82a5f41619e3d20b80df210b39c2b7e1bb0a97b", + "description": "Följ med Tobias Svanelid på en vandring längs Birger Jarlsgatan, startpunkten för den muslimska invandringen i Sverige. Och hör om korstågens betydelse för islams expansion. Stockholmsutställningen 1897 fick besök av den ryske muslimen Ebrahim Umerkajeff, en pälshandlare som hittade kärleken i Sverige och blev kvar. Om honom och de andra tidiga muslimska invandrarna som fick svenskt medborgarskap handlar religionsvetaren Simon Sorgenfreis aktuella bok De kommer att vara annorlunda svenskar. Tobias Svanelid tar med författaren på en vandring längs Birger Jarlsgatan i Stockholm, platsen för de första svenska muslimernas företag och startpunkten för den utveckling som idag gjort Sverige till ett av världens mest mångkulturella länder.Dessutom svarar Dick Harrison på en lyssnarfråga om vad som hade hänt med Europas kristna befolkning om påven Urban II aldrig dragit igång korstågen.", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/29pGMHLbL8MEOlixPUrom3" + }, + "href": "https://api.spotify.com/v1/episodes/29pGMHLbL8MEOlixPUrom3", + "html_description": "

Följ med Tobias Svanelid på en vandring längs Birger Jarlsgatan, startpunkten för den muslimska invandringen i Sverige. Och hör om korstågens betydelse för islams expansion.

Stockholmsutställningen 1897 fick besök av den ryske muslimen Ebrahim Umerkajeff, en pälshandlare som hittade kärleken i Sverige och blev kvar. Om honom och de andra tidiga muslimska invandrarna som fick svenskt medborgarskap handlar religionsvetaren Simon Sorgenfreis aktuella bok De kommer att vara annorlunda svenskar. Tobias Svanelid tar med författaren på en vandring längs Birger Jarlsgatan i Stockholm, platsen för de första svenska muslimernas företag och startpunkten för den utveckling som idag gjort Sverige till ett av världens mest mångkulturella länder.

Dessutom svarar Dick Harrison på en lyssnarfråga om vad som hade hänt med Europas kristna befolkning om påven Urban II aldrig dragit igång korstågen.

", + "id": "29pGMHLbL8MEOlixPUrom3", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a83d4c56598da1efc5bbb98cc", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f83d4c56598da1efc5bbb98cc", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d83d4c56598da1efc5bbb98cc", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Sveriges första muslimer", + "release_date": "2022-05-24", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:29pGMHLbL8MEOlixPUrom3" + }, + { + "audio_preview_url": "https://p.scdn.co/mp3-preview/769eb5ee90c24ccdaa5ede9cd022fcb125a6f6d8", + "description": "Ormen Friskes undergång på Nordsjön 1950 är en tragedi i Kalla krigets skugga. Nu lyfts berättelsen fram och frågetecknen rätas ut. Dessutom undersöker vi tjusningen med att bygga gamla träbåtar. Sommaren 1950 gick vikingaskeppet Ormen Friske under i Nordsjöns stormiga vågor. 15 man följde henne i djupet, och i Vetenskapsradion Historia undersöker vi den gripande och märkliga händelsen, en fartygskatastrof och en nationell tragedi i Kalla krigets skugga. Jack Werner är aktuell med boken Ormen Friske och berättar om människorna bakom frisksportprojektet att återskapa ett vikingaskepp och det misslyckade försöket att segla det ut i Europa.Dessutom besöker vi skeppsbyggarskolan på Skeppsholmen i Stockholm, där återskapade galeasen Förlig Vind nu tar form. Nyligen utsågs det traditionella nordiska skeppsbyggeriet till ett immateriellt världsarv, men vad är det egentligen som lockar med att återskapa gamla träfartyg?Programledare är Tobias Svanelid. ", + "duration_ms": 2685024, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/episode/5hWBrfMZFNNzwpJuRlqqzy" + }, + "href": "https://api.spotify.com/v1/episodes/5hWBrfMZFNNzwpJuRlqqzy", + "html_description": "

Ormen Friskes undergång på Nordsjön 1950 är en tragedi i Kalla krigets skugga. Nu lyfts berättelsen fram och frågetecknen rätas ut. Dessutom undersöker vi tjusningen med att bygga gamla träbåtar.

Sommaren 1950 gick vikingaskeppet Ormen Friske under i Nordsjöns stormiga vågor. 15 man följde henne i djupet, och i Vetenskapsradion Historia undersöker vi den gripande och märkliga händelsen, en fartygskatastrof och en nationell tragedi i Kalla krigets skugga. Jack Werner är aktuell med boken Ormen Friske och berättar om människorna bakom frisksportprojektet att återskapa ett vikingaskepp och det misslyckade försöket att segla det ut i Europa.

Dessutom besöker vi skeppsbyggarskolan på Skeppsholmen i Stockholm, där återskapade galeasen Förlig Vind nu tar form. Nyligen utsågs det traditionella nordiska skeppsbyggeriet till ett immateriellt världsarv, men vad är det egentligen som lockar med att återskapa gamla träfartyg?

Programledare är Tobias Svanelid.

 

", + "id": "5hWBrfMZFNNzwpJuRlqqzy", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/ab6765630000ba8a78e0a3c92b4d358251aacd1f", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/ab67656300005f1f78e0a3c92b4d358251aacd1f", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/ab6765630000f68d78e0a3c92b4d358251aacd1f", + "width": 64 + } + ], + "is_externally_hosted": false, + "is_playable": true, + "language": "sv", + "languages": [ + "sv" + ], + "name": "Kalla krigets vikingakatastrof", + "release_date": "2022-05-17", + "release_date_precision": "day", + "type": "episode", + "uri": "spotify:episode:5hWBrfMZFNNzwpJuRlqqzy" + } + ], + "limit": 50, + "next": "https://api.spotify.com/v1/shows/38bS44xjbVVZ3No3ByF1dJ/episodes?offset=50&limit=50&market=GB", + "offset": 0, + "previous": null, + "total": 500 + }, + "explicit": false, + "external_urls": { + "spotify": "https://open.spotify.com/show/38bS44xjbVVZ3No3ByF1dJ" + }, + "href": "https://api.spotify.com/v1/shows/38bS44xjbVVZ3No3ByF1dJ", + "html_description": "Vi är där historien är.
Ansvarig utgivare: Nina Glans", + "id": "38bS44xjbVVZ3No3ByF1dJ", + "images": [ + { + "height": 640, + "url": "https://i.scdn.co/image/84bc7407c7a61e805284314bef8b9ed5a7c31426", + "width": 640 + }, + { + "height": 300, + "url": "https://i.scdn.co/image/4b89f866aa625cf02f98f80b968da52b65944bf2", + "width": 300 + }, + { + "height": 64, + "url": "https://i.scdn.co/image/cc1e47c7e3e5a169d2352e81dc1a681ac7bbc0bd", + "width": 64 + } + ], + "is_externally_hosted": false, + "languages": [ + "sv" + ], + "media_type": "audio", + "name": "Vetenskapsradion Historia", + "publisher": "Sveriges Radio", + "total_episodes": 500, + "type": "show", + "uri": "spotify:show:38bS44xjbVVZ3No3ByF1dJ" + }; +} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/data/validTrack.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validTrack.ts new file mode 100644 index 0000000..99f12f0 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validTrack.ts @@ -0,0 +1,68 @@ +export function validTrack() { + return { + album: + { + album_group: 'album', + album_type: 'album', + artists: + [{ + external_urls: { spotify: 'https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm' }, + href: 'https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm', + id: '2CWWgbxApjbyByxBBCvGTm', + name: 'Katatonia', + type: 'artist', + uri: 'spotify:artist:2CWWgbxApjbyByxBBCvGTm' + }], + available_markets: ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + external_urls: { spotify: 'https://open.spotify.com/album/4EcfbzCtbJDk2wMwhT4D1h' }, + href: 'https://api.spotify.com/v1/albums/4EcfbzCtbJDk2wMwhT4D1h', + id: '4EcfbzCtbJDk2wMwhT4D1h', + images: + [{ + height: 640, + url: 'https://i.scdn.co/image/ab67616d0000b2731465df104ab9c7772fe0da9b', + width: 640 + }, + { + height: 300, + url: 'https://i.scdn.co/image/ab67616d00001e021465df104ab9c7772fe0da9b', + width: 300 + }, + { + height: 64, + url: 'https://i.scdn.co/image/ab67616d000048511465df104ab9c7772fe0da9b', + width: 64 + }], + name: 'Sky Void of Stars', + release_date: '2023-01-20', + release_date_precision: 'day', + total_tracks: 11, + type: 'album', + uri: 'spotify:album:4EcfbzCtbJDk2wMwhT4D1h' + }, + artists: + [{ + external_urls: { spotify: 'https://open.spotify.com/artist/2CWWgbxApjbyByxBBCvGTm' }, + href: 'https://api.spotify.com/v1/artists/2CWWgbxApjbyByxBBCvGTm', + id: '2CWWgbxApjbyByxBBCvGTm', + name: 'Katatonia', + type: 'artist', + uri: 'spotify:artist:2CWWgbxApjbyByxBBCvGTm' + }], + available_markets: ["AR", "AU", "BE", "BO", "BR", "BG", "CA", "CL", "CO", "CR", "CY", "CZ", "DK", "DO", "EC", "EE", "SV", "FI", "FR", "GR", "GT", "HN", "HK", "HU", "IS", "IE", "IT", "LV", "LT", "LU", "MY", "MT", "MX", "NL", "NZ", "NI", "NO", "PA", "PY", "PE", "PH", "PL", "PT", "SG", "SK", "ES", "SE", "TW", "TR", "UY", "US", "GB", "AD", "LI", "MC", "ID", "JP", "TH", "VN", "RO", "IL", "ZA", "SA", "AE", "BH", "QA", "OM", "KW", "EG", "MA", "DZ", "TN", "LB", "JO", "PS", "IN", "BY", "KZ", "MD", "UA", "AL", "KR", "BD", "PK", "LK", "GH", "KE", "NG", "TZ", "UG", "AG", "AM", "BS", "BB", "BZ", "BT", "BW", "BF", "CV", "CW", "DM", "FJ", "GM", "GE", "GD", "GW", "GY", "HT", "JM", "KI", "LS", "LR", "MW", "MV", "ML", "MH", "FM", "NA", "NR", "NE", "PW", "PG", "WS", "SM", "ST", "SN", "SC", "SL", "SB", "KN", "LC", "VC", "SR", "TL", "TO", "TT", "TV", "VU", "AZ", "BN", "BI", "KH", "CM", "TD", "KM", "GQ", "SZ", "GA", "GN", "KG", "LA", "MO", "MR", "MN", "NP", "RW", "TG", "UZ", "ZW", "BJ", "MG", "MU", "MZ", "AO", "CI", "DJ", "ZM", "CD", "CG", "IQ", "LY", "TJ", "VE", "ET"], + disc_number: 1, + duration_ms: 221200, + explicit: false, + external_ids: { isrc: 'ATN262320801' }, + external_urls: { spotify: 'https://open.spotify.com/track/2RM5Lx7VIp6GrLRsg2yXwW' }, + href: 'https://api.spotify.com/v1/tracks/2RM5Lx7VIp6GrLRsg2yXwW', + id: '2RM5Lx7VIp6GrLRsg2yXwW', + is_local: false, + name: 'Austerity', + popularity: 47, + preview_url: 'https://p.scdn.co/mp3-preview/92060dafd9885ae188be4b7bb3640ad41bf221b3?cid=3c5328c75f1f44c086b25e73608c453b', + track_number: 1, + type: 'track', + uri: 'spotify:track:2RM5Lx7VIp6GrLRsg2yXwW' + }; +} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/data/validUser.ts b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validUser.ts new file mode 100644 index 0000000..377bb51 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/src/test/data/validUser.ts @@ -0,0 +1,23 @@ +export function validUser() { + return { + "display_name": "Jo Franchetti", + "external_urls": { + "spotify": "https://open.spotify.com/user/11124066204" + }, + "followers": { + "href": null, + "total": 30 + }, + "href": "https://api.spotify.com/v1/users/11124066204", + "id": "11124066204", + "images": [ + { + "height": null, + "url": "https://scontent-ams2-1.xx.fbcdn.net/v/t1.6435-1/69809582_10102088511738144_5412754542196424704_n.jpg?stp=c0.0.320.320a_dst-jpg_p320x320&_nc_cat=104&ccb=1-7&_nc_sid=0c64ff&_nc_ohc=uxmfdDkbS_YAX9AmJ3H&_nc_ht=scontent-ams2-1.xx&edm=AP4hL3IEAAAA&oh=00_AfArHPzppyUooSmM8EjW_yeJ9plpPJTh3QKEV2MInSStfw&oe=64395EB9", + "width": null + } + ], + "type": "user", + "uri": "spotify:user:11124066204" + }; +} \ No newline at end of file diff --git a/node_modules/@spotify/web-api-ts-sdk/src/test/valid-image.jpg b/node_modules/@spotify/web-api-ts-sdk/src/test/valid-image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..110fdc278ecab88fec69c4bf47d1c24a58becdd2 GIT binary patch literal 7122 zcmbVwcTiJZ_wGRi1XKj23PeGQ(q5|4Z4jCwy@LuO#enqCf{KDtUwQ|TCMJLgAxH@& z6zS4}gc>5fB|sq5{G#8T@6O!6?!D{GT6>>e)_I;;v)5j8sK2PQzy&>RU2TAljtodMv%1K3^i91h z^b9Oaj7)!*{686LGr)cZfC5l@Iu76zI~_ec9kmSr(NHt|h4){`bf@S~GcYpIV6f5_ zATQA1)6>&HGtdyzR)^B&fz#{^99L!UFkUoz!X)H%N$zz*{u$xBl`WjcgT!m{PrctT zvv6_q@bZa>iiuypp`fUA^Omy8z580)U>#jO6H_yD3rj0&N2h1b&s|*Ie0=@<1E7IH z;cwqXM85wJm6(*AlA4yDk@=~hu&B7?bLp3FRn^EERPFb=R!m!aN9T{O?xEq4QS8{S zaU6b*@Oyq?acOylw6(oM-rb|@AN=7(i^P9u(d>Uh@qh4Qr|~-VCk9M^c+s5-pea53 zX@;w^j2w52n4WlD6q0*==F;7S{K^()VR>UB=Tq-N7OrawcoEVcYJZvi-w}KB|HbUT z#Qrxg9B`JNjut$6c0dz2a-zH|K2EZ-X#+{M{tk72-iF0k5le7$3;JPM#7zh82zdAY zwSX>miqdMI4u2kgB3`eD_+Z(>rN_G>L0go+eD(9(0k6Gijk}$mi~sRN1Sn6jfOP&R z2HqtOl6>v3)9&|p#RqJnES#gpp9$Jn6oA*LM&0*cu{WSMaaB4Ao%D*IdwG2%O;Y;4 zuzwKvHR7bNSTd$of`_xHsJSNdZsms0zQurPnp(Lpe_mUxzHjAn*TjN{J6l_TGZiqY zZSbc8safXr#F6j90rjGW>HV6@%lcJraS~NopRPIbXI2)u2B;u$xQPmfhUt`tMkSZK zUOQsyF5#wTW7wuDrrkDoAY5bjhTGhf&Gxgf4F|u*^>sM;-2GKrJBIa;rdqf!wFlVE zcMY5YbJt-rpTjw`pToWCmuVA*#@AS! z#Ib}^Y*KE;@NIR@aQ-YEEFsnJUv>Xk=_(kFX9ZO)ADXVWrJWl&zAkyhXT@zx>f21> znU?~atgqW8A0xsd&znsxQ-RZYCK}3qRDi4hMYV)8d*$)(zKIpLjY<;VWmeC%fpZgO z2#L<_CRr-L!vC2H^mNDWOEE1)rwVcs)84#lAf4-;vLmwuE-u?b3SlConvW1Q)nYq` zhn)*tD>k4_&D)wcuD&nfwSK31B8>9)LbEo+Z7~jSsOY@21X&j_+sT;3?SjbOO3*d; zH-)CiJ2mfA^_3N5IMkEF-8Li!U~?!n&yvEXXQXqquUo}ZPKfYWL-+F*wVHk@M`6w$ z3iZLiL0fHb$BE3r`VW4ZEH^b*e#ylFeOKJht99noIdi@sD?TgBwoW)Q>UtwF z5^D(UO>5E2`x%bUG)%+iJ%ac;c{RPH2_JBjj|0U}&%UiJ z&qPie*B0mX%pDL;pI{NL=1!c$G}no}Nz$!DHExUk^U7$HTObI_fx+WB#YYwbaF~XA zka7>>YBK6%W&WhNEHLNAJv@@DFy zF$I{d{i(Ab!&tD%#A?FjqCSdDgL2Hi$jH&XmkJIn6YrvAQWiTnu9C^{-Qm?-iIIFt zAQ6Qbw$+t~#7&RFo>KwWfhQ}vr;u)PA!Rj(;G;Ivzy{@6@n4p5({ATZzO6ir3We8_ zZmxAQwde<{I}&1#8{6mSJmYndd9vWOHD#ZZAB0s4a){QgY1v1H@ENkxHh5%fLc&lW zL?7)mh!CyA{YqTUdLbKXOVkL@To1WJlHOnE*8hokQdu4A#kU`9W`R>YsV&`A2%Db= z%RJB&(0gbXW$n;1z(DcVL_s&LREk=+u>QS{D8s$@Y0u76-=$3KZT639av^u0&PWCu zyb5K986AuShX~wsF>z22>s5X>n$u1N+Cw!TB2Ru0Q*+^`L!{6-XU;U4v{C_;`4=#O zBMXv(-fk{u;`G^P&zhca(CysftiV<#n!k1EVv^EWjHY-ymg1DMUdl>_1q4_Rlj0-$ z6GGXdcAilIaQex%r(RGc z_3Kiz=FvDwx_Fq^>cn=RuSw~~!NndQZoDFT^8!L7Z2nUW zOfjE0J!uVXy*0qPc>P$*%yZhiNx=Xn)Yp1^@ zTxso>cfScSWHQ2Wqw64(Kg!kHE$FR^>Gi#Iw$?^eGl&&^zUgg<0|71r>I)1kI?e>0 z$Mx}HM1Cha_ByinJb`&cB7K8Za{G=Neo_kOIx}&}o$JQzT7m?7_+?(gAfZiC}>)3tx^0D79 z{(63qk#+d8QI7ML<&kDd&4i^D+C7s0aX@F8$HbCS-KS0h6?m_tt;(w}z=Rn*D)W}# zn>egoEIpAa^4sb*+Opem5UCf-@OZp@!ihZ*0v{vcld;^GuU`DUwbBI?NBhO&g66$4 zDdWYqnG2rV%(0JSYdR*pJWs{rW5F}RTY{fT##@6_dx#F+$Ckmpaf=;6hT%IM!!VFd zXA!RCpr`Bd#fPCjqw!<(KlyM(Lrg9Caz!=t9wtrjN<(Z-&lf`>useMa@64X-$=Z{w zX=D^)CpN8^3V2fixzOR1I)^9+j@Sm&u&tU)J!BL4fk$chxV>W+wDC$}NrvU5n+jZL zFwga`FLx8PVVkz1JRHIB3MSe=WJS$>4B{JJNx2bXJFt*Q1^!vA=?n+GMV}?EX+kLB zbDYU>dNa1s(8wXh-bhk=s2v_OF5HafM{6fxU|d5^E4b9kdhVxA|jiG0`YICzgKN|YF zwWZjqL5JyUEQ8xuq+@mBjswy1d%|`w)Nwa_1&BVG7LVQ=P&RwuzhlV4q*3N(lP z_Vp1|4!~zsoN-HZNqeh^m{E{F|ISdGliY+E823Ny$P6SFqlhz@y$kE@WurBf()o&| z>Lk~N$H5od{lH8&ru_C#{JAxyBYRH-21T)uLSps+_ohu~%#hxtYqf`k*)K8i2h)%(&CTd$oO%q|IC+?w5KY+9u^vY7}i3M zRCk4_`?$fToZIu`ORs=3V2!lIbS(Xi3cS&$Xar7JlPua~SeJ(_Q~N8gNikHD!jaD$ zCCV{BFiP?X*@8Eks%~^x)O{V*&r3aUGIoJoMUJ9>Af9CN3MD+mURgZt)yY4$oQt9r z2Sl1nH`l6)BT*_)V-c})2#?QNtC1Fw3{D^Cd2=3oNsZGkJB_>rx|u*MiLKtGqY&mK z+|goK0PCFHYJrxvD)X~M8Cd7rbf~k-| zQbduTq@=HEEVrR~)bX7jFh3&X+v=O%ci}f8o}PN6oz!BMoLuc${=4-4(c*F5(HY!m z5gPRp3wJD;()9^je0b^0=cfpZ(%U9yn=jNyejdPD$G@Tivsq0{!oxd;ELI_IV^>IK zWk*~pDcJ|Uw_8%Ic=5^CWrfeRjCohi%1XReAd*THuOnfZWM;iX{_~}?>sL32^+p;T z0_LPZtu>XCt9{?m1EFwRc^*WWRh+@K#}PLoT~eZAST@QUTo1*d;dq%3idmsI=S0&= z*e%}8`vc6C-8 z(iujOb&3TqF5$|L37*3*-+|YOceg?>>QJs9N>KD$te>w-%z5%0={Jl#7%l&FpcZsK z%L@YW6t@zNGw3c%xf^BkPPzFJqdRl3>)|GTV_dH@lxVnnofH|h_^p;w_IS5)+NX%( zj|Elh`hTJ4s07EWa|X)E>ihC%$7eQPZlMB1Q#Ohiz0HiPy(-0!WW3&R$MG~@_2B9t zE-QU5EyO4=K^f|(O)H6ArfvQ`8?~4)#*4QwJ$Bgn;FY@clO)zQGrl>?@M#$<2vXUF zyVVOLhs(?O?}IN}uiz80puNYs&Ezj(?6kP#gNO!AQTAfBXe{gkG;w8a-(2|xS=@KN zS`}bL3cWLzGku%_fNp!cTRpuh;?gIR$q~I0FHVU*41|sFZ7YDzqAx;0`mtdn==`#K z2;2Bp-P8+VQ}0D~-CI4?tj~Ca9TPWn9=+POnIX>1Flb2h zNflS(Lzysj$-Qp|OjTY%H=ST|Rt3`toi61oPQK+)8XY-Jfx&xDJ@%1V6jXDX%6fnN z6(SMKjX~{kXG$TI)@pV)uVsx25Sc&8xK_Tp%@x|((8OQCb> zzpI#>jhnw@Fy49eaJDG)&^)C`J0}}E5y)F4_BC}{llUb3&~2~9+9R>D3+WkR@e+4Z zY@5x%XpANO&;^7FW0T?}x?oo*o^x&XS83UzZQ#{GbrSev*Ykj)SQVq)9F3K0m)|BF z&wEKPOoCObGG|MzP0Kcv11l(8O|veIhNZqBu4TS}w~ApGLvD{COFs?=Xn8{Xpr^oI z9EikLY|DN9x6nNZi_kW=NStZNHhusnPk21)2LX3ZGn2T=yei!KN>?we;B4%#jcsII zs{?oIUW#jyScjC~dJHXdoy(Vi+x*6)^^z-a!Mmx)@CM1JG4h@rMv2e6;6!{DQ9b2z~OCt{IGYCJuC!@>2qA^9RJQ+ zhw>iMNR|z)F8QFC<1iQhURrXE%o?d5o8Xp-`uA&}f}VHk*S0*7YT=x(`Gi!T?1WzE z*qlZl9?o+Fnsqmnn|t!RWY5il0X69Hi zd)NS*kw;0Tn#WNc3-;2=oK*jJ#|b!jO-#J4i8Rn=K12MxI4DKtsU|o4tDfv*s}P8K z4Org&tU8|Xl;@Tpx&35Fke3o(26csrY2m-8wVI>y##1xP=eOo-f7c9VlX?18q@JZ? zlU>ENrOGRc4$kN9y&$1#%?>5|_|Vv=W>w+a^l{4V7PZc7r*F|J%xy(N2V7}OQ4IpO za<7}}M;1Y0V>)l1YIGeS(Ddno5Zn?{DSjiJ_>BvDTQc_F8FC50Tu=BYhI$+XfTD3aQ@_7$-kV20%G*tLzrVF6+K>d=8IN;!9&Sxo zE?u~j?;2$AICSsPhNc?ZqK!;Nm?r+@X|*bU?+hne3X1e!R?!;jz#RMbnt73LmA~0E zC(fsDi+#^Bp=I$X@Wh#udt01pNc5D&7HavWz0N!&gne$4qp#kc#9#Fc?H;PR5f9I0 zT75wB?6~#u17h9T4n8zJHh+h#Zn$izXL;+$+jC)DS7-X$pxWhGOWsBH>Tbfdp zXtf`+{{Au2Ks%SRd9rQsmEyS@hCShjic{isiPbf`<*WR-MqJ2{>=O6k%$?@)iZ28S zcXM;QwEgHz3CDN}gxE3BJVXWDR^*EI-iz8+_ic-O)W|K{JeDXPBbVK5w$`_sOmR=0 z=gg9-A34PCEa8cj=;=^hZ|`5-lpKQP2?!dBcp=(f;9ny5Ttt3!pfS)Et@d+M%@)@b z=WFGs@9de$v!UdeH@0lcS;b&%-=F+FWQq#tr|^YZMG`dMYeT zE6Q;YJ#pPP?AyA({6GEb<5TeJ?FL1dsolhW8w4B0*YO&FHdsP&iE>N=H%!X~3?d(- zxpfD{m?jmE7idJ3<42tHBr{=Om6ZO$ClA8Vb~ppBbivf!e<>9hl(lMD&wLY3s8;@a?XbY-R}#R7VxP+o6ot*RO!lcj#yP88sJV?Y>L$nC3F|t|sLZ>r8rM#K zBICLC;0w|!KG^SHOj4As($Jj^tDp;tE(H=wMV>BAQz+ZK{@O!OMD8t;jYm|+{b))_ z?f#?S!xK(@P)r%|PL<(vo|SR7_ZmXY<d8$lMeEmC#&C68oE zIvk_ptGfh$I8p(>;Jp5tIGesB>)3-ZgT9{1G~(heIATDbcKJ1R1bpo+S=EKM#FR>Ds2u47qU?6K_e z(wFAI^oMPsgKO8(;-t6?e6)GZu#Rii=8vGf4rFrvxnJb8dk9iVXA{S=2HLN|+Lj|1Y+Uo}%60HK|s^6Y$Gd%aa`TMoEG^G#Y4i=;wU^!iiPQW*@FCAd3% zM}27+a=x*|>eouHaN-sZPdemxQb1ZRMr|xqXRw0jkjHzkzSdo!|FQ`xX>HZ(D?#1M zj#g0hiS`e)>PY3A;U*!1qd6}mKi|>)y0DB& zl>x+8K)J%nUajj^oF?Yur@GRS>-j5UVb>(tFALm4c*VUA3L`I7Xw(Q5I_6h9 zUhGi=&smjc7Az3ZIum2v+1j}cffOVv zDc|TBSk&@=Lb8leIi5rq6mXUIhDFb?543}Ly5@X5=QrM&JRge6{1sLE!Dl4EXb zlqCK*@iGCu#CVAy*3$3-Wsa0}t$W<}8i&ebaHqL-W)urCntBp-F Promise; + +export interface SdkOptions { + fetch?: RequestImplementation; + beforeRequest?: (url: string, options: RequestInit) => void; + afterRequest?: (url: string, options: RequestInit, response: Response) => void; + deserializer?: IResponseDeserializer; + responseValidator?: IValidateResponses; + errorHandler?: IHandleErrors; + redirectionStrategy?: IRedirectionStrategy; + cachingStrategy?: ICachingStrategy; +} + +export interface AuthenticationResponse { + authenticated: boolean; + accessToken: AccessToken; +} + +export interface SdkConfiguration extends SdkOptions { + fetch: RequestImplementation; + beforeRequest: (url: string, options: RequestInit) => void; + afterRequest: (url: string, options: RequestInit, response: Response) => void; + deserializer: IResponseDeserializer; + responseValidator: IValidateResponses; + errorHandler: IHandleErrors; + redirectionStrategy: IRedirectionStrategy; + cachingStrategy: ICachingStrategy; +} + +export interface IRedirectionStrategy { + redirect(targetUrl: string | URL): Promise; + onReturnFromRedirect(): Promise; +} + +export interface IHandleErrors { + handleErrors(error: any): Promise; +} + +export interface IValidateResponses { + validateResponse: (response: Response) => Promise; +} + +export interface IResponseDeserializer { + deserialize(response: Response): Promise; +} + +export interface ICachingStrategy { + getOrCreate( + cacheKey: string, + createFunction: () => Promise, + updateFunction?: (item: T) => Promise + ): Promise; + + get(cacheKey: string): Promise; + setCacheItem(cacheKey: string, item: T & ICachable): void; + remove(cacheKey: string): void; +} + +export interface ICachable { + expires?: number; + expiresOnAccess?: boolean; +} + +// API return types + +export type MaxInt = number extends T ? number : _Range; +export type _Range = R['length'] extends T ? R[number] | T : _Range; + +export type ItemTypes = 'artist' | 'album' | 'playlist' | 'track' | 'show' | 'episode' | 'audiobook'; +export type Market = "AD" | "AE" | "AG" | "AL" | "AM" | "AO" | "AR" | "AT" | "AU" | "AZ" | "BA" | "BB" | "BD" | "BE" | "BF" | "BG" | "BH" | "BI" | "BJ" | "BN" | "BO" | "BR" | "BS" | "BT" | "BW" | "BY" | "BZ" | "CA" | "CD" | "CG" | "CH" | "CI" | "CL" | "CM" | "CO" | "CR" | "CV" | "CW" | "CY" | "CZ" | "DE" | "DJ" | "DK" | "DM" | "DO" | "DZ" | "EC" | "EE" | "EG" | "ES" | "ET" | "FI" | "FJ" | "FM" | "FR" | "GA" | "GB" | "GD" | "GE" | "GH" | "GM" | "GN" | "GQ" | "GR" | "GT" | "GW" | "GY" | "HK" | "HN" | "HR" | "HT" | "HU" | "ID" | "IE" | "IL" | "IN" | "IQ" | "IS" | "IT" | "JM" | "JO" | "JP" | "KE" | "KG" | "KH" | "KI" | "KM" | "KN" | "KR" | "KW" | "KZ" | "LA" | "LB" | "LC" | "LI" | "LK" | "LR" | "LS" | "LT" | "LU" | "LV" | "LY" | "MA" | "MC" | "MD" | "ME" | "MG" | "MH" | "MK" | "ML" | "MN" | "MO" | "MR" | "MT" | "MU" | "MV" | "MW" | "MX" | "MY" | "MZ" | "NA" | "NE" | "NG" | "NI" | "NL" | "NO" | "NP" | "NR" | "NZ" | "OM" | "PA" | "PE" | "PG" | "PH" | "PK" | "PL" | "PS" | "PT" | "PW" | "PY" | "QA" | "RO" | "RS" | "RW" | "SA" | "SB" | "SC" | "SE" | "SG" | "SI" | "SK" | "SL" | "SM" | "SN" | "SR" | "ST" | "SV" | "SZ" | "TD" | "TG" | "TH" | "TJ" | "TL" | "TN" | "TO" | "TR" | "TT" | "TV" | "TW" | "TZ" | "UA" | "UG" | "US" | "UY" | "UZ" | "VC" | "VE" | "VN" | "VU" | "WS" | "XK" | "ZA" | "ZM" | "ZW"; +export type CountryCodeA2 = 'AD' | 'AE' | 'AF' | 'AG' | 'AI' | 'AL' | 'AM' | 'AO' | 'AQ' | 'AR' | 'AS' | 'AT' | 'AU' | 'AW' | 'AX' | 'AZ' | 'BA' | 'BB' | 'BD' | 'BE' | 'BF' | 'BG' | 'BH' | 'BI' | 'BJ' | 'BL' | 'BM' | 'BN' | 'BO' | 'BQ' | 'BR' | 'BS' | 'BT' | 'BV' | 'BW' | 'BY' | 'BZ' | 'CA' | 'CC' | 'CD' | 'CF' | 'CG' | 'CH' | 'CI' | 'CK' | 'CL' | 'CM' | 'CN' | 'CO' | 'CR' | 'CU' | 'CV' | 'CW' | 'CX' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DK' | 'DM' | 'DO' | 'DZ' | 'EC' | 'EE' | 'EG' | 'EH' | 'ER' | 'ES' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FM' | 'FO' | 'FR' | 'GA' | 'GB' | 'GD' | 'GE' | 'GF' | 'GG' | 'GH' | 'GI' | 'GL' | 'GM' | 'GN' | 'GP' | 'GQ' | 'GR' | 'GS' | 'GT' | 'GU' | 'GW' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IE' | 'IL' | 'IM' | 'IN' | 'IO' | 'IQ' | 'IR' | 'IS' | 'IT' | 'JE' | 'JM' | 'JO' | 'JP' | 'KE' | 'KG' | 'KH' | 'KI' | 'KM' | 'KN' | 'KP' | 'KR' | 'KW' | 'KY' | 'KZ' | 'LA' | 'LB' | 'LC' | 'LI' | 'LK' | 'LR' | 'LS' | 'LT' | 'LU' | 'LV' | 'LY' | 'MA' | 'MC' | 'MD' | 'ME' | 'MF' | 'MG' | 'MH' | 'MK' | 'ML' | 'MM' | 'MN' | 'MO' | 'MP' | 'MQ' | 'MR' | 'MS' | 'MT' | 'MU' | 'MV' | 'MW' | 'MX' | 'MY' | 'MZ' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NL' | 'NO' | 'NP' | 'NR' | 'NU' | 'NZ' | 'OM' | 'PA' | 'PE' | 'PF' | 'PG' | 'PH' | 'PK' | 'PL' | 'PM' | 'PN' | 'PR' | 'PS' | 'PT' | 'PW' | 'PY' | 'QA' | 'RE' | 'RO' | 'RS' | 'RU' | 'RW' | 'SA' | 'SB' | 'SC' | 'SD' | 'SE' | 'SG' | 'SH' | 'SI' | 'SJ' | 'SK' | 'SL' | 'SM' | 'SN' | 'SO' | 'SR' | 'SS' | 'ST' | 'SV' | 'SX' | 'SY' | 'SZ' | 'TC' | 'TD' | 'TF' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TL' | 'TM' | 'TN' | 'TO' | 'TR' | 'TT' | 'TV' | 'TW' | 'TZ' | 'UA' | 'UG' | 'UM' | 'US' | 'UY' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'YE' | 'YT' | 'ZA' | 'ZM' | 'ZW'; + + +export type { + RecommendationsRequest, + RecommendationsRequestRequiredArguments, + RecommendationsResponse, + RecommendationSeed, +} from './endpoints/RecommendationsEndpoints'; + +export type QueryAdditionalTypes = ['episode']; +export type TrackItem = Track | Episode; + +export interface AccessToken { + access_token: string; + token_type: string; + expires_in: number; + refresh_token: string; + expires?: number; +} + +interface AlbumBase { + album_type: string + available_markets: string[] + copyrights: Copyright[] + external_ids: ExternalIds + external_urls: ExternalUrls + genres: string[] + href: string + id: string + images: Image[] + label: string + name: string + popularity: number + release_date: string + release_date_precision: string + restrictions?: Restrictions + total_tracks: number + type: string + uri: string +} + +export interface SimplifiedAlbum extends AlbumBase { + album_group: string + artists: SimplifiedArtist[] +} + +export interface SavedAlbum { + added_at: string + album: Album +} + +export interface Album extends AlbumBase { + artists: Artist[] + tracks: Page +} + +export interface Albums { + albums: Album[] +} + +export interface NewReleases { + albums: Page +} + +export interface Copyright { + text: string + type: string +} + +export interface ExternalIds { + upc: string +} + +export interface Page { + href: string + items: TItemType[] + limit: number + next: string | null + offset: number + previous: string | null + total: number +} + +export interface PlaylistedTrack { + added_at: string + added_by: AddedBy + is_local: boolean + primary_color: string + track: Item +} + +export interface AddedBy { + external_urls: ExternalUrls + href: string + id: string + type: string + uri: string +} + +export interface LinkedFrom { + external_urls: ExternalUrls + href: string + id: string + type: string + uri: string +} + +export interface SimplifiedTrack { + artists: SimplifiedArtist[] + available_markets: string[] + disc_number: number + duration_ms: number + episode: boolean; + explicit: boolean + external_urls: ExternalUrls + href: string + id: string + is_local: boolean + name: string + preview_url: string | null + track: boolean; + track_number: number + type: string + uri: string + is_playable?: boolean + linked_from?: LinkedFrom + restrictions?: Restrictions +} + +export interface SavedTrack { + added_at: string + track: Track +} + +export interface ExternalIds { + isrc: string + ean: string + upc: string +} + +export interface Track extends SimplifiedTrack { + album: SimplifiedAlbum + external_ids: ExternalIds + popularity: number +} + +export interface Tracks { + tracks: Track[] +} + +export interface SimplifiedArtist { + external_urls: ExternalUrls + href: string + id: string + name: string + type: string + uri: string +} + +export interface Artist extends SimplifiedArtist { + followers: Followers + genres: string[] + images: Image[] + popularity: number +} + +export interface Artists { + artists: Artist[] +} + +export interface FollowedArtists { + artists: Page +} + +export interface Followers { + href: string | null + total: number +} + +export interface ExternalUrls { + spotify: string +} + + +interface ResourceTypeToResultKey { + album: 'albums' + artist: 'artists' + track: 'tracks' + playlist: 'playlists' + show: 'shows' + episode: 'episodes' + audiobook: 'audiobooks' +} + +interface SearchResultsMap { + album: SimplifiedAlbum + artist: Artist + track: Track + playlist: PlaylistBase + show: SimplifiedShow + episode: SimplifiedEpisode + audiobook: SimplifiedAudiobook +} + +export type PartialSearchResult = { + [K in ItemTypes as ResourceTypeToResultKey[K]]?: Page +} + +/** + * Makes all properties in SearchResults optional, unless the type T is a tuple (literal array / tuple) of SearchTypes. + */ +export type SearchResults = Pick extends infer R + ? number extends T['length'] + ? R + : Required + : never + +export interface ArtistSearchResult { + href: string; + items: ArtistSearchResultItem[]; +} + +export interface ArtistSearchResultItem { + id: string; + name: string; + popularity: number; + genres: string[]; +} + +export interface TopTracksResult { + tracks: Track[]; +} + +export interface Image { + url: string; + height: number; + width: number; +} + +export interface SimplifiedAudiobook { + authors: Author[] + available_markets: string[] + copyrights: Copyright[] + description: string + edition: string + explicit: boolean + external_urls: ExternalUrls + href: string + html_description: string + id: string + images: Image[] + languages: string[] + media_type: string + name: string + narrators: Narrator[] + publisher: string + total_chapters: number + type: string + uri: string +} + +export interface Audiobook extends SimplifiedAudiobook { + chapters: Page +} + +export interface Audiobooks { + audiobooks: Audiobook[] +} + +export interface Categories { + categories: Page +} + +export interface Episodes { + episodes: Episode[] +} + +export interface Genres { + genres: string[] +} + +export interface Markets { + markets: string[] +} + +export interface Shows { + shows: Show[] +} + +export interface Category { + href: string + icons: Icon[] + id: string + name: string +} + +export interface Icon { + height?: number + url: string + width?: number +} + +export interface Author { + name: string +} + +export interface SimplifiedChapter { + id: string + description: string + chapter_number: number + duration_ms: number + explicit: boolean + images: Image[] + languages: string[] + name: string + audio_preview_url: string + release_date: string + release_date_precision: string + resume_point: ResumePoint + html_description: string + available_markets: Market[] + type: string + uri: string + external_urls: ExternalUrls + href: string + is_playable: boolean + restrictions?: Restrictions +} + +export interface Chapters { + chapters: Chapter[]; +} + +export interface Chapter extends SimplifiedChapter { + audiobook: SimplifiedAudiobook +} + +export interface Restrictions { + reason: string +} + +export interface ResumePoint { + fully_played: boolean + resume_position_ms: number +} + +export interface Narrator { + name: string +} + +export interface SimplifiedEpisode { + audio_preview_url: string + description: string + html_description: string + duration_ms: number + explicit: boolean + external_urls: ExternalUrls + href: string + id: string + images: Image[] + is_externally_hosted: boolean + is_playable: boolean + language: string + languages: string[] + name: string + release_date: string + release_date_precision: string + resume_point: ResumePoint + type: string + uri: string + restrictions: Restrictions +} + +export interface Episode extends SimplifiedEpisode { + show: SimplifiedShow +} + +export interface SavedEpisode { + added_at: string + episode: Episode +} + +export interface SimplifiedShow { + available_markets: string[] + copyrights: Copyright[] + description: string + html_description: string + explicit: boolean + external_urls: ExternalUrls + href: string + id: string + images: Image[] + is_externally_hosted: boolean + languages: string[] + media_type: string + name: string + publisher: string + type: string + uri: string + total_episodes: number +} + +export interface SavedShow { + added_at: string + show: SimplifiedShow +} + +export interface Show extends SimplifiedShow { + episodes: Page +} + +export interface SnapshotReference { + snapshot_id: string +} + +interface PlaylistBase { + collaborative: boolean + description: string + external_urls: ExternalUrls + followers: Followers + href: string + id: string + images: Image[] + name: string + owner: UserReference + primary_color: string + public: boolean + snapshot_id: string + type: string + uri: string +} + +export interface Playlist extends PlaylistBase { + tracks: Page> +} + +export interface FeaturedPlaylists { + message: string; + playlists: Page +} + +export interface SimplifiedPlaylist extends PlaylistBase { + tracks: TrackReference | null +} + +export interface TrackReference { + href: string; + total: number; +} + +export interface UserReference { + display_name: string + external_urls: ExternalUrls + href: string + id: string + type: string + uri: string +} + +export interface User { + display_name: string + email: string + external_urls: ExternalUrls + followers: Followers + href: string + id: string + images: Image[] + type: string + uri: string +} + +export interface UserProfile extends User { + country: string; + explicit_content: { + filter_enabled: boolean, + filter_locked: boolean + }, + product: string; +} + +export interface AudioFeatures { + danceability: number + energy: number + key: number + loudness: number + mode: number + speechiness: number + acousticness: number + instrumentalness: number + liveness: number + valence: number + tempo: number + type: string + id: string + uri: string + track_href: string + analysis_url: string + duration_ms: number + time_signature: number +} + +export interface AudioFeaturesCollection { + audio_features: AudioFeatures[] +} + +export interface AudioAnalysis { + meta: Meta + track: TrackAnalysis + bars: Bar[] + beats: Beat[] + sections: Section[] + segments: Segment[] + tatums: Tatum[] +} + +export interface Meta { + analyzer_version: string + platform: string + detailed_status: string + status_code: number + timestamp: number + analysis_time: number + input_process: string +} + +export interface TrackAnalysis { + num_samples: number + duration: number + sample_md5: string + offset_seconds: number + window_seconds: number + analysis_sample_rate: number + analysis_channels: number + end_of_fade_in: number + start_of_fade_out: number + loudness: number + tempo: number + tempo_confidence: number + time_signature: number + time_signature_confidence: number + key: number + key_confidence: number + mode: number + mode_confidence: number + codestring: string + code_version: number + echoprintstring: string + echoprint_version: number + synchstring: string + synch_version: number + rhythmstring: string + rhythm_version: number +} + +export interface Bar { + start: number + duration: number + confidence: number +} + +export interface Beat { + start: number + duration: number + confidence: number +} + +export interface Section { + start: number + duration: number + confidence: number + loudness: number + tempo: number + tempo_confidence: number + key: number + key_confidence: number + mode: number + mode_confidence: number + time_signature: number + time_signature_confidence: number +} + +export interface Segment { + start: number + duration: number + confidence: number + loudness_start: number + loudness_max: number + loudness_max_time: number + loudness_end: number + pitches: number[] + timbre: number[] +} + +export interface Tatum { + start: number + duration: number + confidence: number +} + +export interface PlaybackState { + device: Device + repeat_state: string + shuffle_state: boolean + context: Context | null + timestamp: number + progress_ms: number + is_playing: boolean + item: TrackItem + currently_playing_type: string + actions: Actions +} + +export interface Device { + id: string | null + is_active: boolean + is_private_session: boolean + is_restricted: boolean + name: string + type: string + volume_percent: number | null +} + +export interface Devices { + devices: Device[] +} + +export interface Context { + type: string + href: string + external_urls: ExternalUrls + uri: string +} + +export interface Actions { + interrupting_playback?: boolean + pausing?: boolean + resuming?: boolean + seeking?: boolean + skipping_next?: boolean + skipping_prev?: boolean + toggling_repeat_context?: boolean + toggling_shuffle?: boolean + toggling_repeat_track?: boolean + transferring_playback?: boolean +} + +export interface RecentlyPlayedTracksPage { + href: string + limit: number + next: string | null + cursors: { + after: string + before: string + } + total: number + items: PlayHistory[] +} + +export interface PlayHistory { + track: Track + played_at: string + context: Context +} + +export interface Queue { + currently_playing: TrackItem | null + queue: TrackItem[] +} diff --git a/node_modules/@spotify/web-api-ts-sdk/tsconfig.cjs.json b/node_modules/@spotify/web-api-ts-sdk/tsconfig.cjs.json new file mode 100644 index 0000000..6efa80d --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/tsconfig.cjs.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "CommonJS", + "outDir": "dist/cjs", + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/tsconfig.json b/node_modules/@spotify/web-api-ts-sdk/tsconfig.json new file mode 100644 index 0000000..e0e9017 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/tsconfig.json @@ -0,0 +1,32 @@ +{ + "include": [ + "./src/**/*.ts" + ], + "exclude": [ + "./src/**/*.test.ts", + "./example/**/*.ts", + "./vite.config.ts", + "./vitest.config.ts", + "./src/test/**/*.ts" + ], + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": [ + "DOM", + "DOM.Iterable", + "ESNext" + ], + "allowJs": true, + "declaration": true, + "skipLibCheck": false, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "rootDir": "./src", + "sourceMap": true, + "strict": true + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/tsconfig.mjs.json b/node_modules/@spotify/web-api-ts-sdk/tsconfig.mjs.json new file mode 100644 index 0000000..45dc8ff --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/tsconfig.mjs.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "ESNext", + "outDir": "dist/mjs", + } +} diff --git a/node_modules/@spotify/web-api-ts-sdk/vite.config.ts b/node_modules/@spotify/web-api-ts-sdk/vite.config.ts new file mode 100644 index 0000000..762409c --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/vite.config.ts @@ -0,0 +1,15 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + root: "example", + server: { + port: 3000, + strictPort: true, + host: true, + }, + plugins: [], + test: { + globals: true, + environment: 'jsdom', + }, +}); diff --git a/node_modules/@spotify/web-api-ts-sdk/vitest.config.ts b/node_modules/@spotify/web-api-ts-sdk/vitest.config.ts new file mode 100644 index 0000000..c4c7223 --- /dev/null +++ b/node_modules/@spotify/web-api-ts-sdk/vitest.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + root: "src", + plugins: [], + test: { + globals: true, + environment: 'jsdom', + }, +}); diff --git a/node_modules/@types/jquery/JQuery.d.ts b/node_modules/@types/jquery/JQuery.d.ts new file mode 100644 index 0000000..4f67525 --- /dev/null +++ b/node_modules/@types/jquery/JQuery.d.ts @@ -0,0 +1,13440 @@ +// tslint:disable:jsdoc-format +// tslint:disable:no-irregular-whitespace + +interface JQuery extends Iterable { + /** + * A string containing the jQuery version number. + * @see \`{@link https://api.jquery.com/jquery-2/#jquery1 }\` + * @since 1.0 + * @example ​ ````Determine if an object is a jQuery object +```javascript +var a = { what: "A regular JS object" }, + b = $( "body" ); +​ +if ( a.jquery ) { // Falsy, since it's undefined + alert( "a is a jQuery object!" ); +} +​ +if ( b.jquery ) { // Truthy, since it's a string + alert( "b is a jQuery object!" ); +} +``` + * @example ​ ````Get the current version of jQuery running on the page +```javascript +alert( "You are running jQuery version: " + $.fn.jquery ); +``` + */ + jquery: string; + /** + * The number of elements in the jQuery object. + * @see \`{@link https://api.jquery.com/length/ }\` + * @since 1.0 + * @example ​ ````Count the divs. Click to add more. +```html + + + + + length demo + + + + +​ +
​ + +​ + + +``` + */ + length: number; + /** + * Create a new jQuery object with elements added to the set of matched elements. + * @param selector A string representing a selector expression to find additional elements to add to the set of matched elements. + * @param context The point in the document at which the selector should begin matching; similar to the context + * argument of the $(selector, context) method. + * @see \`{@link https://api.jquery.com/add/ }\` + * @since 1.4 + */ + add(selector: JQuery.Selector, context: Element): this; + // TODO: The return type should reflect newly selected types. + /** + * Create a new jQuery object with elements added to the set of matched elements. + * @param selector_elements_html_selection _@param_ `selector_elements_html_selection` + *
+ * * `selector` — A string representing a selector expression to find additional elements to add to the set of matched elements.
+ * * `elements` — One or more elements to add to the set of matched elements.
+ * * `html` — An HTML fragment to add to the set of matched elements.
+ * * `selection` — An existing jQuery object to add to the set of matched elements. + * @see \`{@link https://api.jquery.com/add/ }\` + * @since 1.0 + * @since 1.3.2 + * @example ​ ````Finds all divs and makes a border. Then adds all paragraphs to the jQuery object to set their backgrounds yellow. +```html + + + + + add demo + + + + +​ +
+
+
+
+
+
+​ +

Added this... (notice no border)

+​ + +​ + + +``` + * @example ​ ````Adds more elements, matched by the given expression, to the set of matched elements. +```html + + + + + add demo + + + +​ +

Hello

+Hello Again +​ + +​ + + +``` + * @example ​ ````Adds more elements, created on the fly, to the set of matched elements. +```html + + + + + add demo + + + +​ +

Hello

+​ + +​ + + +``` + * @example ​ ````Adds one or more Elements to the set of matched elements. +```html + + + + + add demo + + + +​ +

Hello

+Hello Again +​ + +​ + + +``` + * @example ​ ````Demonstrates how to add (or push) elements to an existing collection +```html + + + + + add demo + + + +​ +

Hello

+Hello Again +​ + +​ + + +``` + */ + add( + selector_elements_html_selection: + | JQuery.Selector + | JQuery.TypeOrArray + | JQuery.htmlString + | JQuery + | JQuery.Node, + ): this; + /** + * Add the previous set of elements on the stack to the current set, optionally filtered by a selector. + * @param selector A string containing a selector expression to match the current set of elements against. + * @see \`{@link https://api.jquery.com/addBack/ }\` + * @since 1.8 + * @example ​ ````The .addBack() method causes the previous set of DOM elements in the traversal stack to be added to the current set. In the first example, the top stack contains the set resulting from .find("p"). In the second example, .addBack() adds the previous set of elements on the stack — in this case $("div.after-addback") — to the current set, selecting both the div and its enclosed paragraphs. +```html + + + + + addBack demo + + + + +​ +
+

Before addBack()

+
+

First Paragraph

+

Second Paragraph

+
+
+
+

After addBack()

+
+

First Paragraph

+

Second Paragraph

+
+
+​ + +​ + + +``` + */ + addBack(selector?: JQuery.Selector): this; + /** + * Adds the specified class(es) to each element in the set of matched elements. + * @param className_function _@param_ `className_function` + *
+ * * `className` — One or more space-separated classes to be added to the class attribute of each matched element.
+ * * `function` — A function returning one or more space-separated class names to be added to the existing class + * name(s). Receives the index position of the element in the set and the existing class name(s) as + * arguments. Within the function, `this` refers to the current element in the set. + * @see \`{@link https://api.jquery.com/addClass/ }\` + * @since 1.0 + * @since 1.4 + * @since 3.3 + * @example ​ ````Add the class "selected" to the matched elements. +```html + + + + + addClass demo + + + + +​ +

Hello

+

and

+

Goodbye

+​ + +​ + + +``` + * @example ​ ````Add the classes "selected" and "highlight" to the matched elements. +```html + + + + + addClass demo + + + + +​ +

Hello

+

and

+

Goodbye

+​ + +​ + + +``` + * @example ​ ````Pass in a function to .addClass() to add the "green" class to a div that already has a "red" class. +```html + + + + + addClass demo + + + + +​ +
This div should be white
+
This div will be green because it now has the "green" and "red" classes. + It would be red if the addClass function failed.
+
This div should be white
+

There are zero green divs

+​ + +​ + + +``` + */ + addClass( + className_function: + | JQuery.TypeOrArray + | ((this: TElement, index: number, currentClassName: string) => string), + ): this; + /** + * Insert content, specified by the parameter, after each element in the set of matched elements. + * @param contents One or more additional DOM elements, text nodes, arrays of elements and text nodes, HTML strings, or + * jQuery objects to insert after each element in the set of matched elements. + * @see \`{@link https://api.jquery.com/after/ }\` + * @since 1.0 + * @example ​ ````Inserts some HTML after all paragraphs. +```html + + + + + after demo + + + + +​ +

I would like to say:

+​ + +​ + + +``` + * @example ​ ````Inserts a DOM element after all paragraphs. +```html + + + + + after demo + + + + +​ +

I would like to say:

+​ + +​ + + +``` + * @example ​ ````Inserts a jQuery object (similar to an Array of DOM Elements) after all paragraphs. +```html + + + + + after demo + + + + +​ +Hello +

I would like to say:

+​ + +​ + + +``` + */ + after(...contents: Array>>): this; + /** + * Insert content, specified by the parameter, after each element in the set of matched elements. + * @param function_functionーhtml _@param_ `function_functionーhtml` + *
+ * * `function` — A function that returns an HTML string, DOM element(s), text node(s), or jQuery object to insert + * after each element in the set of matched elements. Receives the index position of the element in the + * set as an argument. Within the function, `this` refers to the current element in the set.
+ * * `functionーhtml` — A function that returns an HTML string, DOM element(s), text node(s), or jQuery object to insert + * after each element in the set of matched elements. Receives the index position of the element in the + * set and the old HTML value of the element as arguments. Within the function, `this` refers to the + * current element in the set. + * @see \`{@link https://api.jquery.com/after/ }\` + * @since 1.4 + * @since 1.10 + */ + after( + function_functionーhtml: ( + this: TElement, + index: number, + html: string, + ) => JQuery.htmlString | JQuery.TypeOrArray>, + ): this; + /** + * Register a handler to be called when Ajax requests complete. This is an AjaxEvent. + * @param handler The function to be invoked. + * @see \`{@link https://api.jquery.com/ajaxComplete/ }\` + * @since 1.0 + * @example ​ ````Show a message when an Ajax request completes. +```javascript +$( document ).ajaxComplete(function( event, request, settings ) { + $( "#msg" ).append( "
  • Request Complete.
  • " ); +}); +``` + */ + ajaxComplete( + handler: ( + this: Document, + event: JQuery.TriggeredEvent, + jqXHR: JQuery.jqXHR, + ajaxOptions: JQuery.AjaxSettings, + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + ) => void | false, + ): this; + /** + * Register a handler to be called when Ajax requests complete with an error. This is an Ajax Event. + * @param handler The function to be invoked. + * @see \`{@link https://api.jquery.com/ajaxError/ }\` + * @since 1.0 + * @example ​ ````Show a message when an Ajax request fails. +```javascript +$( document ).ajaxError(function( event, request, settings ) { + $( "#msg" ).append( "
  • Error requesting page " + settings.url + "
  • " ); +}); +``` + */ + ajaxError( + handler: ( + this: Document, + event: JQuery.TriggeredEvent, + jqXHR: JQuery.jqXHR, + ajaxSettings: JQuery.AjaxSettings, + thrownError: string, + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + ) => void | false, + ): this; + /** + * Attach a function to be executed before an Ajax request is sent. This is an Ajax Event. + * @param handler The function to be invoked. + * @see \`{@link https://api.jquery.com/ajaxSend/ }\` + * @since 1.0 + * @example ​ ````Show a message before an Ajax request is sent. +```javascript +$( document ).ajaxSend(function( event, request, settings ) { + $( "#msg" ).append( "
  • Starting request at " + settings.url + "
  • " ); +}); +``` + */ + ajaxSend( + handler: ( + this: Document, + event: JQuery.TriggeredEvent, + jqXHR: JQuery.jqXHR, + ajaxOptions: JQuery.AjaxSettings, + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + ) => void | false, + ): this; + /** + * Register a handler to be called when the first Ajax request begins. This is an Ajax Event. + * @param handler The function to be invoked. + * @see \`{@link https://api.jquery.com/ajaxStart/ }\` + * @since 1.0 + * @example ​ ````Show a loading message whenever an Ajax request starts (and none is already active). +```javascript +$( document ).ajaxStart(function() { + $( "#loading" ).show(); +}); +``` + */ + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + ajaxStart(handler: (this: Document) => void | false): this; + /** + * Register a handler to be called when all Ajax requests have completed. This is an Ajax Event. + * @param handler The function to be invoked. + * @see \`{@link https://api.jquery.com/ajaxStop/ }\` + * @since 1.0 + * @example ​ ````Hide a loading message after all the Ajax requests have stopped. +```javascript +$( document ).ajaxStop(function() { + $( "#loading" ).hide(); +}); +``` + */ + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + ajaxStop(handler: (this: Document) => void | false): this; + /** + * Attach a function to be executed whenever an Ajax request completes successfully. This is an Ajax Event. + * @param handler The function to be invoked. + * @see \`{@link https://api.jquery.com/ajaxSuccess/ }\` + * @since 1.0 + * @example ​ ````Show a message when an Ajax request completes successfully. +```javascript +$( document ).ajaxSuccess(function( event, request, settings ) { + $( "#msg" ).append( "
  • Successful Request!
  • " ); +}); +``` + */ + ajaxSuccess( + handler: ( + this: Document, + event: JQuery.TriggeredEvent, + jqXHR: JQuery.jqXHR, + ajaxOptions: JQuery.AjaxSettings, + data: JQuery.PlainObject, + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + ) => void | false, + ): this; + /** + * Perform a custom animation of a set of CSS properties. + * @param properties An object of CSS properties and values that the animation will move toward. + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/animate/ }\` + * @since 1.0 + * @example ​ ````An example of using an 'easing' function to provide a different style of animation. This will only work if you have a plugin that provides this easing function. Note, this code will do nothing unless the paragraph element is hidden. +```javascript +$( "p" ).animate({ + opacity: "show" +}, "slow", "easein" ); +``` + * @example ​ ````Animate all paragraphs and execute a callback function when the animation is complete. The first argument is an object of CSS properties, the second specifies that the animation should take 1000 milliseconds to complete, the third states the easing type, and the fourth argument is an anonymous callback function. +```javascript +$( "p" ).animate({ + height: 200, + width: 400, + opacity: 0.5 +}, 1000, "linear", function() { + alert( "all done" ); +}); +``` + */ + animate( + properties: JQuery.PlainObject, + duration: JQuery.Duration, + easing: string, + complete?: (this: TElement) => void, + ): this; + /** + * Perform a custom animation of a set of CSS properties. + * @param properties An object of CSS properties and values that the animation will move toward. + * @param duration_easing _@param_ `duration_easing` + *
    + * * `duration` — A string or number determining how long the animation will run.
    + * * `easing` — A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/animate/ }\` + * @since 1.0 + * @example ​ ````Click the button to animate the div with a number of different properties. +```html + + + + + animate demo + + + + +​ + +
    Hello!
    +​ + +​ + + +``` + * @example ​ ````Animates a div's left property with a relative value. Click several times on the buttons to see the relative animations queued up. +```html + + + + + animate demo + + + + +​ + + +
    +​ + +​ + + +``` + * @example ​ ````Animate all paragraphs to toggle both height and opacity, completing the animation within 600 milliseconds. +```javascript +$( "p" ).animate({ + height: "toggle", + opacity: "toggle" +}, "slow" ); +``` + * @example ​ ````Animate all paragraphs to a left style of 50 and opacity of 1 (opaque, visible), completing the animation within 500 milliseconds. +```javascript +$( "p" ).animate({ + left: 50, + opacity: 1 +}, 500 ); +``` + */ + animate( + properties: JQuery.PlainObject, + duration_easing: JQuery.Duration | string, + complete?: (this: TElement) => void, + ): this; + /** + * Perform a custom animation of a set of CSS properties. + * @param properties An object of CSS properties and values that the animation will move toward. + * @param options A map of additional options to pass to the method. + * @see \`{@link https://api.jquery.com/animate/ }\` + * @since 1.0 + * @example ​ ````The first button shows how an unqueued animation works. It expands the div out to 90% width while the font-size is increasing. Once the font-size change is complete, the border animation will begin. + +The second button starts a traditional chained animation, where each animation will start once the previous animation on the element has completed. +```html + + + + + animate demo + + + + +​ + + + + +
    Block1
    +
    Block2
    +​ + +​ + + +``` + * @example ​ ````Animates the first div's left property and synchronizes the remaining divs, using the step function to set their left properties at each stage of the animation. +```html + + + + + animate demo + + + + +​ +

    +
    +
    +
    +
    +
    +
    +​ + +​ + + +``` + * @example ​ ````Animate the left and opacity style properties of all paragraphs; run the animation outside the queue, so that it will automatically start without waiting for its turn. +```javascript +$( "p" ).animate({ + left: "50px", + opacity: 1 +}, { + duration: 500, + queue: false +}); +``` + * @example ​ ````Animates all paragraphs to toggle both height and opacity, completing the animation within 600 milliseconds. +```javascript +$( "p" ).animate({ + height: "toggle", + opacity: "toggle" +}, { + duration: "slow" +}); +``` + * @example ​ ````Use an easing function to provide a different style of animation. This will only work if you have a plugin that provides this easing function. +```javascript +$( "p" ).animate({ + opacity: "show" +}, { + duration: "slow", + easing: "easein" +}); +``` + */ + animate(properties: JQuery.PlainObject, options: JQuery.EffectsOptions): this; + /** + * Perform a custom animation of a set of CSS properties. + * @param properties An object of CSS properties and values that the animation will move toward. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/animate/ }\` + * @since 1.0 + */ + animate(properties: JQuery.PlainObject, complete?: (this: TElement) => void): this; + /** + * Insert content, specified by the parameter, to the end of each element in the set of matched elements. + * @param contents One or more additional DOM elements, text nodes, arrays of elements and text nodes, HTML strings, or + * jQuery objects to insert at the end of each element in the set of matched elements. + * @see \`{@link https://api.jquery.com/append/ }\` + * @since 1.0 + * @example ​ ````Appends some HTML to all paragraphs. +```html + + + + + append demo + + + + +​ +

    I would like to say:

    +​ + +​ + + +``` + * @example ​ ````Appends an Element to all paragraphs. +```html + + + + + append demo + + + + +​ +

    I would like to say:

    +​ + +​ + + +``` + * @example ​ ````Appends a jQuery object (similar to an Array of DOM Elements) to all paragraphs. +```html + + + + + append demo + + + + +​ +Hello world!!! +

    I would like to say:

    +​ + +​ + + +``` + */ + append(...contents: Array>>): this; + /** + * Insert content, specified by the parameter, to the end of each element in the set of matched elements. + * @param funŃtion A function that returns an HTML string, DOM element(s), text node(s), or jQuery object to insert at + * the end of each element in the set of matched elements. Receives the index position of the element + * in the set and the old HTML value of the element as arguments. Within the function, `this` refers to + * the current element in the set. + * @see \`{@link https://api.jquery.com/append/ }\` + * @since 1.4 + */ + append( + funŃtion: ( + this: TElement, + index: number, + html: string, + ) => JQuery.htmlString | JQuery.TypeOrArray>, + ): this; + /** + * Insert every element in the set of matched elements to the end of the target. + * @param target A selector, element, HTML string, array of elements, or jQuery object; the matched set of elements + * will be inserted at the end of the element(s) specified by this parameter. + * @see \`{@link https://api.jquery.com/appendTo/ }\` + * @since 1.0 + * @example ​ ````Append all spans to the element with the ID "foo" (Check append() documentation for more examples) +```html + + + + + appendTo demo + + + + +​ +I have nothing more to say... +​ +
    FOO!
    +​ + +​ + + +``` + */ + appendTo( + target: JQuery.Selector | JQuery.htmlString | JQuery.TypeOrArray | JQuery, + ): this; + /** + * Set one or more attributes for the set of matched elements. + * @param attributeName The name of the attribute to set. + * @param value_function _@param_ `value_function` + *
    + * * `value` — A value to set for the attribute. If `null`, the specified attribute will be removed (as in \`{@link removeAttr .removeAttr()}`).
    + * * `function` — A function returning the value to set. `this` is the current element. Receives the index position of + * the element in the set and the old attribute value as arguments. + * @see \`{@link https://api.jquery.com/attr/ }\` + * @since 1.0 + * @since 1.1 + * @example ​ ````Set the id for divs based on the position in the page. +```html + + + + + attr demo + + + + +​ +
    Zero-th
    +
    First
    +
    Second
    +​ + +​ + + +``` + * @example ​ ````Set the src attribute from title attribute on the image. +```html + + + + + attr demo + + + +​ + +​ + +​ + + +``` + */ + attr( + attributeName: string, + value_function: + | string + | number + | null + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + | ((this: TElement, index: number, attr: string) => string | number | void | undefined), + ): this; + /** + * Set one or more attributes for the set of matched elements. + * @param attributes An object of attribute-value pairs to set. + * @see \`{@link https://api.jquery.com/attr/ }\` + * @since 1.0 + * @example ​ ````Set some attributes for all <img>s in the page. +```html + + + + + attr demo + + + + +​ + + + +​ +
    Attribute of Ajax
    +​ + +​ + + +``` + */ + attr(attributes: JQuery.PlainObject): this; + /** + * Get the value of an attribute for the first element in the set of matched elements. + * @param attributeName The name of the attribute to get. + * @see \`{@link https://api.jquery.com/attr/ }\` + * @since 1.0 + * @example ​ ````Display the checked attribute and property of a checkbox as it changes. +```html + + + + + attr demo + + + + +​ + + +

    +​ + +​ + + +``` + * @example ​ ````Find the title attribute of the first <em> in the page. +```html + + + + + attr demo + + + + +​ +

    Once there was a large dinosaur...

    +​ +The title of the emphasis is:
    +​ + +​ + + +``` + */ + attr(attributeName: string): string | undefined; + /** + * Insert content, specified by the parameter, before each element in the set of matched elements. + * @param contents One or more additional DOM elements, text nodes, arrays of elements and text nodes, HTML strings, or + * jQuery objects to insert before each element in the set of matched elements. + * @see \`{@link https://api.jquery.com/before/ }\` + * @since 1.0 + * @example ​ ````Inserts some HTML before all paragraphs. +```html + + + + + before demo + + + + +​ +

    is what I said...

    +​ + +​ + + +``` + * @example ​ ````Inserts a DOM element before all paragraphs. +```html + + + + + before demo + + + + +​ +

    is what I said...

    +​ + +​ + + +``` + * @example ​ ````Inserts a jQuery object (similar to an Array of DOM Elements) before all paragraphs. +```html + + + + + before demo + + + + +​ +

    is what I said...

    Hello +​ + +​ + + +``` + */ + before(...contents: Array>>): this; + /** + * Insert content, specified by the parameter, before each element in the set of matched elements. + * @param function_functionーhtml _@param_ `function_functionーhtml` + *
    + * * `function` — A function that returns an HTML string, DOM element(s), text node(s), or jQuery object to insert + * before each element in the set of matched elements. Receives the index position of the element in + * the set as an argument. Within the function, `this` refers to the current element in the set.
    + * * `functionーhtml` — A function that returns an HTML string, DOM element(s), text node(s), or jQuery object to insert + * before each element in the set of matched elements. Receives the index position of the element in + * the set and the old HTML value of the element as arguments. Within the function, `this` refers to the + * current element in the set. + * @see \`{@link https://api.jquery.com/before/ }\` + * @since 1.4 + * @since 1.10 + */ + before( + function_functionーhtml: ( + this: TElement, + index: number, + html: string, + ) => JQuery.htmlString | JQuery.TypeOrArray>, + ): this; + // [bind() overloads] https://github.com/jquery/api.jquery.com/issues/1048 + /** + * Attach a handler to an event for the elements. + * @param eventType A string containing one or more DOM event types, such as "click" or "submit," or custom event names. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/bind/ }\` + * @since 1.0 + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.0. Use \`{@link on }\`. + * + * **Cause**: These event binding methods have been deprecated in favor of the `.on()` and `.off()` methods which can handle both delegated and direct event binding. Although the older methods are still present in jQuery 3.0, they may be removed as early as the next major-version update. + * + * **Solution**: Change the method call to use `.on()` or `.off()`, the documentation for the old methods include specific instructions. In general, the `.bind()` and `.unbind()` methods can be renamed directly to `.on()` and `.off()` respectively since the argument orders are identical. + */ + bind( + eventType: TType, + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Attach a handler to an event for the elements. + * @param eventType A string containing one or more DOM event types, such as "click" or "submit," or custom event names. + * @param handler_preventBubble _@param_ `handler_preventBubble` + *
    + * * `handler` — A function to execute each time the event is triggered.
    + * * `preventBubble` — Setting the third argument to false will attach a function that prevents the default action from + * occurring and stops the event from bubbling. The default is `true`. + * @see \`{@link https://api.jquery.com/bind/ }\` + * @since 1.0 + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.0. Use \`{@link on }\`. + * + * **Cause**: These event binding methods have been deprecated in favor of the `.on()` and `.off()` methods which can handle both delegated and direct event binding. Although the older methods are still present in jQuery 3.0, they may be removed as early as the next major-version update. + * + * **Solution**: Change the method call to use `.on()` or `.off()`, the documentation for the old methods include specific instructions. In general, the `.bind()` and `.unbind()` methods can be renamed directly to `.on()` and `.off()` respectively since the argument orders are identical. + * @example ​ ````Handle click and double-click for the paragraph. Note: the coordinates are window relative, so in this case relative to the demo iframe. +```html + + + + + bind demo + + + + +​ +

    Click or double click here.

    + +​ + +​ + + +``` + * @example ​ ````To display each paragraph's text in an alert box whenever it is clicked: +```javascript +$( "p" ).bind( "click", function() { + alert( $( this ).text() ); +}); +``` + * @example ​ ````Cancel a default action and prevent it from bubbling up by returning false: +```javascript +$( "form" ).bind( "submit", function() { + return false; +}) +``` + * @example ​ ````Cancel only the default action by using the .preventDefault() method. +```javascript +$( "form" ).bind( "submit", function( event ) { + event.preventDefault(); +}); +``` + * @example ​ ````Stop an event from bubbling without preventing the default action by using the .stopPropagation() method. +```javascript +$( "form" ).bind( "submit", function( event ) { + event.stopPropagation(); +}); +``` + * @example ​ ````Bind custom events. +```html + + + + + bind demo + + + + +​ +

    Has an attached custom event.

    + + +​ + +​ + + +``` + */ + bind( + eventType: TType, + handler_preventBubble: + | JQuery.TypeEventHandler + | false + | null + | undefined, + ): this; + /** + * Attach a handler to an event for the elements. + * @param events An object containing one or more DOM event types and functions to execute for them. + * @see \`{@link https://api.jquery.com/bind/ }\` + * @since 1.4 + * @deprecated ​ Deprecated since 3.0. Use \`{@link on }\`. + * + * **Cause**: These event binding methods have been deprecated in favor of the `.on()` and `.off()` methods which can handle both delegated and direct event binding. Although the older methods are still present in jQuery 3.0, they may be removed as early as the next major-version update. + * + * **Solution**: Change the method call to use `.on()` or `.off()`, the documentation for the old methods include specific instructions. In general, the `.bind()` and `.unbind()` methods can be renamed directly to `.on()` and `.off()` respectively since the argument orders are identical. + * @example ​ ````Bind multiple events simultaneously. +```javascript +$( "div.test" ).bind({ + click: function() { + $( this ).addClass( "active" ); + }, + mouseenter: function() { + $( this ).addClass( "inside" ); + }, + mouseleave: function() { + $( this ).removeClass( "inside" ); + } +}); +``` + */ + bind(events: JQuery.TypeEventHandlers): this; + /** + * Bind an event handler to the "blur" JavaScript event, or trigger that event on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/blur-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.blur(fn)` use `.on("blur", fn)`. Instead of `.blur()` use `.trigger("blur")`. + */ + blur(eventData: TData, handler: JQuery.TypeEventHandler): this; + /** + * Bind an event handler to the "blur" JavaScript event, or trigger that event on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/blur-shorthand/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.blur(fn)` use `.on("blur", fn)`. Instead of `.blur()` use `.trigger("blur")`. + * @example ​ ````To trigger the blur event on all paragraphs: +```javascript +$( "p" ).blur(); +``` + */ + blur( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Bind an event handler to the "change" JavaScript event, or trigger that event on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/change-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.change(fn)` use `.on("change", fn)`. Instead of `.change()` use `.trigger("change")`. + */ + change( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "change" JavaScript event, or trigger that event on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/change-shorthand/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.change(fn)` use `.on("change", fn)`. Instead of `.change()` use `.trigger("change")`. + * @example ​ ````Attaches a change event to the select that gets the text for each selected option and writes them in the div. It then triggers the event for the initial text draw. +```html + + + + + change demo + + + + +​ + +
    +​ + +​ + + +``` + * @example ​ ````To add a validity test to all text input elements: +```javascript +$( "input[type='text']" ).change(function() { + // Check input( $( this ).val() ) for validity here +}); +``` + */ + change( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Get the children of each element in the set of matched elements, optionally filtered by a selector. + * @param selector A string containing a selector expression to match elements against. + * @see \`{@link https://api.jquery.com/children/ }\` + * @since 1.0 + * @example ​ ````Find all children of the clicked element. +```html + + + + + children demo + + + + +​ +
    +
    +

    This is the way we + write the demo,

    +
    +​ +
    + write the demo, demo, +
    +​ +
    + This the way we write the demo so + in +
    +​ +

    + the morning. + Found 0 children in TAG. +

    +
    +​ + +​ + + +``` + * @example ​ ````Find all children of each div. +```html + + + + + children demo + + + + +​ +

    Hello (this is a paragraph)

    +​ +
    Hello Again (this span is a child of the a div)
    +

    And Again (in another paragraph)

    +​ +
    And One Last Time (most text directly in a div)
    +​ + +​ + + +``` + * @example ​ ````Find all children with a class "selected" of each div. +```html + + + + + children demo + + + + +​ +
    + Hello +

    Hello Again

    +
    And Again
    +

    And One Last Time

    +
    +​ + +​ + + +``` + */ + children(selector: K): JQuery; + children(selector: K): JQuery; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + children(selector?: JQuery.Selector): JQuery; + /** + * Remove from the queue all items that have not yet been run. + * @param queueName A string containing the name of the queue. Defaults to fx, the standard effects queue. + * @see \`{@link https://api.jquery.com/clearQueue/ }\` + * @since 1.4 + * @example ​ ````Empty the queue. +```html + + + + + clearQueue demo + + + + +​ + + +
    +​ + +​ + + +``` + */ + clearQueue(queueName?: string): this; + /** + * Bind an event handler to the "click" JavaScript event, or trigger that event on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/click/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`. + */ + click( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "click" JavaScript event, or trigger that event on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/click/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`. + * @example ​ ````Hide paragraphs on a page when they are clicked: +```html + + + + + click demo + + + + +​ +

    First Paragraph

    +

    Second Paragraph

    +

    Yet one more Paragraph

    +​ + +​ + + +``` + * @example ​ ````Trigger the click event on all of the paragraphs on the page: +```javascript +$( "p" ).click(); +``` + */ + click( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Create a deep copy of the set of matched elements. + * @param withDataAndEvents A Boolean indicating whether event handlers and data should be copied along with the elements. The + * default value is false. *In jQuery 1.5.0 the default value was incorrectly true; it was changed back + * to false in 1.5.1 and up. + * @param deepWithDataAndEvents A Boolean indicating whether event handlers and data for all children of the cloned element should + * be copied. By default its value matches the first argument's value (which defaults to false). + * @see \`{@link https://api.jquery.com/clone/ }\` + * @since 1.0 + * @since 1.5 + * @example ​ ````Clones all b elements (and selects the clones) and prepends them to all paragraphs. +```html + + + + + clone demo + + + +​ +Hello

    , how are you?

    +​ + +​ + + +``` + */ + clone(withDataAndEvents?: boolean, deepWithDataAndEvents?: boolean): this; + /** + * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree. + * @param selector A string containing a selector expression to match elements against. + * @param context A DOM element within which a matching element may be found. + * @see \`{@link https://api.jquery.com/closest/ }\` + * @since 1.4 + */ + closest(selector: K, context: Element): JQuery; + closest(selector: K, context: Element): JQuery; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + closest(selector: JQuery.Selector, context: Element): JQuery; + /** + * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree. + * @param selector_selection_element _@param_ `selector_selection_element` + *
    + * * `selector` — A string containing a selector expression to match elements against.
    + * * `selection` — A jQuery object to match elements against.
    + * * `element` — An element to match elements against. + * @see \`{@link https://api.jquery.com/closest/ }\` + * @since 1.3 + * @since 1.6 + * @example ​ ````Show how event delegation can be done with closest. The closest list element toggles a yellow background when it or its descendent is clicked. +```html + + + + + closest demo + + + + +​ +
      +
    • Click me!
    • +
    • You can also Click me!
    • +
    +​ + +​ + + +``` + * @example ​ ````Pass a jQuery object to closest. The closest list element toggles a yellow background when it or its descendent is clicked. +```html + + + + + closest demo + + + + +​ +
      +
    • Click me!
    • +
    • You can also Click me!
    • +
    +​ + +​ + + +``` + */ + closest( + selector_selection_element: K | JQuery, + ): JQuery; + closest( + selector_selection_element: K | JQuery, + ): JQuery; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + closest(selector_selection_element: JQuery.Selector): JQuery; + closest(selector_selection_element: E | JQuery): JQuery; + /** + * Get the children of each element in the set of matched elements, including text and comment nodes. + * @see \`{@link https://api.jquery.com/contents/ }\` + * @since 1.2 + * @example ​ ````Find all the text nodes inside a paragraph and wrap them with a bold tag. +```html + + + + + contents demo + + + +​ +

    Hello John, how are you doing?

    +​ + +​ + + +``` + * @example ​ ````Change the background color of links inside of an iframe. +```html + + + + + contents demo + + + +​ + +​ + +​ + + +``` + */ + contents(): JQuery; + /** + * Bind an event handler to the "contextmenu" JavaScript event, or trigger that event on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/contextmenu-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.contextmenu(fn)` use `.on("contextmenu", fn)`. Instead of `.contextmenu()` use `.trigger("contextmenu")`. + */ + contextmenu( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "contextmenu" JavaScript event, or trigger that event on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/contextmenu-shorthand/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.contextmenu(fn)` use `.on("contextmenu", fn)`. Instead of `.contextmenu()` use `.trigger("contextmenu")`. + * @example ​ ````To show a "Hello World!" alert box when the contextmenu event is triggered on a paragraph on the page: +```javascript +$( "p" ).contextmenu(function() { + alert( "Hello World!" ); +}); +``` + * @example ​ ````Right click to toggle background color. +```html + + + + + contextmenu demo + + + + +​ +
    +Right click the block +​ + +​ + + +``` + */ + contextmenu( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Set one or more CSS properties for the set of matched elements. + * @param propertyName A CSS property name. + * @param value_function _@param_ `value_function` + *
    + * * `value` — A value to set for the property.
    + * * `function` — A function returning the value to set. `this` is the current element. Receives the index position of + * the element in the set and the old value as arguments. + * @see \`{@link https://api.jquery.com/css/ }\` + * @since 1.0 + * @since 1.4 + * @example ​ ````Change the color of any paragraph to red on mouseover event. +```html + + + + + css demo + + + + +​ +

    Just roll the mouse over me.

    +​ +

    Or me to see a color change.

    +​ + +​ + + +``` + * @example ​ ````Increase the width of #box by 200 pixels the first time it is clicked. +```html + + + + + css demo + + + + +​ +
    Click me to grow
    +​ + +​ + + +``` + * @example ​ ````Highlight a clicked word in the paragraph. +```html + + + + + css demo + + + + +​ +

    + Once upon a time there was a man + who lived in a pizza parlor. This + man just loved pizza and ate it all + the time. He went on to be the + happiest man in the world. The end. +

    +​ + +​ + + +``` + */ + css( + propertyName: string, + value_function: + | string + | number + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + | ((this: TElement, index: number, value: string) => string | number | void | undefined), + ): this; + /** + * Set one or more CSS properties for the set of matched elements. + * @param properties An object of property-value pairs to set. + * @see \`{@link https://api.jquery.com/css/ }\` + * @since 1.0 + * @example ​ ````Change the font weight and background color on mouseenter and mouseleave. +```html + + + + + css demo + + + + +​ +

    Move the mouse over a paragraph.

    +

    Like this one or the one above.

    +​ + +​ + + +``` + * @example ​ ````Increase the size of a div when you click it. +```html + + + + + css demo + + + + +​ +
    click
    +
    click
    +​ + +​ + + +``` + */ + css( + properties: JQuery.PlainObject< + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + string | number | ((this: TElement, index: number, value: string) => string | number | void | undefined) + >, + ): this; + /** + * Get the computed style properties for the first element in the set of matched elements. + * @param propertyName A CSS property. + * @see \`{@link https://api.jquery.com/css/ }\` + * @since 1.0 + * @example ​ ````Get the background color of a clicked div. +```html + + + + + css demo + + + + +​ +  +
    +
    +
    +
    +​ + +​ + + +``` + */ + css(propertyName: string): string; + /** + * Get the computed style properties for the first element in the set of matched elements. + * @param propertyNames An array of one or more CSS properties. + * @see \`{@link https://api.jquery.com/css/ }\` + * @since 1.9 + * @example ​ ````Get the width, height, text color, and background color of a clicked div. +```html + + + + + css demo + + + + +​ +

     

    +
    1
    +
    2
    +
    3
    +
    4
    +​ + +​ + + +``` + */ + css(propertyNames: string[]): JQuery.PlainObject; + /** + * Store arbitrary data associated with the matched elements. + * @param key A string naming the piece of data to set. + * @param value The new data value; this can be any Javascript type except `undefined`. + * @see \`{@link https://api.jquery.com/data/ }\` + * @since 1.2.3 + * @example ​ ````Store then retrieve a value from the div element. +```html + + + + + data demo + + + + +​ +
    + The values stored were + + and + +
    +​ + +​ + + +``` + */ + data(key: string, value: string | number | boolean | symbol | object | null): this; + /** + * Store arbitrary data associated with the matched elements. + * @param obj An object of key-value pairs of data to update. + * @see \`{@link https://api.jquery.com/data/ }\` + * @since 1.4.3 + */ + data(obj: JQuery.PlainObject): this; + /** + * Return the value at the named data store for the first element in the jQuery collection, as set by data(name, value) or by an HTML5 data-* attribute. + * @param key Name of the data stored. + * @param value `undefined` is not recognized as a data value. Calls such as `.data( "name", undefined )` + * will return the jQuery object that it was called on, allowing for chaining. + * @see \`{@link https://api.jquery.com/data/ }\` + * @since 1.2.3 + */ + // `unified-signatures` is disabled so that behavior when passing `undefined` to `value` can be documented. Unifying the signatures + // results in potential confusion for users from an unexpected parameter. + // tslint:disable-next-line:unified-signatures + data(key: string, value: undefined): any; + /** + * Return the value at the named data store for the first element in the jQuery collection, as set by data(name, value) or by an HTML5 data-* attribute. + * @param key Name of the data stored. + * @see \`{@link https://api.jquery.com/data/ }\` + * @since 1.2.3 + * @example ​ ````Get the data named "blah" stored at for an element. +```html + + + + + data demo + + + + +​ +
    A div
    + + + + +

    The "blah" value of this div is ?

    +​ + +​ + + +``` + */ + data(key: string): any; + /** + * Return the value at the named data store for the first element in the jQuery collection, as set by data(name, value) or by an HTML5 data-* attribute. + * @see \`{@link https://api.jquery.com/data/ }\` + * @since 1.4 + */ + data(): JQuery.PlainObject; + /** + * Bind an event handler to the "dblclick" JavaScript event, or trigger that event on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/dblclick-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.dblclick(fn)` use `.on("dblclick", fn)`. Instead of `.dblclick()` use `.trigger("dblclick")`. + */ + dblclick( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "dblclick" JavaScript event, or trigger that event on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/dblclick-shorthand/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.dblclick(fn)` use `.on("dblclick", fn)`. Instead of `.dblclick()` use `.trigger("dblclick")`. + * @example ​ ````To bind a "Hello World!" alert box to the dblclick event on every paragraph on the page: +```javascript +$( "p" ).dblclick(function() { + alert( "Hello World!" ); +}); +``` + * @example ​ ````Double click to toggle background color. +```html + + + + + dblclick demo + + + + +​ +
    +Double click the block +​ + +​ + + +``` + */ + dblclick( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Set a timer to delay execution of subsequent items in the queue. + * @param duration An integer indicating the number of milliseconds to delay execution of the next item in the queue. + * @param queueName A string containing the name of the queue. Defaults to fx, the standard effects queue. + * @see \`{@link https://api.jquery.com/delay/ }\` + * @since 1.4 + * @example ​ ````Animate the hiding and showing of two divs, delaying the first before showing it. +```html + + + + + delay demo + + + + +​ +

    +
    +
    +​ + +​ + + +``` + */ + delay(duration: JQuery.Duration, queueName?: string): this; + /** + * Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements. + * @param selector A selector to filter the elements that trigger the event. + * @param eventType A string containing one or more space-separated JavaScript event types, such as "click" or + * "keydown," or custom event names. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/delegate/ }\` + * @since 1.4.2 + * @deprecated ​ Deprecated since 3.0. Use \`{@link on }\`. + * + * **Cause**: These event binding methods have been deprecated in favor of the `.on()` and `.off()` methods which can handle both delegated and direct event binding. Although the older methods are still present in jQuery 3.0, they may be removed as early as the next major-version update. + * + * **Solution**: Change the method call to use `.on()` or `.off()`, the documentation for the old methods include specific instructions. In general, the `.bind()` and `.unbind()` methods can be renamed directly to `.on()` and `.off()` respectively since the argument orders are identical. + */ + delegate( + selector: JQuery.Selector, + eventType: TType, + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements. + * @param selector A selector to filter the elements that trigger the event. + * @param eventType A string containing one or more space-separated JavaScript event types, such as "click" or + * "keydown," or custom event names. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/delegate/ }\` + * @since 1.4.2 + * @deprecated ​ Deprecated since 3.0. Use \`{@link on }\`. + * + * **Cause**: These event binding methods have been deprecated in favor of the `.on()` and `.off()` methods which can handle both delegated and direct event binding. Although the older methods are still present in jQuery 3.0, they may be removed as early as the next major-version update. + * + * **Solution**: Change the method call to use `.on()` or `.off()`, the documentation for the old methods include specific instructions. In general, the `.bind()` and `.unbind()` methods can be renamed directly to `.on()` and `.off()` respectively since the argument orders are identical. + * @example ​ ````Click a paragraph to add another. Note that .delegate() attaches a click event handler to all paragraphs - even new ones. +```html + + + + + delegate demo + + + + +​ +

    Click me!

    +​ + +​ + +​ + + +``` + * @example ​ ````To display each paragraph's text in an alert box whenever it is clicked: +```javascript +$( "body" ).delegate( "p", "click", function() { + alert( $( this ).text() ); +}); +``` + * @example ​ ````To cancel a default action and prevent it from bubbling up, return false: +```javascript +$( "body" ).delegate( "a", "click", function() { + return false; +}); +``` + * @example ​ ````To cancel only the default action by using the preventDefault method. +```javascript +$( "body" ).delegate( "a", "click", function( event ) { + event.preventDefault(); +}); +``` + * @example ​ ````Can bind custom events too. +```html + + + + + delegate demo + + + + +​ +

    Has an attached custom event.

    + + +​ + +​ + + +``` + */ + delegate( + selector: JQuery.Selector, + eventType: TType, + handler: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements. + * @param selector A selector to filter the elements that trigger the event. + * @param events A plain object of one or more event types and functions to execute for them. + * @see \`{@link https://api.jquery.com/delegate/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.0. Use \`{@link on }\`. + * + * **Cause**: These event binding methods have been deprecated in favor of the `.on()` and `.off()` methods which can handle both delegated and direct event binding. Although the older methods are still present in jQuery 3.0, they may be removed as early as the next major-version update. + * + * **Solution**: Change the method call to use `.on()` or `.off()`, the documentation for the old methods include specific instructions. In general, the `.bind()` and `.unbind()` methods can be renamed directly to `.on()` and `.off()` respectively since the argument orders are identical. + */ + delegate(selector: JQuery.Selector, events: JQuery.TypeEventHandlers): this; + /** + * Execute the next function on the queue for the matched elements. + * @param queueName A string containing the name of the queue. Defaults to fx, the standard effects queue. + * @see \`{@link https://api.jquery.com/dequeue/ }\` + * @since 1.2 + * @example ​ ````Use dequeue to end a custom queue function which allows the queue to keep going. +```html + + + + + dequeue demo + + + + +​ + +
    +​ + +​ + + +``` + */ + dequeue(queueName?: string): this; + /** + * Remove the set of matched elements from the DOM. + * @param selector A selector expression that filters the set of matched elements to be removed. + * @see \`{@link https://api.jquery.com/detach/ }\` + * @since 1.4 + * @example ​ ````Detach all paragraphs from the DOM +```html + + + + + detach demo + + + + +​ +

    Hello

    +how are +

    you?

    + +​ + +​ + + +``` + */ + detach(selector?: JQuery.Selector): this; + /** + * Iterate over a jQuery object, executing a function for each matched element. + * @param funŃtion A function to execute for each matched element. + * @see \`{@link https://api.jquery.com/each/ }\` + * @since 1.0 + * @example ​ ````Iterate over three divs and sets their color property. +```html + + + + + each demo + + + + +​ +
    Click here
    +
    to iterate through
    +
    these divs.
    +​ + +​ + + +``` + * @example ​ ````To access a jQuery object instead of the regular DOM element, use $( this ). For example: +```html + + + + + each demo + + + + +​ +To do list: (click here to change) +
      +
    • Eat
    • +
    • Sleep
    • +
    • Be merry
    • +
    +​ + +​ + + +``` + * @example ​ ````Use return false to break out of each() loops early. +```html + + + + + each demo + + + + +​ + + +
    +
    +
    +
    +
    Stop here
    +
    +
    +
    +​ + +​ + + +``` + */ + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + each(funŃtion: (this: TElement, index: number, element: TElement) => void | false): this; + /** + * Remove all child nodes of the set of matched elements from the DOM. + * @see \`{@link https://api.jquery.com/empty/ }\` + * @since 1.0 + * @example ​ ````Removes all child nodes (including text nodes) from all paragraphs +```html + + + + + empty demo + + + + +​ +

    + Hello, Person and person. +

    +​ + +​ + +​ + + +``` + */ + empty(): this; + /** + * End the most recent filtering operation in the current chain and return the set of matched elements to its previous state. + * @see \`{@link https://api.jquery.com/end/ }\` + * @since 1.0 + * @example ​ ````Selects all paragraphs, finds span elements inside these, and reverts the selection back to the paragraphs. +```html + + + + + end demo + + + + +​ +

    + Hi there how are you doing? +

    +​ +

    + This span is one of + several spans in this + sentence. +

    +​ +
    + Tags in jQuery object initially: +
    +​ +
    + Tags in jQuery object after find: +
    +​ +
    + Tags in jQuery object after end: +
    +​ + +​ + + +``` + * @example ​ ````Selects all paragraphs, finds span elements inside these, and reverts the selection back to the paragraphs. +```html + + + + + end demo + + + + +​ +

    Hello, how are you?

    +​ + +​ + + +``` + */ + end(): this; + /** + * Reduce the set of matched elements to the one at the specified index. + * @param index An integer indicating the 0-based position of the element. + * An integer indicating the position of the element, counting backwards from the last element in the set. + * @see \`{@link https://api.jquery.com/eq/ }\` + * @since 1.1.2 + * @since 1.4 + * @example ​ ````Turn the div with index 2 blue by adding an appropriate class. +```html + + + + + eq demo + + + + +​ +
    +
    +
    +
    +
    +
    +​ + +​ + + +``` + */ + eq(index: number): this; + /** + * Merge the contents of an object onto the jQuery prototype to provide new jQuery instance methods. + * @param obj An object to merge onto the jQuery prototype. + * @see \`{@link https://api.jquery.com/jQuery.fn.extend/ }\` + * @since 1.0 + * @example ​ ````Add two methods to the jQuery prototype ($.fn) object and then use one of them. +```html + + + + + jQuery.fn.extend demo + + + + +​ + + +​ + +​ + + +``` + */ + extend(obj: object): this; + /** + * Display the matched elements by fading them to opaque. + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/fadeIn/ }\` + * @since 1.4.3 + */ + fadeIn(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this; + /** + * Display the matched elements by fading them to opaque. + * @param duration_easing _@param_ `duration_easing` + *
    + * * `duration` — A string or number determining how long the animation will run.
    + * * `easing` — A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/fadeIn/ }\` + * @since 1.0 + * @since 1.4.3 + * @example ​ ````Fades a red block in over the text. Once the animation is done, it quickly fades in more text on top. +```html + + + + + fadeIn demo + + + + +​ +

    + Let it be known that the party of the first part + and the party of the second part are henceforth + and hereto directed to assess the allegations + for factual correctness... (click!) +

    CENSORED!
    +

    +​ + +​ + + +``` + */ + fadeIn(duration_easing: JQuery.Duration | string, complete: (this: TElement) => void): this; + /** + * Display the matched elements by fading them to opaque. + * @param duration_easing_complete_options _@param_ `duration_easing_complete_options` + *
    + * * `duration` — A string or number determining how long the animation will run.
    + * * `easing` — A string indicating which easing function to use for the transition.
    + * * `complete` — A function to call once the animation is complete, called once per matched element.
    + * * `options` — A map of additional options to pass to the method. + * @see \`{@link https://api.jquery.com/fadeIn/ }\` + * @since 1.0 + * @since 1.4.3 + * @example ​ ````Animates hidden divs to fade in one by one, completing each animation within 600 milliseconds. +```html + + + + + fadeIn demo + + + + +​ +Click here... +
    +
    +
    +​ + +​ + + +``` + */ + fadeIn( + duration_easing_complete_options?: + | JQuery.Duration + | string + | ((this: TElement) => void) + | JQuery.EffectsOptions, + ): this; + /** + * Hide the matched elements by fading them to transparent. + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/fadeOut/ }\` + * @since 1.4.3 + * @example ​ ````Fades out two divs, one with a "linear" easing and one with the default, "swing," easing. +```html + + + + + fadeOut demo + + + + +​ + + +​ +
    +​ +
    linear
    +
    swing
    +​ + +​ + + +``` + */ + fadeOut(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this; + /** + * Hide the matched elements by fading them to transparent. + * @param duration_easing _@param_ `duration_easing` + *
    + * * `duration` — A string or number determining how long the animation will run.
    + * * `easing` — A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/fadeOut/ }\` + * @since 1.0 + * @since 1.4.3 + * @example ​ ````Fades out spans in one section that you click on. +```html + + + + + fadeOut demo + + + + +​ +

    Find the modifiers -

    +

    + If you really want to go outside + in the cold then make sure to wear + your warm jacket given to you by + your favorite teacher. +

    +​ + +​ + + +``` + */ + fadeOut(duration_easing: JQuery.Duration | string, complete: (this: TElement) => void): this; + /** + * Hide the matched elements by fading them to transparent. + * @param duration_easing_complete_options _@param_ `duration_easing_complete_options` + *
    + * * `duration` — A string or number determining how long the animation will run.
    + * * `easing` — A string indicating which easing function to use for the transition.
    + * * `complete` — A function to call once the animation is complete, called once per matched element.
    + * * `options` — A map of additional options to pass to the method. + * @see \`{@link https://api.jquery.com/fadeOut/ }\` + * @since 1.0 + * @since 1.4.3 + * @example ​ ````Animates all paragraphs to fade out, completing the animation within 600 milliseconds. +```html + + + + + fadeOut demo + + + + +​ +

    + If you click on this paragraph + you'll see it just fade away. +

    +​ + +​ + + +``` + */ + fadeOut( + duration_easing_complete_options?: + | JQuery.Duration + | string + | ((this: TElement) => void) + | JQuery.EffectsOptions, + ): this; + /** + * Adjust the opacity of the matched elements. + * @param duration A string or number determining how long the animation will run. + * @param opacity A number between 0 and 1 denoting the target opacity. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/fadeTo/ }\` + * @since 1.4.3 + */ + fadeTo(duration: JQuery.Duration, opacity: number, easing: string, complete?: (this: TElement) => void): this; + /** + * Adjust the opacity of the matched elements. + * @param duration A string or number determining how long the animation will run. + * @param opacity A number between 0 and 1 denoting the target opacity. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/fadeTo/ }\` + * @since 1.0 + * @example ​ ````Animates first paragraph to fade to an opacity of 0.33 (33%, about one third visible), completing the animation within 600 milliseconds. +```html + + + + + fadeTo demo + + + +​ +

    +Click this paragraph to see it fade. +

    +​ +

    +Compare to this one that won't fade. +

    +​ + +​ + + +``` + * @example ​ ````Fade div to a random opacity on each click, completing the animation within 200 milliseconds. +```html + + + + + fadeTo demo + + + + +​ +

    And this is the library that John built...

    +​ +
    +
    +
    +​ + +​ + + +``` + * @example ​ ````Find the right answer! The fade will take 250 milliseconds and change various styles when it completes. +```html + + + + + fadeTo demo + + + + +​ +

    Wrong

    +
    +

    Wrong

    +
    +

    Right!

    +
    +​ + +​ + + +``` + */ + fadeTo(duration: JQuery.Duration, opacity: number, complete?: (this: TElement) => void): this; + /** + * Display or hide the matched elements by animating their opacity. + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/fadeToggle/ }\` + * @since 1.4.4 + * @example ​ ````Fades first paragraph in or out, completing the animation within 600 milliseconds and using a linear easing. Fades last paragraph in or out for 200 milliseconds, inserting a "finished" message upon completion. +```html + + + + + fadeToggle demo + + + +​ + + +

    This paragraph has a slow, linear fade.

    +

    This paragraph has a fast animation.

    +
    +​ + +​ + + +``` + */ + fadeToggle(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this; + /** + * Display or hide the matched elements by animating their opacity. + * @param duration_easing _@param_ `duration_easing` + *
    + * * `duration` — A string or number determining how long the animation will run.
    + * * `easing` — A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/fadeToggle/ }\` + * @since 1.0 + * @since 1.4.3 + * @example ​ ````Fades first paragraph in or out, completing the animation within 600 milliseconds and using a linear easing. Fades last paragraph in or out for 200 milliseconds, inserting a "finished" message upon completion. +```html + + + + + fadeToggle demo + + + +​ + + +

    This paragraph has a slow, linear fade.

    +

    This paragraph has a fast animation.

    +
    +​ + +​ + + +``` + */ + fadeToggle(duration_easing: JQuery.Duration | string, complete: (this: TElement) => void): this; + /** + * Display or hide the matched elements by animating their opacity. + * @param duration_easing_complete_options _@param_ `duration_easing_complete_options` + *
    + * * `duration` — A string or number determining how long the animation will run.
    + * * `easing` — A string indicating which easing function to use for the transition.
    + * * `complete` — A function to call once the animation is complete, called once per matched element.
    + * * `options` — A map of additional options to pass to the method. + * @see \`{@link https://api.jquery.com/fadeToggle/ }\` + * @since 1.0 + * @since 1.4.3 + */ + fadeToggle( + duration_easing_complete_options?: + | JQuery.Duration + | string + | ((this: TElement) => void) + | JQuery.EffectsOptions, + ): this; + /** + * Reduce the set of matched elements to those that match the selector or pass the function's test. + * @param selector_elements_selection_function _@param_ `selector_elements_selection_function` + *
    + * * `selector` — A string containing a selector expression to match the current set of elements against.
    + * * `elements` — One or more DOM elements to match the current set of elements against.
    + * * `selection` — An existing jQuery object to match the current set of elements against.
    + * * `function` — A function used as a test for each element in the set. this is the current DOM element. + * @see \`{@link https://api.jquery.com/filter/ }\` + * @since 1.0 + * @since 1.4 + * @example ​ ````Change the color of all divs; then add a border to those with a "middle" class. +```html + + + + + filter demo + + + + +​ +
    +
    +
    +
    +
    +
    +​ + +​ + + +``` + * @example ​ ````Change the color of all divs; then add a border to the second one (index == 1) and the div with an id of "fourth." +```html + + + + + filter demo + + + + +​ +
    +
    +
    +
    +
    +
    +​ + +​ + + +``` + * @example ​ ````Select all divs and filter the selection with a DOM element, keeping only the one with an id of "unique". +```javascript +$( "div" ).filter( document.getElementById( "unique" ) ); +``` + * @example ​ ````Select all divs and filter the selection with a jQuery object, keeping only the one with an id of "unique". +```javascript +$( "div" ).filter( $( "#unique" ) ); +``` + */ + filter( + selector_elements_selection_function: + | JQuery.Selector + | JQuery.TypeOrArray + | JQuery + | ((this: TElement, index: number, element: TElement) => boolean), + ): this; + /** + * Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element. + * @param selector_element _@param_ `selector_element` + *
    + * * `selector` — A string containing a selector expression to match elements against.
    + * * `element` — An element or a jQuery object to match elements against. + * @see \`{@link https://api.jquery.com/find/ }\` + * @since 1.0 + * @since 1.6 + * @example ​ ````Starts with all paragraphs and searches for descendant span elements, same as $( "p span" ) +```html + + + + + find demo + + + +​ +

    Hello, how are you?

    +

    Me? I'm good.

    +​ + +​ + + +``` + * @example ​ ````A selection using a jQuery collection of all span tags. Only spans within p tags are changed to red while others are left blue. +```html + + + + + find demo + + + + +​ +

    Hello, how are you?

    +

    Me? I'm good.

    +
    Did you eat yet?
    +​ + +​ + + +``` + * @example ​ ````Add spans around each word then add a hover and italicize words with the letter t. +```html + + + + + find demo + + + + +​ +

    + When the day is short + find that which matters to you + or stop believing +

    +​ + +​ + + +``` + */ + find(selector_element: K | JQuery): JQuery; + find(selector_element: K | JQuery): JQuery; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + find(selector_element: JQuery.Selector): JQuery; + find(selector_element: E | JQuery): JQuery; + /** + * Stop the currently-running animation, remove all queued animations, and complete all animations for the matched elements. + * @param queue The name of the queue in which to stop animations. + * @see \`{@link https://api.jquery.com/finish/ }\` + * @since 1.9 + * @example ​ ````Click the Go button once to start the animation, and then click the other buttons to see how they affect the current and queued animations. +```html + + + + + finish demo + + + + +​ +
    +
    + +
    + + +
    + + +
    + + +
    + +
    + +
    +​ + +​ + + +``` + */ + finish(queue?: string): this; + /** + * Reduce the set of matched elements to the first in the set. + * @see \`{@link https://api.jquery.com/first/ }\` + * @since 1.4 + * @example ​ ````Highlight the first span in a paragraph. +```html + + + + + first demo + + + + +​ +

    + Look: + This is some text in a paragraph. + This is a note about it. +

    +​ + +​ + + +``` + */ + first(): this; + /** + * Bind an event handler to the "focus" JavaScript event, or trigger that event on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/focus-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.focus(fn)` use `.on("focus", fn)`. Instead of `.focus()` use `.trigger("focus")`. + */ + focus( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "focus" JavaScript event, or trigger that event on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/focus-shorthand/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.focus(fn)` use `.on("focus", fn)`. Instead of `.focus()` use `.trigger("focus")`. + * @example ​ ````Fire focus. +```html + + + + + focus demo + + + + +​ +

    focus fire

    +

    focus fire

    +​ + +​ + + +``` + * @example ​ ````To stop people from writing in text input boxes, try: +```javascript +$( "input[type=text]" ).focus(function() { + $( this ).blur(); +}); +``` + * @example ​ ````To focus on a login input box with id 'login' on page startup, try: +```javascript +$( document ).ready(function() { + $( "#login" ).focus(); +}); +``` + */ + focus( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Bind an event handler to the "focusin" event. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/focusin-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.focusin(fn)` use `.on("focusin", fn)`. Instead of `.focusin()` use `.trigger("focusin")`. + */ + focusin( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "focusin" event. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/focusin-shorthand/ }\` + * @since 1.4 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.focusin(fn)` use `.on("focusin", fn)`. Instead of `.focusin()` use `.focusin("click")`. + * @example ​ ````Watch for a focus to occur within the paragraphs on the page. +```html + + + + + focusin demo + + + + +​ +

    focusin fire

    +

    focusin fire

    +​ + +​ + + +``` + */ + focusin( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Bind an event handler to the "focusout" JavaScript event. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/focusout/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.focusout(fn)` use `.on("focusout", fn)`. Instead of `.focusout()` use `.trigger("focusout")`. + */ + focusout( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "focusout" JavaScript event. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/focusout/ }\` + * @since 1.4 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.focusout(fn)` use `.on("focusout", fn)`. Instead of `.focusout()` use `.trigger("focusout")`. + * @example ​ ````Watch for a loss of focus to occur inside paragraphs and note the difference between the focusout count and the blur count. (The blur count does not change because those events do not bubble.) +```html + + + + + focusout demo + + + + +​ +
    +

    +
    + +

    +

    + +

    +
    +
    focusout fire
    +
    blur fire
    +​ + +​ + + +``` + */ + focusout( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Retrieve one of the elements matched by the jQuery object. + * @param index A zero-based integer indicating which element to retrieve. + * @see \`{@link https://api.jquery.com/get/ }\` + * @since 1.0 + * @example ​ ````Display the tag name of the click element. +```html + + + + + get demo + + + + +​ +  +

    In this paragraph is an important section

    +
    +​ + +​ + + +``` + */ + get(index: number): TElement | undefined; + /** + * Retrieve the elements matched by the jQuery object. If the value of index is out of bounds — less than the negative number of elements or equal to or greater than the number of elements — it returns undefined. + * @see \`{@link https://api.jquery.com/get/ }\` + * @since 1.0 + * @example ​ ````Select all divs in the document and return the DOM Elements as an Array; then use the built-in reverse() method to reverse that array. +```html + + + + + get demo + + + + +​ +Reversed - +​ +
    One
    +
    Two
    +
    Three
    +​ + +​ + + +``` + */ + get(): TElement[]; + /** + * Reduce the set of matched elements to those that have a descendant that matches the selector or DOM element. + * @param selector_contained _@param_ `selector_contained` + *
    + * * `selector` — A string containing a selector expression to match elements against.
    + * * `contained` — A DOM element to match elements against. + * @see \`{@link https://api.jquery.com/has/ }\` + * @since 1.4 + * @example ​ ````Check if an element is inside another. +```html + + + + + has demo + + + + +​ +
    • Does the UL contain an LI?
    +​ + +​ + + +``` + */ + has(selector_contained: string | Element): this; + /** + * Determine whether any of the matched elements are assigned the given class. + * @param className The class name to search for. + * @see \`{@link https://api.jquery.com/hasClass/ }\` + * @since 1.2 + * @example ​ ````Looks for the paragraph that contains 'selected' as a class. +```html + + + + + hasClass demo + + + + +​ +

    This paragraph is black and is the first paragraph.

    +

    This paragraph is red and is the second paragraph.

    +
    First paragraph has selected class:
    +
    Second paragraph has selected class:
    +
    At least one paragraph has selected class:
    +​ + +​ + + +``` + */ + hasClass(className: string): boolean; + /** + * Set the CSS height of every matched element. + * @param value_function _@param_ `value_function` + *
    + * * `value` — An integer representing the number of pixels, or an integer with an optional unit of measure + * appended (as a string).
    + * * `function` — A function returning the height to set. Receives the index position of the element in the set and + * the old height as arguments. Within the function, `this` refers to the current element in the set. + * @see \`{@link https://api.jquery.com/height/ }\` + * @since 1.0 + * @since 1.4.1 + * @example ​ ````To set the height of each div on click to 30px plus a color change. +```html + + + + + height demo + + + + +​ +
    +
    +
    +
    +
    +​ + +​ + + +``` + */ + height( + value_function: string | number | ((this: TElement, index: number, height: number) => string | number), + ): this; + /** + * Get the current computed height for the first element in the set of matched elements. + * @see \`{@link https://api.jquery.com/height/ }\` + * @since 1.0 + * @example ​ ````Show various heights. Note the values are from the iframe so might be smaller than you expected. The yellow highlight shows the iframe body. +```html + + + + + height demo + + + + +​ + + + +​ +
     
    +

    + Sample paragraph to test height +

    +​ + +​ + + +``` + */ + height(): number | undefined; + /** + * Hide the matched elements. + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/hide/ }\` + * @since 1.4.3 + */ + hide(duration: JQuery.Duration, easing: string, complete: (this: TElement) => void): this; + /** + * Hide the matched elements. + * @param duration A string or number determining how long the animation will run. + * @param easing_complete _@param_ `easing_complete` + *
    + * * `easing` — A string indicating which easing function to use for the transition.
    + * * `complete` — A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/hide/ }\` + * @since 1.0 + * @since 1.4.3 + * @example ​ ````Animates all spans (words in this case) to hide fastly, completing each animation within 200 milliseconds. Once each animation is done, it starts the next one. +```html + + + + + hide demo + + + + +​ + + +
    + Once upon a + time there were + three programmers... +
    +​ + +​ + + +``` + * @example ​ ````Hides the divs when clicked over 2 seconds, then removes the div element when its hidden. Try clicking on more than one box at a time. +```html + + + + + hide demo + + + + +​ +
    +​ + +​ + + +``` + */ + hide(duration: JQuery.Duration, easing_complete: string | ((this: TElement) => void)): this; + /** + * Hide the matched elements. + * @param duration_complete_options _@param_ `duration_complete_options` + *
    + * * `duration` — A string or number determining how long the animation will run.
    + * * `complete` — A function to call once the animation is complete, called once per matched element.
    + * * `options` — A map of additional options to pass to the method. + * @see \`{@link https://api.jquery.com/hide/ }\` + * @since 1.0 + * @example ​ ````Hides all paragraphs then the link on click. +```html + + + + + hide demo + + + +​ +

    Hello

    +Click to hide me too +

    Here is another paragraph

    +​ + +​ + + +``` + * @example ​ ````Animates all shown paragraphs to hide slowly, completing the animation within 600 milliseconds. +```html + + + + + hide demo + + + + +​ + +

    Hiya

    +

    Such interesting text, eh?

    +​ + +​ + + +``` + */ + hide( + duration_complete_options?: JQuery.Duration | ((this: TElement) => void) | JQuery.EffectsOptions, + ): this; + /** + * Bind two handlers to the matched elements, to be executed when the mouse pointer enters and leaves the elements. + * @param handlerIn A function to execute when the mouse pointer enters the element. + * @param handlerOut A function to execute when the mouse pointer leaves the element. + * @see \`{@link https://api.jquery.com/hover/ }\` + * @since 1.0 + * @deprecated ​ Deprecated. + * + * **Cause**: The `.hover()` method is a shorthand for the use of the `mouseover`/`mouseout` events. It is often a poor user interface choice because it does not allow for any small amounts of delay between when the mouse enters or exits an area and when the event fires. This can make it quite difficult to use with UI widgets such as drop-down menus. For more information on the problems of hovering, see the \`{@link http://cherne.net/brian/resources/jquery.hoverIntent.html hoverIntent plugin}\`. + * + * **Solution**: Review uses of `.hover()` to determine if they are appropriate, and consider use of plugins such as `hoverIntent` as an alternative. The direct replacement for `.hover(fn1, fn2)`, is `.on("mouseenter", fn1).on("mouseleave", fn2)`. + * @example ​ ````To add a special style to list items that are being hovered over, try: +```html + + + + + hover demo + + + + +​ +
      +
    • Milk
    • +
    • Bread
    • +
    • Chips
    • +
    • Socks
    • +
    +​ + +​ + + +``` + * @example ​ ````To add a special style to table cells that are being hovered over, try: +```javascript +$( "td" ).hover( + function() { + $( this ).addClass( "hover" ); + }, function() { + $( this ).removeClass( "hover" ); + } +); +``` + * @example ​ ````To unbind the above example use: +```javascript +$( "td" ).off( "mouseenter mouseleave" ); +``` + */ + hover( + handlerIn: + | JQuery.TypeEventHandler + | false, + handlerOut: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Bind a single handler to the matched elements, to be executed when the mouse pointer enters or leaves the elements. + * @param handlerInOut A function to execute when the mouse pointer enters or leaves the element. + * @see \`{@link https://api.jquery.com/hover/ }\` + * @since 1.4 + * @deprecated ​ Deprecated. + * + * **Cause**: The `.hover()` method is a shorthand for the use of the `mouseover`/`mouseout` events. It is often a poor user interface choice because it does not allow for any small amounts of delay between when the mouse enters or exits an area and when the event fires. This can make it quite difficult to use with UI widgets such as drop-down menus. For more information on the problems of hovering, see the \`{@link http://cherne.net/brian/resources/jquery.hoverIntent.html hoverIntent plugin}\`. + * + * **Solution**: Review uses of `.hover()` to determine if they are appropriate, and consider use of plugins such as `hoverIntent` as an alternative. The direct replacement for `.hover(fn1, fn2)`, is `.on("mouseenter", fn1).on("mouseleave", fn2)`. + * @example ​ ````Slide the next sibling LI up or down on hover, and toggle a class. +```html + + + + + hover demo + + + + +​ +
      +
    • Milk
    • +
    • White
    • +
    • Carrots
    • +
    • Orange
    • +
    • Broccoli
    • +
    • Green
    • +
    +​ + +​ + + +``` + */ + hover( + handlerInOut: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Set the HTML contents of each element in the set of matched elements. + * @param htmlString_function _@param_ `htmlString_function` + *
    + * * `htmlString` — A string of HTML to set as the content of each matched element.
    + * * `function` — A function returning the HTML content to set. Receives the index position of the element in the set + * and the old HTML value as arguments. jQuery empties the element before calling the function; use the + * oldhtml argument to reference the previous content. Within the function, `this` refers to the current + * element in the set. + * @see \`{@link https://api.jquery.com/html/ }\` + * @since 1.0 + * @since 1.4 + * @example ​ ````Add some html to each div. +```html + + + + + html demo + + + + +​ +Hello +
    +
    +
    +​ + +​ + + +``` + * @example ​ ````Add some html to each div then immediately do further manipulations to the inserted html. +```html + + + + + html demo + + + + +​ +
    +
    +
    +​ + +​ + + +``` + */ + html( + htmlString_function: + | JQuery.htmlString + | JQuery.Node + | ((this: TElement, index: number, oldhtml: JQuery.htmlString) => JQuery.htmlString | JQuery.Node), + ): this; + /** + * Get the HTML contents of the first element in the set of matched elements. + * @see \`{@link https://api.jquery.com/html/ }\` + * @since 1.0 + * @example ​ ````Click a paragraph to convert it from html to text. +```html + + + + + html demo + + + + +​ +

    + Click to change the html +

    +

    + to a text node. +

    +

    + This does nothing. +

    +​ + +​ + + +``` + */ + html(): string; + /** + * Search for a given element from among the matched elements. + * @param selector_element _@param_ `selector_element` + *
    + * * `selector` — A selector representing a jQuery collection in which to look for an element.
    + * * `element` — The DOM element or first element within the jQuery object to look for. + * @see \`{@link https://api.jquery.com/index/ }\` + * @since 1.0 + * @since 1.4 + * @example ​ ````On click, returns the index (zero-based) of that div in the page. +```html + + + + + index demo + + + + +​ +Click a div! +
    First div
    +
    Second div
    +
    Third div
    +​ + +​ + + +``` + * @example ​ ````Returns the index for the element with ID bar. +```html + + + + + index demo + + + + +​ +
      +
    • foo
    • +
    • bar
    • +
    • baz
    • +
    +
    +​ + +​ + + +``` + * @example ​ ````Returns the index for the first item in the jQuery collection. +```html + + + + + index demo + + + + +​ +
      +
    • foo
    • +
    • bar
    • +
    • baz
    • +
    +
    +​ + +​ + + +``` + * @example ​ ````Returns the index for the element with ID bar in relation to all <li> elements. +```html + + + + + index demo + + + + +​ +
      +
    • foo
    • +
    • bar
    • +
    • baz
    • +
    +
    +​ + +​ + + +``` + * @example ​ ````Returns the index for the element with ID bar in relation to its siblings. +```html + + + + + index demo + + + + +​ +
      +
    • foo
    • +
    • bar
    • +
    • baz
    • +
    +
    +​ + +​ + + +``` + * @example ​ ````Returns -1, as there is no element with ID foobar. +```html + + + + + index demo + + + + +​ +
      +
    • foo
    • +
    • bar
    • +
    • baz
    • +
    +
    +​ + +​ + + +``` + */ + index(selector_element?: JQuery.Selector | Element | JQuery): number; + /** + * Set the CSS inner height of each element in the set of matched elements. + * @param value_function _@param_ `value_function` + *
    + * * `value` — A number representing the number of pixels, or a number along with an optional unit of measure + * appended (as a string).
    + * * `function` — A function returning the inner height (including padding but not border) to set. Receives the index + * position of the element in the set and the old inner height as arguments. Within the function, `this` + * refers to the current element in the set. + * @see \`{@link https://api.jquery.com/innerHeight/ }\` + * @since 1.8.0 + * @example ​ ````Change the inner height of each div the first time it is clicked (and change its color). +```html + + + + + innerHeight demo + + + + +​ +
    d
    +
    d
    +
    d
    +
    d
    +
    d
    +​ + +​ + + +``` + */ + innerHeight( + value_function: string | number | ((this: TElement, index: number, height: number) => string | number), + ): this; + /** + * Get the current computed height for the first element in the set of matched elements, including padding but not border. + * @see \`{@link https://api.jquery.com/innerHeight/ }\` + * @since 1.2.6 + * @example ​ ````Get the innerHeight of a paragraph. +```html + + + + + innerHeight demo + + + + +​ +

    Hello

    +

    +​ + +​ + + +``` + */ + innerHeight(): number | undefined; + /** + * Set the CSS inner width of each element in the set of matched elements. + * @param value_function _@param_ `value_function` + *
    + * * `value` — A number representing the number of pixels, or a number along with an optional unit of measure + * appended (as a string).
    + * * `function` — A function returning the inner width (including padding but not border) to set. Receives the index + * position of the element in the set and the old inner width as arguments. Within the function, `this` + * refers to the current element in the set. + * @see \`{@link https://api.jquery.com/innerWidth/ }\` + * @since 1.8.0 + * @example ​ ````Change the inner width of each div the first time it is clicked (and change its color). +```html + + + + + innerWidth demo + + + + +​ +
    d
    +
    d
    +
    d
    +
    d
    +
    d
    +​ + +​ + + +``` + */ + innerWidth( + value_function: string | number | ((this: TElement, index: number, width: number) => string | number), + ): this; + /** + * Get the current computed inner width for the first element in the set of matched elements, including padding but not border. + * @see \`{@link https://api.jquery.com/innerWidth/ }\` + * @since 1.2.6 + * @example ​ ````Get the innerWidth of a paragraph. +```html + + + + + innerWidth demo + + + + +​ +

    Hello

    +

    +​ + +​ + + +``` + */ + innerWidth(): number | undefined; + /** + * Insert every element in the set of matched elements after the target. + * @param target A selector, element, array of elements, HTML string, or jQuery object; the matched set of elements + * will be inserted after the element(s) specified by this parameter. + * @see \`{@link https://api.jquery.com/insertAfter/ }\` + * @since 1.0 + * @example ​ ````Insert all paragraphs after an element with id of "foo". Same as $( "#foo" ).after( "p" ) +```html + + + + + insertAfter demo + + + + +​ +

    is what I said...

    +
    FOO!
    +​ + +​ + + +``` + */ + insertAfter(target: JQuery.Selector | JQuery.htmlString | JQuery.TypeOrArray | JQuery): this; + /** + * Insert every element in the set of matched elements before the target. + * @param target A selector, element, array of elements, HTML string, or jQuery object; the matched set of elements + * will be inserted before the element(s) specified by this parameter. + * @see \`{@link https://api.jquery.com/insertBefore/ }\` + * @since 1.0 + * @example ​ ````Insert all paragraphs before an element with id of "foo". Same as $( "#foo" ).before( "p" ) +```html + + + + + insertBefore demo + + + + +​ +
    FOO!
    +

    I would like to say:

    +​ + +​ + + +``` + */ + insertBefore(target: JQuery.Selector | JQuery.htmlString | JQuery.TypeOrArray | JQuery): this; + /** + * Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments. + * @param selector_function_selection_elements _@param_ `selector_function_selection_elements` + *
    + * * `selector` — A string containing a selector expression to match elements against.
    + * * `function` — A function used as a test for every element in the set. It accepts two arguments, `index`, which is + * the element's index in the jQuery collection, and `element`, which is the DOM element. Within the + * function, `this` refers to the current DOM element.
    + * * `selection` — An existing jQuery object to match the current set of elements against.
    + * * `elements` — One or more elements to match the current set of elements against. + * @see \`{@link https://api.jquery.com/is/ }\` + * @since 1.0 + * @since 1.6 + * @example ​ ````Shows a few ways is() can be used inside an event handler. +```html + + + + + is demo + + + + +​ +
    +
    +
    +
    +

    Peter
    +
    +

     

    +​ + +​ + + +``` + * @example ​ ````Returns true, because the parent of the input is a form element. +```html + + + + + is demo + + + + +​ +
    + +
    +
    +​ + +​ + + +``` + * @example ​ ````Returns false, because the parent of the input is a p element. +```html + + + + + is demo + + + + +​ +
    +

    +
    +
    +​ + +​ + + +``` + * @example ​ ````Checks against an existing collection of alternating list elements. Blue, alternating list elements slide up while others turn red. +```html + + + + + is demo + + + + +​ +
      +
    • Chrome
    • +
    • Safari
    • +
    • Firefox
    • +
    • Opera
    • +
    +​ + +​ + + +``` + * @example ​ ````An alternate way to achieve the above example using an element rather than a jQuery object. Checks against an existing collection of alternating list elements. Blue, alternating list elements slide up while others turn red. +```html + + + + + is demo + + + + +​ +
      +
    • Chrome
    • +
    • Safari
    • +
    • Firefox
    • +
    • Opera
    • +
    +​ + +​ + + +``` + */ + is( + selector_function_selection_elements: + | JQuery.Selector + | JQuery.TypeOrArray + | JQuery + | ((this: TElement, index: number, element: TElement) => boolean), + ): boolean; + /** + * Bind an event handler to the "keydown" JavaScript event, or trigger that event on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/keydown-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.keydown(fn)` use `.on("keydown", fn)`. Instead of `.keydown()` use `.trigger("keydown")`. + */ + keydown( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "keydown" JavaScript event, or trigger that event on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/keydown-shorthand/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.keydown(fn)` use `.on("keydown", fn)`. Instead of `.keydown()` use `.trigger("keydown")`. + * @example ​ ````Show the event object for the keydown handler when a key is pressed in the input. +```html + + + + + keydown demo + + + + +​ +
    +
    + + +
    +
    + + +​ + +​ + + +``` + */ + keydown( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Bind an event handler to the "keypress" JavaScript event, or trigger that event on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/keypress-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.keypress(fn)` use `.on("keypress", fn)`. Instead of `.keypress()` use `.trigger("keypress")`. + */ + keypress( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "keypress" JavaScript event, or trigger that event on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/keypress-shorthand/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.keypress(fn)` use `.on("keypress", fn)`. Instead of `.keypress()` use `.trigger("keypress")`. + * @example ​ ````Show the event object when a key is pressed in the input. Note: This demo relies on a simple $.print() plugin (https://api.jquery.com/resources/events.js) for the event object's output. +```html + + + + + keypress demo + + + + +​ +
    +
    + + +
    +
    + + +​ + +​ + + +``` + */ + keypress( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Bind an event handler to the "keyup" JavaScript event, or trigger that event on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/keyup/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.keyup(fn)` use `.on("keyup", fn)`. Instead of `.keyup()` use `.trigger("keyup")`. + */ + keyup( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "keyup" JavaScript event, or trigger that event on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/keyup/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.keyup(fn)` use `.on("keyup", fn)`. Instead of `.keyup()` use `.trigger("keyup")`. + * @example ​ ````Show the event object for the keyup handler (using a simple $.print plugin) when a key is released in the input. +```html + + + + + keyup demo + + + + +​ +
    +
    + + +
    +
    + + +​ + +​ + + +``` + */ + keyup( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Reduce the set of matched elements to the final one in the set. + * @see \`{@link https://api.jquery.com/last/ }\` + * @since 1.4 + * @example ​ ````Highlight the last span in a paragraph. +```html + + + + + last demo + + + + +​ +

    Look: This is some text in a paragraph. This is a note about it.

    +​ + +​ + + +``` + */ + last(): this; + + /** + * Reduce the set of matched elements to the even ones in the set, numbered from zero. + * @see \`{@link https://api.jquery.com/even/ }\` + * @since 3.5 + * @example ​ ````Highlight the even items in a list. +```html + + + + + even demo + + + + + +
      +
    • Look:
    • +
    • This is some text in a list.
    • +
    • This is a note about it.
    • +
    • This is another note about it.
    • +
    + + + + + +``` + */ + even(): this; + + /** + * Reduce the set of matched elements to the odd ones in the set, numbered from zero. + * @see \`{@link https://api.jquery.com/odd/ }\` + * @since 3.5 + * @example ​ ````Highlight the odd items in a list. +```html + + + + + odd demo + + + + + +
      +
    • Look:
    • +
    • This is some text in a list.
    • +
    • This is a note about it.
    • +
    • This is another note about it.
    • +
    + + + + + +``` + */ + odd(): this; + + /** + * Load data from the server and place the returned HTML into the matched element. + * @param url A string containing the URL to which the request is sent. + * @param data A plain object or string that is sent to the server with the request. + * @param complete A callback function that is executed when the request completes. + * @see \`{@link https://api.jquery.com/load/ }\` + * @since 1.0 + * @example ​ ````Same as above, but will POST the additional parameters to the server and a callback that is executed when the server is finished responding. +```javascript +$( "#feeds" ).load( "feeds.php", { limit: 25 }, function() { + alert( "The last 25 entries in the feed have been loaded" ); +}); +``` + */ + load( + url: string, + data: string | JQuery.PlainObject, + complete: ( + this: TElement, + responseText: string, + textStatus: JQuery.Ajax.TextStatus, + jqXHR: JQuery.jqXHR, + ) => void, + ): this; + /** + * Load data from the server and place the returned HTML into the matched element. + * @param url A string containing the URL to which the request is sent. + * @param complete_data _@param_ `complete_data` + *
    + * * `complete` — A callback function that is executed when the request completes.
    + * * `data` — A plain object or string that is sent to the server with the request. + * @see \`{@link https://api.jquery.com/load/ }\` + * @since 1.0 + * @example ​ ````Load another page's list items into an ordered list. +```html + + + + + load demo + + + + +​ +Projects: +
      +​ + +​ + + +``` + * @example ​ ````Display a notice if the Ajax request encounters an error. +```html + + + + + load demo + + + + +​ +Successful Response (should be blank): +
      +Error Response: +
      +​ + +​ + + +``` + * @example ​ ````Load the feeds.html file into the div with the ID of feeds. +```javascript +$( "#feeds" ).load( "feeds.html" ); +``` + * @example ​ ````pass arrays of data to the server. +```javascript +$( "#objectID" ).load( "test.php", { "choices[]": [ "Jon", "Susan" ] } ); +``` + */ + load( + url: string, + complete_data?: + | ((this: TElement, responseText: string, textStatus: JQuery.Ajax.TextStatus, jqXHR: JQuery.jqXHR) => void) + | string + | JQuery.PlainObject, + ): this; + /** + * Pass each element in the current matched set through a function, producing a new jQuery object containing the return values. + * @param callback A function object that will be invoked for each element in the current set. + * @see \`{@link https://api.jquery.com/map/ }\` + * @since 1.2 + * @example ​ ````Build a list of all the values within a form. +```html + + + + + map demo + + + + +​ +

      Values:

      +
      + + + +
      +​ + +​ + + +``` + * @example ​ ````A contrived example to show some functionality. +```html + + + + + map demo + + + + +​ +
        +
      • First
      • +
      • Second
      • +
      • Third
      • +
      • Fourth
      • +
      • Fifth
      • +
      +
        +
      +​ + +​ + + +``` + * @example ​ ````Equalize the heights of the divs. +```html + + + + + map demo + + + + +​ + +
      +
      +
      +​ + +​ + + +``` + */ + map( + callback: ( + this: TElement, + index: number, + domElement: TElement, + ) => JQuery.TypeOrArray | null | undefined, + ): JQuery; + /** + * Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/mousedown-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.mousedown(fn)` use `.on("mousedown", fn)`. Instead of `.mousedown()` use `.trigger("mousedown")`. + */ + mousedown( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/mousedown-shorthand/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.mousedown(fn)` use `.on("mousedown", fn)`. Instead of `.mousedown()` use `.trigger("mousedown")`. + * @example ​ ````Show texts when mouseup and mousedown event triggering. +```html + + + + + mousedown demo + + + +​ +

      Press mouse and release here.

      +​ + +​ + + +``` + */ + mousedown( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Bind an event handler to be fired when the mouse enters an element, or trigger that handler on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/mouseenter-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.mouseenter(fn)` use `.on("mouseenter", fn)`. Instead of `.mouseenter()` use `.trigger("mouseenter")`. + */ + mouseenter( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to be fired when the mouse enters an element, or trigger that handler on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/mouseenter-shorthand/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.mouseenter(fn)` use `.on("mouseenter", fn)`. Instead of `.mouseenter()` use `.trigger("mouseenter")`. + * @example ​ ````Show texts when mouseenter and mouseout event triggering. + mouseover fires when the pointer moves into the child element as well, while mouseenter fires only when the pointer moves into the bound element. +```html + + + + + mouseenter demo + + + + +​ +
      +

      move your mouse

      +

      move your mouse

      0

      +

      0

      +
      +​ +
      +

      move your mouse

      +

      move your mouse

      0

      +

      0

      +
      +​ + +​ + + +``` + */ + mouseenter( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Bind an event handler to be fired when the mouse leaves an element, or trigger that handler on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/mouseleave-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.mouseleave(fn)` use `.on("mouseleave", fn)`. Instead of `.mouseleave()` use `.trigger("mouseleave")`. + */ + mouseleave( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to be fired when the mouse leaves an element, or trigger that handler on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/mouseleave-shorthand/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.mouseleave(fn)` use `.on("mouseleave", fn)`. Instead of `.mouseleave()` use `.trigger("mouseleave")`. + * @example ​ ````Show number of times mouseout and mouseleave events are triggered. mouseout fires when the pointer moves out of child element as well, while mouseleave fires only when the pointer moves out of the bound element. +```html + + + + + mouseleave demo + + + + +​ +
      +

      move your mouse

      +

      move your mouse

      0

      +

      0

      +
      +
      +

      move your mouse

      +

      move your mouse

      0

      +

      0

      +
      +​ + +​ + + +``` + */ + mouseleave( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/mousemove-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.mousemove(fn)` use `.on("mousemove", fn)`. Instead of `.mousemove()` use `.trigger("mousemove")`. + */ + mousemove( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/mousemove-shorthand/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.mousemove(fn)` use `.on("mousemove", fn)`. Instead of `.mousemove()` use `.trigger("mousemove")`. + * @example ​ ````Show the mouse coordinates when the mouse is moved over the yellow div. Coordinates are relative to the window, which in this case is the iframe. +```html + + + + + mousemove demo + + + + +​ +

      + Move the mouse over the div. +   +

      +
      +​ + +​ + + +``` + */ + mousemove( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/mouseout-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.mouseout(fn)` use `.on("mouseout", fn)`. Instead of `.mouseout()` use `.trigger("mouseout")`. + */ + mouseout( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/mouseout-shorthand/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.mouseout(fn)` use `.on("mouseout", fn)`. Instead of `.mouseout()` use `.trigger("mouseout")`. + * @example ​ ````Show the number of times mouseout and mouseleave events are triggered. + mouseout fires when the pointer moves out of the child element as well, while mouseleave fires only when the pointer moves out of the bound element. +```html + + + + + mouseout demo + + + + +​ +
      +

      move your mouse

      +

      move your mouse

      0

      +

      0

      +
      +​ +
      +

      move your mouse

      +

      move your mouse

      0

      +

      0

      +
      +​ + +​ + + +``` + */ + mouseout( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/mouseover-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.mouseover(fn)` use `.on("mouseover", fn)`. Instead of `.mouseover()` use `.trigger("mouseover")`. + */ + mouseover( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/mouseover-shorthand/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.mouseover(fn)` use `.on("mouseover", fn)`. Instead of `.mouseover()` use `.trigger("mouseover")`. + * @example ​ ````Show the number of times mouseover and mouseenter events are triggered. +mouseover fires when the pointer moves into the child element as well, while mouseenter fires only when the pointer moves into the bound element. +```html + + + + + mouseover demo + + + + +​ +
      + move your mouse +
      +
      +
      +​ +
      + move your mouse +
      +
      +
      +​ + +​ + + +``` + */ + mouseover( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/mouseup-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.mouseup(fn)` use `.on("mouseup", fn)`. Instead of `.mouseup()` use `.trigger("mouseup")`. + */ + mouseup( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/mouseup-shorthand/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.mouseup(fn)` use `.on("mouseup", fn)`. Instead of `.mouseup()` use `.trigger("mouseup")`. + * @example ​ ````Show texts when mouseup and mousedown event triggering. +```html + + + + + mouseup demo + + + +​ +

      Press mouse and release here.

      +​ + +​ + + +``` + */ + mouseup( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Get the immediately following sibling of each element in the set of matched elements. If a selector is provided, it retrieves the next sibling only if it matches that selector. + * @param selector A string containing a selector expression to match elements against. + * @see \`{@link https://api.jquery.com/next/ }\` + * @since 1.0 + * @example ​ ````Find the very next sibling of each disabled button and change its text "this button is disabled". +```html + + + + + next demo + + + + +​ +
      -
      +
      -
      +
      -
      +​ + +​ + + +``` + * @example ​ ````Find the very next sibling of each paragraph. Keep only the ones with a class "selected". +```html + + + + + next demo + + + +​ +

      Hello

      +

      Hello Again

      +
      And Again
      +​ + +​ + + +``` + */ + next(selector: K): JQuery; + next(selector: K): JQuery; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + next(selector?: JQuery.Selector): JQuery; + /** + * Get all following siblings of each element in the set of matched elements, optionally filtered by a selector. + * @param selector A string containing a selector expression to match elements against. + * @see \`{@link https://api.jquery.com/nextAll/ }\` + * @since 1.2 + * @example ​ ````Locate all the divs after the first and give them a class. +```html + + + + + nextAll demo + + + + +​ +
      first
      +
      sibling
      child
      +
      sibling
      +
      sibling
      ​ + +​ + + +``` + * @example ​ ````Locate all the paragraphs after the second child in the body and give them a class. +```html + + + + + nextAll demo + + + + +​ +

      p

      +
      div
      +

      p

      +

      p

      +
      div
      +

      p

      +
      div
      +​ + +​ + + +``` + */ + nextAll(selector: K): JQuery; + nextAll(selector: K): JQuery; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + nextAll(selector?: JQuery.Selector): JQuery; + /** + * Get all following siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object passed. + * @param selector_element _@param_ `selector_element` + *
      + * * `selector` — A string containing a selector expression to indicate where to stop matching following sibling elements.
      + * * `element` — A DOM node or jQuery object indicating where to stop matching following sibling elements. + * @param filter A string containing a selector expression to match elements against. + * @see \`{@link https://api.jquery.com/nextUntil/ }\` + * @since 1.4 + * @since 1.6 + * @example ​ ````Find the siblings that follow <dt id="term-2"> up to the next <dt> and give them a red background color. Also, find <dd> siblings that follow <dt id="term-1"> up to <dt id="term-3"> and give them a green text color. +```html + + + + + nextUntil demo + + + +​ +
      +
      term 1
      +
      definition 1-a
      +
      definition 1-b
      +
      definition 1-c
      +
      definition 1-d
      +
      term 2
      +
      definition 2-a
      +
      definition 2-b
      +
      definition 2-c
      +
      term 3
      +
      definition 3-a
      +
      definition 3-b
      +
      +​ + +​ + + +``` + */ + nextUntil( + selector_element: JQuery.Selector | Element | JQuery, + filter: K, + ): JQuery; + nextUntil( + selector_element: JQuery.Selector | Element | JQuery, + filter: K, + ): JQuery; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + nextUntil( + selector_element?: JQuery.Selector | Element | JQuery, + filter?: JQuery.Selector, + ): JQuery; + /** + * Remove elements from the set of matched elements. + * @param selector_function_selection _@param_ `selector_function_selection` + *
      + * * `selector` — A string containing a selector expression, a DOM element, or an array of elements to match against the set.
      + * * `function` — A function used as a test for each element in the set. It accepts two arguments, `index`, which is + * the element's index in the jQuery collection, and `element`, which is the DOM element. Within the + * function, `this` refers to the current DOM element.
      + * * `selection` — An existing jQuery object to match the current set of elements against. + * @see \`{@link https://api.jquery.com/not/ }\` + * @since 1.0 + * @since 1.4 + * @example ​ ````Adds a border to divs that are not green or blue. +```html + + + + + not demo + + + + +​ +
      +
      +
      +
      +
      +
      +
      +​ + +​ + + +``` + * @example ​ ````Removes the element with the ID "selected" from the set of all paragraphs. +```javascript +$( "p" ).not( $( "#selected" )[ 0 ] ); +``` + * @example ​ ````Removes the element with the ID "selected" from the set of all paragraphs. +```javascript +$( "p" ).not( "#selected" ); +``` + * @example ​ ````Removes all elements that match "div p.selected" from the total set of all paragraphs. +```javascript +$( "p" ).not( $( "div p.selected" ) ); +``` + */ + not( + selector_function_selection: + | JQuery.Selector + | JQuery.TypeOrArray + | JQuery + | ((this: TElement, index: number, element: TElement) => boolean), + ): this; + /** + * Remove an event handler. + * @param events One or more space-separated event types and optional namespaces, or just namespaces, such as + * "click", "keydown.myPlugin", or ".myPlugin". + * @param selector A selector which should match the one originally passed to .on() when attaching event handlers. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/off/ }\` + * @since 1.7 + * @example ​ ````Add and remove event handlers on the colored button. +```html + + + + + off demo + + + + +​ + + + +
      Click!
      +​ + +​ + + +``` + * @example ​ ````Remove just one previously bound handler by passing it as the third argument: +```javascript +var foo = function() { + // Code to handle some kind of event +}; +​ +// ... Now foo will be called when paragraphs are clicked ... +$( "body" ).on( "click", "p", foo ); +​ +// ... Foo will no longer be called. +$( "body" ).off( "click", "p", foo ); +``` + */ + off( + events: TType, + selector: JQuery.Selector, + handler: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Remove an event handler. + * @param events One or more space-separated event types and optional namespaces, or just namespaces, such as + * "click", "keydown.myPlugin", or ".myPlugin". + * @param selector_handler _@param_ `selector_handler` + *
      + * * `selector` — A selector which should match the one originally passed to `.on()` when attaching event handlers.
      + * * `handler` — A handler function previously attached for the event(s), or the special value `false`. + * @see \`{@link https://api.jquery.com/off/ }\` + * @since 1.7 + * @example ​ ````Remove all delegated click handlers from all paragraphs: +```javascript +$( "p" ).off( "click", "**" ); +``` + * @example ​ ````Unbind all delegated event handlers by their namespace: +```javascript +var validate = function() { + // Code to validate form entries +}; +​ +// Delegate events under the ".validator" namespace +$( "form" ).on( "click.validator", "button", validate ); +​ +$( "form" ).on( "keypress.validator", "input[type='text']", validate ); +​ +// Remove event handlers in the ".validator" namespace +$( "form" ).off( ".validator" ); +``` + */ + off( + events: TType, + selector_handler?: + | JQuery.Selector + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Remove an event handler. + * @param events An object where the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent handler functions previously attached for the event(s). + * @param selector A selector which should match the one originally passed to .on() when attaching event handlers. + * @see \`{@link https://api.jquery.com/off/ }\` + * @since 1.7 + */ + off(events: JQuery.TypeEventHandlers, selector?: JQuery.Selector): this; + /** + * Remove an event handler. + * @param event A jQuery.Event object. + * @see \`{@link https://api.jquery.com/off/ }\` + * @since 1.7 + * @example ​ ````Remove all event handlers from all paragraphs: +```javascript +$( "p" ).off(); +``` + */ + off(event?: JQuery.TriggeredEvent): this; + /** + * Set the current coordinates of every element in the set of matched elements, relative to the document. + * @param coordinates_function _@param_ `coordinates_function` + *
      + * * `coordinates` — An object containing the properties `top` and `left`, which are numbers indicating the new top and + * left coordinates for the elements.
      + * * `function` — A function to return the coordinates to set. Receives the index of the element in the collection as + * the first argument and the current coordinates as the second argument. The function should return an + * object with the new `top` and `left` properties. + * @see \`{@link https://api.jquery.com/offset/ }\` + * @since 1.4 + * @example ​ ````Set the offset of the second paragraph: +```html + + + + + offset demo + + + + +​ +

      Hello

      2nd Paragraph

      +​ + +​ + + +``` + */ + offset( + coordinates_function: + | JQuery.CoordinatesPartial + | ((this: TElement, index: number, coords: JQuery.Coordinates) => JQuery.CoordinatesPartial), + ): this; + /** + * Get the current coordinates of the first element in the set of matched elements, relative to the document. + * @see \`{@link https://api.jquery.com/offset/ }\` + * @since 1.2 + * @example ​ ````Access the offset of the second paragraph: +```html + + + + + offset demo + + + + +​ +

      Hello

      2nd Paragraph

      +​ + +​ + + +``` + * @example ​ ````Click to see the offset. +```html + + + + + offset demo + + + + +​ +
      Click an element.
      +

      + This is the best way to find an offset. +

      +
      +
      +​ + +​ + + +``` + */ + offset(): JQuery.Coordinates | undefined; + /** + * Get the closest ancestor element that is positioned. + * @see \`{@link https://api.jquery.com/offsetParent/ }\` + * @since 1.2.6 + * @example ​ ````Find the offsetParent of item "A." +```html + + + + + offsetParent demo + + + +​ +
        +
      • I
      • +
      • II +
          +
        • A
        • +
        • B +
            +
          • 1
          • +
          • 2
          • +
          • 3
          • +
          +
        • +
        • C
        • +
        +
      • +
      • III
      • +
      +​ + +​ + + +``` + */ + offsetParent(): JQuery; + /** + * Attach an event handler function for one or more events to the selected elements. + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param selector A selector string to filter the descendants of the selected elements that trigger the event. If the + * selector is null or omitted, the event is always triggered when it reaches the selected element. + * @param data Data to be passed to the handler in event.data when an event is triggered. + * @param handler A function to execute when the event is triggered. + * @see \`{@link https://api.jquery.com/on/ }\` + * @since 1.7 + */ + on( + events: TType, + selector: JQuery.Selector, + data: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Attach an event handler function for one or more events to the selected elements. + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param selector A selector string to filter the descendants of the selected elements that trigger the event. If the + * selector is null or omitted, the event is always triggered when it reaches the selected element. + * @param data Data to be passed to the handler in event.data when an event is triggered. + * @param handler A function to execute when the event is triggered. + * @see \`{@link https://api.jquery.com/on/ }\` + * @since 1.7 + */ + on( + events: TType, + selector: null | undefined, + data: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Attach an event handler function for one or more events to the selected elements. + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param selector A selector string to filter the descendants of the selected elements that trigger the event. If the + * selector is null or omitted, the event is always triggered when it reaches the selected element. + * @param data Data to be passed to the handler in event.data when an event is triggered. + * @param handler A function to execute when the event is triggered. + * @see \`{@link https://api.jquery.com/on/ }\` + * @since 1.7 + * @deprecated ​ Deprecated. Use \`{@link JQuery.Event }\` in place of \`{@link JQueryEventObject }\`. + */ + on( + events: string, + selector: JQuery.Selector | null | undefined, + data: any, + handler: (event: JQueryEventObject) => void, + ): this; + /** + * Attach an event handler function for one or more events to the selected elements. + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param selector A selector string to filter the descendants of the selected elements that trigger the event. If the + * selector is null or omitted, the event is always triggered when it reaches the selected element. + * @param handler A function to execute when the event is triggered. The value false is also allowed as a shorthand + * for a function that simply does return false. + * @see \`{@link https://api.jquery.com/on/ }\` + * @since 1.7 + * @example ​ ````Click any paragraph to add another after it. Note that .on() allows a click event on any paragraph--even new ones--since the event is handled by the ever-present body element after it bubbles to there. +```html + + + + + on demo + + + + +​ +

      Click me!

      + +​ + +​ + + +``` + * @example ​ ````Display each paragraph's text in an alert box whenever it is clicked: +```javascript +$( "body" ).on( "click", "p", function() { + alert( $( this ).text() ); +}); +``` + * @example ​ ````Cancel a link's default action using the .preventDefault() method: +```javascript +$( "body" ).on( "click", "a", function( event ) { + event.preventDefault(); +}); +``` + */ + on( + events: TType, + selector: JQuery.Selector, + handler: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Attach an event handler function for one or more events to the selected elements. + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param data Data to be passed to the handler in event.data when an event is triggered. + * @param handler A function to execute when the event is triggered. + * @see \`{@link https://api.jquery.com/on/ }\` + * @since 1.7 + * @example ​ ````Pass data to the event handler, which is specified here by name: +```javascript +function myHandler( event ) { + alert( event.data.foo ); +} +$( "p" ).on( "click", { foo: "bar" }, myHandler ); +``` + */ + on( + events: TType, + data: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Attach an event handler function for one or more events to the selected elements. + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param selector_data _@param_ `selector_data` + *
      + * * `selector` — A selector string to filter the descendants of the selected elements that trigger the event. If the + * selector is null or omitted, the event is always triggered when it reaches the selected element.
      + * * `data` — Data to be passed to the handler in event.data when an event is triggered. + * @param handler A function to execute when the event is triggered. + * @see \`{@link https://api.jquery.com/on/ }\` + * @since 1.7 + * @deprecated ​ Deprecated. Use \`{@link JQuery.Event }\` in place of \`{@link JQueryEventObject }\`. + * @example ​ ````Click any paragraph to add another after it. Note that .on() allows a click event on any paragraph--even new ones--since the event is handled by the ever-present body element after it bubbles to there. +```html + + + + + on demo + + + + +​ +

      Click me!

      + +​ + +​ + + +``` + * @example ​ ````Display each paragraph's text in an alert box whenever it is clicked: +```javascript +$( "body" ).on( "click", "p", function() { + alert( $( this ).text() ); +}); +``` + * @example ​ ````Cancel a link's default action using the .preventDefault() method: +```javascript +$( "body" ).on( "click", "a", function( event ) { + event.preventDefault(); +}); +``` + * @example ​ ````Pass data to the event handler, which is specified here by name: +```javascript +function myHandler( event ) { + alert( event.data.foo ); +} +$( "p" ).on( "click", { foo: "bar" }, myHandler ); +``` + */ + on(events: string, selector_data: any, handler: (event: JQueryEventObject) => void): this; + /** + * Attach an event handler function for one or more events to the selected elements. + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param handler A function to execute when the event is triggered. The value false is also allowed as a shorthand + * for a function that simply does return false. + * @see \`{@link https://api.jquery.com/on/ }\` + * @since 1.7 + * @example ​ ````Display a paragraph's text in an alert when it is clicked: +```javascript +$( "p" ).on( "click", function() { + alert( $( this ).text() ); +}); +``` + * @example ​ ````Cancel a form submit action and prevent the event from bubbling up by returning false: +```javascript +$( "form" ).on( "submit", false ); +``` + * @example ​ ````Cancel only the default action by using .preventDefault(). +```javascript +$( "form" ).on( "submit", function( event ) { + event.preventDefault(); +}); +``` + * @example ​ ````Stop submit events from bubbling without preventing form submit, using .stopPropagation(). +```javascript +$( "form" ).on( "submit", function( event ) { + event.stopPropagation(); +}); +``` + * @example ​ ````Pass data to the event handler using the second argument to .trigger() +```javascript +$( "div" ).on( "click", function( event, person ) { + alert( "Hello, " + person.name ); +}); +$( "div" ).trigger( "click", { name: "Jim" } ); +``` + * @example ​ ````Use the the second argument of .trigger() to pass an array of data to the event handler +```javascript +$( "div" ).on( "click", function( event, salutation, name ) { + alert( salutation + ", " + name ); +}); +$( "div" ).trigger( "click", [ "Goodbye", "Jim" ] ); +``` + * @example ​ ````Attach and trigger custom (non-browser) events. +```html + + + + + on demo + + + + +​ +

      Has an attached custom event.

      + + +​ + +​ + + +``` + * @example ​ ````Attach multiple events—one on mouseenter and one on mouseleave to the same element: +```javascript +$( "#cart" ).on( "mouseenter mouseleave", function( event ) { + $( this ).toggleClass( "active" ); +}); +``` + */ + on( + events: TType, + handler: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Attach an event handler function for one or more events to the selected elements. + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param handler A function to execute when the event is triggered. + * @see \`{@link https://api.jquery.com/on/ }\` + * @since 1.7 + * @deprecated ​ Deprecated. Use \`{@link JQuery.Event }\` in place of \`{@link JQueryEventObject }\`. + * @example ​ ````Display a paragraph's text in an alert when it is clicked: +```javascript +$( "p" ).on( "click", function() { + alert( $( this ).text() ); +}); +``` + * @example ​ ````Cancel a form submit action and prevent the event from bubbling up by returning false: +```javascript +$( "form" ).on( "submit", false ); +``` + * @example ​ ````Cancel only the default action by using .preventDefault(). +```javascript +$( "form" ).on( "submit", function( event ) { + event.preventDefault(); +}); +``` + * @example ​ ````Stop submit events from bubbling without preventing form submit, using .stopPropagation(). +```javascript +$( "form" ).on( "submit", function( event ) { + event.stopPropagation(); +}); +``` + * @example ​ ````Pass data to the event handler using the second argument to .trigger() +```javascript +$( "div" ).on( "click", function( event, person ) { + alert( "Hello, " + person.name ); +}); +$( "div" ).trigger( "click", { name: "Jim" } ); +``` + * @example ​ ````Use the the second argument of .trigger() to pass an array of data to the event handler +```javascript +$( "div" ).on( "click", function( event, salutation, name ) { + alert( salutation + ", " + name ); +}); +$( "div" ).trigger( "click", [ "Goodbye", "Jim" ] ); +``` + * @example ​ ````Attach and trigger custom (non-browser) events. +```html + + + + + on demo + + + + +​ +

      Has an attached custom event.

      + + +​ + +​ + + +``` + * @example ​ ````Attach multiple events—one on mouseenter and one on mouseleave to the same element: +```javascript +$( "#cart" ).on( "mouseenter mouseleave", function( event ) { + $( this ).toggleClass( "active" ); +}); +``` + */ + on(events: string, handler: (event: JQueryEventObject) => void): this; + /** + * Attach an event handler function for one or more events to the selected elements. + * @param events An object in which the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent a handler function to be called for the event(s). + * @param selector A selector string to filter the descendants of the selected elements that will call the handler. If + * the selector is null or omitted, the handler is always called when it reaches the selected element. + * @param data Data to be passed to the handler in event.data when an event occurs. + * @see \`{@link https://api.jquery.com/on/ }\` + * @since 1.7 + */ + on( + events: JQuery.TypeEventHandlers, + selector: JQuery.Selector, + data: TData, + ): this; + /** + * Attach an event handler function for one or more events to the selected elements. + * @param events An object in which the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent a handler function to be called for the event(s). + * @param selector A selector string to filter the descendants of the selected elements that will call the handler. If + * the selector is null or omitted, the handler is always called when it reaches the selected element. + * @param data Data to be passed to the handler in event.data when an event occurs. + * @see \`{@link https://api.jquery.com/on/ }\` + * @since 1.7 + */ + on( + events: JQuery.TypeEventHandlers, + selector: null | undefined, + data: TData, + ): this; + /** + * Attach an event handler function for one or more events to the selected elements. + * @param events An object in which the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent a handler function to be called for the event(s). + * @param selector A selector string to filter the descendants of the selected elements that will call the handler. If + * the selector is null or omitted, the handler is always called when it reaches the selected element. + * @see \`{@link https://api.jquery.com/on/ }\` + * @since 1.7 + */ + on(events: JQuery.TypeEventHandlers, selector: JQuery.Selector): this; + /** + * Attach an event handler function for one or more events to the selected elements. + * @param events An object in which the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent a handler function to be called for the event(s). + * @param data Data to be passed to the handler in event.data when an event occurs. + * @see \`{@link https://api.jquery.com/on/ }\` + * @since 1.7 + */ + on( + events: JQuery.TypeEventHandlers, + data: TData, + ): this; + /** + * Attach an event handler function for one or more events to the selected elements. + * @param events An object in which the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent a handler function to be called for the event(s). + * @see \`{@link https://api.jquery.com/on/ }\` + * @since 1.7 + * @example ​ ````Attach multiple event handlers simultaneously using a plain object. +```html + + + + + on demo + + + + +​ +
      test div
      +​ + +​ + + +``` + */ + on(events: JQuery.TypeEventHandlers): this; + /** + * Attach a handler to an event for the elements. The handler is executed at most once per element per event type. + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param selector A selector string to filter the descendants of the selected elements that trigger the event. If the + * selector is null or omitted, the event is always triggered when it reaches the selected element. + * @param data Data to be passed to the handler in event.data when an event is triggered. + * @param handler A function to execute when the event is triggered. + * @see \`{@link https://api.jquery.com/one/ }\` + * @since 1.7 + */ + one( + events: TType, + selector: JQuery.Selector, + data: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Attach a handler to an event for the elements. The handler is executed at most once per element per event type. + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param selector A selector string to filter the descendants of the selected elements that trigger the event. If the + * selector is null or omitted, the event is always triggered when it reaches the selected element. + * @param data Data to be passed to the handler in event.data when an event is triggered. + * @param handler A function to execute when the event is triggered. + * @see \`{@link https://api.jquery.com/one/ }\` + * @since 1.7 + */ + one( + events: TType, + selector: null | undefined, + data: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Attach a handler to an event for the elements. The handler is executed at most once per element per event type. + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param selector A selector string to filter the descendants of the selected elements that trigger the event. If the + * selector is null or omitted, the event is always triggered when it reaches the selected element. + * @param handler A function to execute when the event is triggered. The value false is also allowed as a shorthand + * for a function that simply does return false. + * @see \`{@link https://api.jquery.com/one/ }\` + * @since 1.7 + */ + one( + events: TType, + selector: JQuery.Selector, + handler: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Attach a handler to an event for the elements. The handler is executed at most once per element per event type. + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param data Data to be passed to the handler in event.data when an event is triggered. + * @param handler A function to execute when the event is triggered. + * @see \`{@link https://api.jquery.com/one/ }\` + * @since 1.7 + */ + one( + events: TType, + data: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Attach a handler to an event for the elements. The handler is executed at most once per element per event type. + * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". + * @param handler A function to execute when the event is triggered. The value false is also allowed as a shorthand + * for a function that simply does return false. + * @see \`{@link https://api.jquery.com/one/ }\` + * @since 1.7 + * @example ​ ````Tie a one-time click to each div. +```html + + + + + one demo + + + + +​ +
      +
      +
      +
      +
      +

      Click a green square...

      +​ + +​ + + +``` + * @example ​ ````To display the text of all paragraphs in an alert box the first time each of them is clicked: +```javascript +$( "p" ).one( "click", function() { + alert( $( this ).text() ); +}); +``` + * @example ​ ````Event handlers will trigger once per element per event type +```html + + + + + one demo + + + +​ +
      0
      +
      Hover/click me
      +​ + +​ + + +``` + */ + one( + events: TType, + handler: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Attach a handler to an event for the elements. The handler is executed at most once per element per event type. + * @param events An object in which the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent a handler function to be called for the event(s). + * @param selector A selector string to filter the descendants of the selected elements that will call the handler. If + * the selector is null or omitted, the handler is always called when it reaches the selected element. + * @param data Data to be passed to the handler in event.data when an event occurs. + * @see \`{@link https://api.jquery.com/one/ }\` + * @since 1.7 + */ + one( + events: JQuery.TypeEventHandlers, + selector: JQuery.Selector, + data: TData, + ): this; + /** + * Attach a handler to an event for the elements. The handler is executed at most once per element per event type. + * @param events An object in which the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent a handler function to be called for the event(s). + * @param selector A selector string to filter the descendants of the selected elements that will call the handler. If + * the selector is null or omitted, the handler is always called when it reaches the selected element. + * @param data Data to be passed to the handler in event.data when an event occurs. + * @see \`{@link https://api.jquery.com/one/ }\` + * @since 1.7 + */ + one( + events: JQuery.TypeEventHandlers, + selector: null | undefined, + data: TData, + ): this; + /** + * Attach a handler to an event for the elements. The handler is executed at most once per element per event type. + * @param events An object in which the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent a handler function to be called for the event(s). + * @param selector A selector string to filter the descendants of the selected elements that will call the handler. If + * the selector is null or omitted, the handler is always called when it reaches the selected element. + * @see \`{@link https://api.jquery.com/one/ }\` + * @since 1.7 + */ + one(events: JQuery.TypeEventHandlers, selector: JQuery.Selector): this; + /** + * Attach a handler to an event for the elements. The handler is executed at most once per element per event type. + * @param events An object in which the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent a handler function to be called for the event(s). + * @param data Data to be passed to the handler in event.data when an event occurs. + * @see \`{@link https://api.jquery.com/one/ }\` + * @since 1.7 + */ + one( + events: JQuery.TypeEventHandlers, + data: TData, + ): this; + /** + * Attach a handler to an event for the elements. The handler is executed at most once per element per event type. + * @param events An object in which the string keys represent one or more space-separated event types and optional + * namespaces, and the values represent a handler function to be called for the event(s). + * @see \`{@link https://api.jquery.com/one/ }\` + * @since 1.7 + */ + one(events: JQuery.TypeEventHandlers): this; + /** + * Set the CSS outer height of each element in the set of matched elements. + * @param value_function _@param_ `value_function` + *
      + * * `value` — A number representing the number of pixels, or a number along with an optional unit of measure + * appended (as a string).
      + * * `function` — A function returning the outer height to set. Receives the index position of the element in the set + * and the old outer height as arguments. Within the function, `this` refers to the current element in + * the set. + * @see \`{@link https://api.jquery.com/outerHeight/ }\` + * @since 1.8.0 + * @example ​ ````Change the outer height of each div the first time it is clicked (and change its color). +```html + + + + + outerHeight demo + + + + +​ +
      d
      +
      d
      +
      d
      +
      d
      +
      d
      +​ + +​ + + +``` + */ + outerHeight( + value_function: string | number | ((this: TElement, index: number, height: number) => string | number), + includeMargin?: boolean, + ): this; + /** + * Get the current computed outer height (including padding, border, and optionally margin) for the first element in the set of matched elements. + * @param includeMargin A Boolean indicating whether to include the element's margin in the calculation. + * @see \`{@link https://api.jquery.com/outerHeight/ }\` + * @since 1.2.6 + * @example ​ ````Get the outerHeight of a paragraph. +```html + + + + + outerHeight demo + + + + +​ +

      Hello

      +​ + +​ + + +``` + */ + outerHeight(includeMargin?: boolean): number | undefined; + /** + * Set the CSS outer width of each element in the set of matched elements. + * @param value_function _@param_ `value_function` + *
      + * * `value` — A number representing the number of pixels, or a number along with an optional unit of measure + * appended (as a string).
      + * * `function` — A function returning the outer width to set. Receives the index position of the element in the set + * and the old outer width as arguments. Within the function, `this` refers to the current element in + * the set. + * @see \`{@link https://api.jquery.com/outerWidth/ }\` + * @since 1.8.0 + * @example ​ ````Change the outer width of each div the first time it is clicked (and change its color). +```html + + + + + outerWidth demo + + + + +​ +
      d
      +
      d
      +
      d
      +
      d
      +
      d
      +​ + +​ + + +``` + */ + outerWidth( + value_function: string | number | ((this: TElement, index: number, width: number) => string | number), + includeMargin?: boolean, + ): this; + /** + * Get the current computed outer width (including padding, border, and optionally margin) for the first element in the set of matched elements. + * @param includeMargin A Boolean indicating whether to include the element's margin in the calculation. + * @see \`{@link https://api.jquery.com/outerWidth/ }\` + * @since 1.2.6 + * @example ​ ````Get the outerWidth of a paragraph. +```html + + + + + outerWidth demo + + + + +​ +

      Hello

      +​ + +​ + + +``` + */ + outerWidth(includeMargin?: boolean): number | undefined; + /** + * Get the parent of each element in the current set of matched elements, optionally filtered by a selector. + * @param selector A string containing a selector expression to match elements against. + * @see \`{@link https://api.jquery.com/parent/ }\` + * @since 1.0 + * @example ​ ````Shows the parent of each element as (parent > child). Check the View Source to see the raw html. +```html + + + + + parent demo + + + + +​ +
      div, + span, + b +
      +​ +

      p, + span, + em + +

      +​ +
      div, + strong, + span, + em, + b, + + + b +
      +​ + +​ + + +``` + * @example ​ ````Find the parent element of each paragraph with a class "selected". +```html + + + + + parent demo + + + +​ +

      Hello

      +

      Hello Again

      +​ + +​ + + +``` + */ + parent(selector: K): JQuery; + parent(selector: K): JQuery; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + parent(selector?: JQuery.Selector): JQuery; + /** + * Get the ancestors of each element in the current set of matched elements, optionally filtered by a selector. + * @param selector A string containing a selector expression to match elements against. + * @see \`{@link https://api.jquery.com/parents/ }\` + * @since 1.0 + * @example ​ ````Find all parent elements of each b. +```html + + + + + parents demo + + + + +​ +
      +

      + + My parents are: + +

      +
      +​ + +​ + + +``` + * @example ​ ````Click to find all unique div parent elements of each span. +```html + + + + + parents demo + + + + +​ +

      +

      +
      Hello
      + Hello Again +
      +
      + And Hello Again +
      +

      + Click Hellos to toggle their parents. +​ + +​ + + +``` + */ + parents(selector: K | JQuery): JQuery; + parents(selector: K | JQuery): JQuery; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + parents(selector?: JQuery.Selector): JQuery; + /** + * Get the ancestors of each element in the current set of matched elements, up to but not including the element matched by the selector, DOM node, or jQuery object. + * @param selector_element _@param_ `selector_element` + *
      + * * `selector` — A string containing a selector expression to indicate where to stop matching ancestor elements.
      + * * `element` — A DOM node or jQuery object indicating where to stop matching ancestor elements. + * @param filter A string containing a selector expression to match elements against. + * @see \`{@link https://api.jquery.com/parentsUntil/ }\` + * @since 1.4 + * @since 1.6 + * @example ​ ````Find the ancestors of <li class="item-a"> up to <ul class="level-1"> and give them a red background color. Also, find ancestors of <li class="item-2"> that have a class of "yes" up to <ul class="level-1"> and give them a green border. +```html + + + + + parentsUntil demo + + + +​ +
        +
      • I
      • +
      • II +
          +
        • A
        • +
        • B +
            +
          • 1
          • +
          • 2
          • +
          • 3
          • +
          +
        • +
        • C
        • +
        +
      • +
      • III
      • +
      +​ + +​ + + +``` + */ + parentsUntil( + selector_element: JQuery.Selector | Element | JQuery, + filter: K, + ): JQuery; + parentsUntil( + selector_element: JQuery.Selector | Element | JQuery, + filter: K, + ): JQuery; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + parentsUntil( + selector_element?: JQuery.Selector | Element | JQuery, + filter?: JQuery.Selector, + ): JQuery; + /** + * Get the current coordinates of the first element in the set of matched elements, relative to the offset parent. + * @see \`{@link https://api.jquery.com/position/ }\` + * @since 1.2 + * @example ​ ````Access the position of the second paragraph: +```html + + + + + position demo + + + + +​ +
      +

      Hello

      +
      +

      +​ + +​ + + +``` + */ + position(): JQuery.Coordinates; + /** + * Insert content, specified by the parameter, to the beginning of each element in the set of matched elements. + * @param contents One or more additional DOM elements, text nodes, arrays of elements and text nodes, HTML strings, or + * jQuery objects to insert at the beginning of each element in the set of matched elements. + * @see \`{@link https://api.jquery.com/prepend/ }\` + * @since 1.0 + * @example ​ ````Prepends some HTML to all paragraphs. +```html + + + + + prepend demo + + + + +​ +

      there, friend!

      +

      amigo!

      +​ + +​ + + +``` + * @example ​ ````Prepends a DOM Element to all paragraphs. +```html + + + + + prepend demo + + + + +​ +

      is what I'd say

      +

      is what I said

      +​ + +​ + + +``` + * @example ​ ````Prepends a jQuery object (similar to an Array of DOM Elements) to all paragraphs. +```html + + + + + prepend demo + + + + +​ +

      is what was said.

      Hello +​ + +​ + + +``` + */ + prepend(...contents: Array>>): this; + /** + * Insert content, specified by the parameter, to the beginning of each element in the set of matched elements. + * @param funŃtion A function that returns an HTML string, DOM element(s), text node(s), or jQuery object to insert at + * the beginning of each element in the set of matched elements. Receives the index position of the + * element in the set and the old HTML value of the element as arguments. Within the function, `this` + * refers to the current element in the set. + * @see \`{@link https://api.jquery.com/prepend/ }\` + * @since 1.4 + */ + prepend( + funŃtion: ( + this: TElement, + index: number, + html: string, + ) => JQuery.htmlString | JQuery.TypeOrArray>, + ): this; + /** + * Insert every element in the set of matched elements to the beginning of the target. + * @param target A selector, element, HTML string, array of elements, or jQuery object; the matched set of elements + * will be inserted at the beginning of the element(s) specified by this parameter. + * @see \`{@link https://api.jquery.com/prependTo/ }\` + * @since 1.0 + * @example ​ ````Prepend all spans to the element with the ID "foo" (Check .prepend() documentation for more examples) +```html + + + + + prependTo demo + + + + +​ +
      FOO!
      +I have something to say... +​ + +​ + + +``` + */ + prependTo( + target: JQuery.Selector | JQuery.htmlString | JQuery.TypeOrArray | JQuery, + ): this; + /** + * Get the immediately preceding sibling of each element in the set of matched elements. If a selector is provided, it retrieves the previous sibling only if it matches that selector. + * @param selector A string containing a selector expression to match elements against. + * @see \`{@link https://api.jquery.com/prev/ }\` + * @since 1.0 + * @example ​ ````Find the very previous sibling of each div. +```html + + + + + prev demo + + + + +​ +
      +
      +
      has child
      +
      +
      +
      +
      +
      +

      +​ + +​ + + +``` + * @example ​ ````For each paragraph, find the very previous sibling that has a class "selected". +```html + + + + + prev demo + + + +​ +
      Hello
      +

      Hello Again

      +

      And Again

      +​ + +​ + + +``` + */ + prev(selector: K): JQuery; + prev(selector: K): JQuery; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + prev(selector?: JQuery.Selector): JQuery; + /** + * Get all preceding siblings of each element in the set of matched elements, optionally filtered by a selector. + * @param selector A string containing a selector expression to match elements against. + * @see \`{@link https://api.jquery.com/prevAll/ }\` + * @since 1.2 + * @example ​ ````Locate all the divs preceding the last div and give them a class. +```html + + + + + prevAll demo + + + + +​ +
      +
      +
      +
      +​ + +​ + + +``` + */ + prevAll(selector: K): JQuery; + prevAll(selector: K): JQuery; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + prevAll(selector?: JQuery.Selector): JQuery; + /** + * Get all preceding siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object. + * @param selector_element _@param_ `selector_element` + *
      + * * `selector` — A string containing a selector expression to indicate where to stop matching preceding sibling elements.
      + * * `element` — A DOM node or jQuery object indicating where to stop matching preceding sibling elements. + * @param filter A string containing a selector expression to match elements against. + * @see \`{@link https://api.jquery.com/prevUntil/ }\` + * @since 1.4 + * @since 1.6 + * @example ​ ````Find the siblings that precede <dt id="term-2"> up to the preceding <dt> and give them a red background color. Also, find previous <dd> siblings of <dt id="term-3"> up to <dt id="term-1"> and give them a green text color. +```html + + + + + prevUntil demo + + + +​ +
      +
      term 1
      +
      definition 1-a
      +
      definition 1-b
      +
      definition 1-c
      +
      definition 1-d
      +​ +
      term 2
      +
      definition 2-a
      +
      definition 2-b
      +
      definition 2-c
      +​ +
      term 3
      +
      definition 3-a
      +
      definition 3-b
      +
      +​ + +​ + + +``` + */ + prevUntil( + selector_element: JQuery.Selector | Element | JQuery, + filter: K, + ): JQuery; + prevUntil( + selector_element: JQuery.Selector | Element | JQuery, + filter: K, + ): JQuery; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + prevUntil( + selector_element?: JQuery.Selector | Element | JQuery, + filter?: JQuery.Selector, + ): JQuery; + /** + * Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished. + * @param type The type of queue that needs to be observed. + * @param target Object onto which the promise methods have to be attached + * @see \`{@link https://api.jquery.com/promise/ }\` + * @since 1.6 + */ + promise(type: string, target: T): T & JQuery.Promise; + /** + * Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished. + * @param target Object onto which the promise methods have to be attached + * @see \`{@link https://api.jquery.com/promise/ }\` + * @since 1.6 + */ + promise(target: T): T & JQuery.Promise; + /** + * Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished. + * @param type The type of queue that needs to be observed. + * @see \`{@link https://api.jquery.com/promise/ }\` + * @since 1.6 + * @example ​ ````Using .promise() on a collection with no active animation returns a resolved Promise: +```javascript +var div = $( "
      " ); +​ +div.promise().done(function( arg1 ) { + // Will fire right away and alert "true" + alert( this === div && arg1 === div ); +}); +``` + * @example ​ ````Resolve the returned Promise when all animations have ended (including those initiated in the animation callback or added later on): +```html + + + + + promise demo + + + + +​ + +

      Ready...

      +
      +
      +
      +
      +​ + +​ + + +``` + * @example ​ ````Resolve the returned Promise using a $.when() statement (the .promise() method makes it possible to do this with jQuery collections): +```html + + + + + promise demo + + + + +​ + +

      Ready...

      +
      +
      +
      +
      +​ + +​ + + +``` + */ + promise(type?: string): JQuery.Promise; + /** + * Set one or more properties for the set of matched elements. + * @param propertyName The name of the property to set. + * @param value_function _@param_ `value_function` + *
      + * * `value` — A value to set for the property.
      + * * `function` — A function returning the value to set. Receives the index position of the element in the set and the + * old property value as arguments. Within the function, the keyword `this` refers to the current element. + * @see \`{@link https://api.jquery.com/prop/ }\` + * @since 1.6 + */ + prop( + propertyName: string, + value_function: + | string + | number + | boolean + | symbol + | object + | null + | undefined + | ((this: TElement, index: number, oldPropertyValue: any) => any), + ): this; + /** + * Set one or more properties for the set of matched elements. + * @param properties An object of property-value pairs to set. + * @see \`{@link https://api.jquery.com/prop/ }\` + * @since 1.6 + * @example ​ ````Disable all checkboxes on the page. +```html + + + + + prop demo + + + + +​ + + + + +​ + +​ + + +``` + */ + prop(properties: JQuery.PlainObject): this; + /** + * Get the value of a property for the first element in the set of matched elements. + * @param propertyName The name of the property to get. + * @see \`{@link https://api.jquery.com/prop/ }\` + * @since 1.6 + * @example ​ ````Display the checked property and attribute of a checkbox as it changes. +```html + + + + + prop demo + + + + +​ + + +

      +​ + +​ + + +``` + */ + prop(propertyName: string): any; + /** + * Add a collection of DOM elements onto the jQuery stack. + * @param elements An array of elements to push onto the stack and make into a new jQuery object. + * @param name The name of a jQuery method that generated the array of elements. + * @param args The arguments that were passed in to the jQuery method (for serialization). + * @see \`{@link https://api.jquery.com/pushStack/ }\` + * @since 1.3 + */ + pushStack(elements: ArrayLike, name: string, args: any[]): this; + /** + * Add a collection of DOM elements onto the jQuery stack. + * @param elements An array of elements to push onto the stack and make into a new jQuery object. + * @see \`{@link https://api.jquery.com/pushStack/ }\` + * @since 1.0 + * @example ​ ````Add some elements onto the jQuery stack, then pop back off again. +```javascript +jQuery([]) + .pushStack( document.getElementsByTagName( "div" ) ) + .remove() + .end(); +``` + */ + pushStack(elements: ArrayLike): this; + /** + * Manipulate the queue of functions to be executed, once for each matched element. + * @param queueName A string containing the name of the queue. Defaults to fx, the standard effects queue. + * @param newQueue The new function to add to the queue, with a function to call that will dequeue the next item. + * An array of functions to replace the current queue contents. + * @see \`{@link https://api.jquery.com/queue/ }\` + * @since 1.2 + * @example ​ ````Set a queue array to delete the queue. +```html + + + + + queue demo + + + + +​ + + +
      +​ + +​ + + +``` + */ + queue(queueName: string, newQueue: JQuery.TypeOrArray>): this; + /** + * Manipulate the queue of functions to be executed, once for each matched element. + * @param newQueue The new function to add to the queue, with a function to call that will dequeue the next item. + * An array of functions to replace the current queue contents. + * @see \`{@link https://api.jquery.com/queue/ }\` + * @since 1.2 + * @example ​ ````Queue a custom function. +```html + + + + + queue demo + + + + +​ +Click here... +
      +​ + +​ + + +``` + */ + queue(newQueue: JQuery.TypeOrArray>): this; + /** + * Show the queue of functions to be executed on the matched elements. + * @param queueName A string containing the name of the queue. Defaults to fx, the standard effects queue. + * @see \`{@link https://api.jquery.com/queue/ }\` + * @since 1.2 + * @example ​ ````Show the length of the queue. +```html + + + + + queue demo + + + + +​ +

      The queue length is:

      +
      +​ + +​ + + +``` + */ + queue(queueName?: string): JQuery.Queue; + /** + * Specify a function to execute when the DOM is fully loaded. + * @param handler A function to execute after the DOM is ready. + * @see \`{@link https://api.jquery.com/ready/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.0. Use `jQuery(function() { })`. + * @example ​ ````Display a message when the DOM is loaded. +```html + + + + + ready demo + + + + + +​ +

      Not loaded yet.

      +​ + + +``` + */ + ready(handler: ($: JQueryStatic) => void): this; + /** + * Remove the set of matched elements from the DOM. + * @param selector A selector expression that filters the set of matched elements to be removed. + * @see \`{@link https://api.jquery.com/remove/ }\` + * @since 1.0 + * @example ​ ````Removes all paragraphs from the DOM +```html + + + + + remove demo + + + + +​ +

      Hello

      +how are +

      you?

      + +​ + +​ + + +``` + * @example ​ ````Removes all paragraphs that contain "Hello" from the DOM. Analogous to doing $("p").filter(":contains('Hello')").remove(). +```html + + + + + remove demo + + + + +​ +

      Hello

      +how are +

      you?

      + +​ + +​ + + +``` + */ + remove(selector?: string): this; + /** + * Remove an attribute from each element in the set of matched elements. + * @param attributeName An attribute to remove; as of version 1.7, it can be a space-separated list of attributes. + * @see \`{@link https://api.jquery.com/removeAttr/ }\` + * @since 1.0 + * @example ​ ````Clicking the button changes the title of the input next to it. Move the mouse pointer over the text input to see the effect of adding and removing the title attribute. +```html + + + + + removeAttr demo + + + +​ + + +
      +​ + +​ + + +``` + */ + removeAttr(attributeName: string): this; + /** + * Remove a single class, multiple classes, or all classes from each element in the set of matched elements. + * @param className_function _@param_ `className_function` + *
      + * * `className` — One or more space-separated classes to be removed from the class attribute of each matched element.
      + * * `function` — A function returning one or more space-separated class names to be removed. Receives the index + * position of the element in the set and the old class value as arguments. + * @see \`{@link https://api.jquery.com/removeClass/ }\` + * @since 1.0 + * @since 1.4 + * @since 3.3 + * @example ​ ````Remove the class 'blue' from the matched elements. +```html + + + + + removeClass demo + + + + +​ +

      Hello

      +

      and

      +

      then

      +

      Goodbye

      +​ + +​ + + +``` + * @example ​ ````Remove the class 'blue' and 'under' from the matched elements. +```html + + + + + removeClass demo + + + + +​ +

      Hello

      +

      and

      +

      then

      +

      Goodbye

      +​ + +​ + + +``` + * @example ​ ````Remove all the classes from the matched elements. +```html + + + + + removeClass demo + + + + +​ +

      Hello

      +

      and

      +

      then

      +

      Goodbye

      +​ + +​ + + +``` + */ + removeClass( + className_function?: + | JQuery.TypeOrArray + | ((this: TElement, index: number, className: string) => string), + ): this; + /** + * Remove a previously-stored piece of data. + * @param name A string naming the piece of data to delete. + * An array or space-separated string naming the pieces of data to delete. + * @see \`{@link https://api.jquery.com/removeData/ }\` + * @since 1.2.3 + * @since 1.7 + * @example ​ ````Set a data store for 2 names then remove one of them. +```html + + + + + removeData demo + + + + +​ +
      value1 before creation:
      +
      value1 after creation:
      +
      value1 after removal:
      +
      value2 after removal:
      +​ + +​ + + +``` + */ + removeData(name?: JQuery.TypeOrArray): this; + /** + * Remove a property for the set of matched elements. + * @param propertyName The name of the property to remove. + * @see \`{@link https://api.jquery.com/removeProp/ }\` + * @since 1.6 + * @example ​ ````Set a numeric property on a paragraph and then remove it. +```html + + + + + removeProp demo + + + + +​ +

      +​ + +​ + + +``` + */ + removeProp(propertyName: string): this; + /** + * Replace each target element with the set of matched elements. + * @param target A selector string, jQuery object, DOM element, or array of elements indicating which element(s) to replace. + * @see \`{@link https://api.jquery.com/replaceAll/ }\` + * @since 1.2 + * @example ​ ````Replace all the paragraphs with bold words. +```html + + + + + replaceAll demo + + + +​ +

      Hello

      +

      cruel

      +

      World

      +​ + +​ + + +``` + */ + replaceAll(target: JQuery.Selector | JQuery | JQuery.TypeOrArray): this; + /** + * Replace each element in the set of matched elements with the provided new content and return the set of elements that was removed. + * @param newContent_function _@param_ `newContent_function` + *
      + * * `newContent` — The content to insert. May be an HTML string, DOM element, array of DOM elements, or jQuery object.
      + * * `function` — A function that returns content with which to replace the set of matched elements. + * @see \`{@link https://api.jquery.com/replaceWith/ }\` + * @since 1.2 + * @since 1.4 + * @example ​ ````On click, replace the button with a div containing the same word. +```html + + + + + replaceWith demo + + + + +​ + + + +​ + +​ + + +``` + * @example ​ ````Replace all paragraphs with bold words. +```html + + + + + replaceWith demo + + + +​ +

      Hello

      +

      cruel

      +

      World

      +​ + +​ + + +``` + * @example ​ ````On click, replace each paragraph with a div that is already in the DOM and selected with the $() function. Notice it doesn't clone the object but rather moves it to replace the paragraph. +```html + + + + + replaceWith demo + + + + +​ +

      Hello

      +

      cruel

      +

      World

      +
      Replaced!
      +​ + +​ + + +``` + * @example ​ ````On button click, replace the containing div with its child divs and append the class name of the selected element to the paragraph. +```html + + + + + replaceWith demo + + + + +​ +

      + +

      +
      +
      Scooby
      +
      Dooby
      +
      Doo
      +
      +​ + +​ + + +``` + */ + replaceWith( + newContent_function: + | JQuery.htmlString + | JQuery + | JQuery.TypeOrArray + | JQuery.Node + | ((this: TElement, index: number, oldhtml: JQuery.htmlString) => + | JQuery.htmlString + | JQuery + | JQuery.TypeOrArray + | JQuery.Node), + ): this; + /** + * Bind an event handler to the "resize" JavaScript event, or trigger that event on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/resize-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.resize(fn)` use `.on("resize", fn)`. Instead of `.resize()` use `.trigger("resize")`. + */ + resize( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "resize" JavaScript event, or trigger that event on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/resize-shorthand/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.resize(fn)` use `.on("resize", fn)`. Instead of `.resize()` use `.trigger("resize")`. + * @example ​ ````To see the window width while (or after) it is resized, try: +```javascript +$( window ).resize(function() { + $( "body" ).prepend( "
      " + $( window ).width() + "
      " ); +}); +``` + */ + resize( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/scroll-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.scroll(fn)` use `.on("scroll", fn)`. Instead of `.scroll()` use `.trigger("scroll")`. + */ + scroll( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/scroll-shorthand/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.scroll(fn)` use `.on("scroll", fn)`. Instead of `.scroll()` use `.trigger("scroll")`. + * @example ​ ````To do something when your page is scrolled: +```html + + + + + scroll demo + + + + +​ +
      Try scrolling the iframe.
      +

      Paragraph - Scroll happened!

      +​ + +​ + + +``` + */ + scroll( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Set the current horizontal position of the scroll bar for each of the set of matched elements. + * @param value An integer indicating the new position to set the scroll bar to. + * @see \`{@link https://api.jquery.com/scrollLeft/ }\` + * @since 1.2.6 + * @example ​ ````Set the scrollLeft of a div. +```html + + + + + scrollLeft demo + + + + +​ +

      lalala

      Hello

      +​ + +​ + + +``` + */ + scrollLeft(value: number): this; + /** + * Get the current horizontal position of the scroll bar for the first element in the set of matched elements. + * @see \`{@link https://api.jquery.com/scrollLeft/ }\` + * @since 1.2.6 + * @example ​ ````Get the scrollLeft of a paragraph. +```html + + + + + scrollLeft demo + + + + +​ +

      Hello

      +​ + +​ + + +``` + */ + scrollLeft(): number | undefined; + /** + * Set the current vertical position of the scroll bar for each of the set of matched elements. + * @param value A number indicating the new position to set the scroll bar to. + * @see \`{@link https://api.jquery.com/scrollTop/ }\` + * @since 1.2.6 + * @example ​ ````Set the scrollTop of a div. +```html + + + + + scrollTop demo + + + + +​ +

      lalala

      Hello

      +​ + +​ + + +``` + */ + scrollTop(value: number): this; + /** + * Get the current vertical position of the scroll bar for the first element in the set of matched elements or set the vertical position of the scroll bar for every matched element. + * @see \`{@link https://api.jquery.com/scrollTop/ }\` + * @since 1.2.6 + * @example ​ ````Get the scrollTop of a paragraph. +```html + + + + + scrollTop demo + + + + +​ +

      Hello

      +​ + +​ + + +``` + */ + scrollTop(): number | undefined; + /** + * Bind an event handler to the "select" JavaScript event, or trigger that event on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/select-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.select(fn)` use `.on("select", fn)`. Instead of `.select()` use `.trigger("select")`. + */ + select( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "select" JavaScript event, or trigger that event on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/select-shorthand/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.select(fn)` use `.on("select", fn)`. Instead of `.select()` use `.trigger("select")`. + * @example ​ ````To do something when text in input boxes is selected: +```html + + + + + select demo + + + + +​ +

      Click and drag the mouse to select text in the inputs.

      + + +
      + ​ + +​ + + +``` + * @example ​ ````To trigger the select event on all input elements, try: +```javascript +$( "input" ).select(); +``` + */ + select( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Encode a set of form elements as a string for submission. + * @see \`{@link https://api.jquery.com/serialize/ }\` + * @since 1.0 + * @example ​ ````Serialize a form to a query string that could be sent to a server in an Ajax request. +```html + + + + + serialize demo + + + + +​ +
      + +​ +
      + +​ +
      + + + + +​ +
      + + + + +
      +​ +

      +​ + +​ + + +``` + */ + serialize(): string; + /** + * Encode a set of form elements as an array of names and values. + * @see \`{@link https://api.jquery.com/serializeArray/ }\` + * @since 1.2 + * @example ​ ````Get the values from a form, iterate through them, and append them to a results display. +```html + + + + + serializeArray demo + + + + +​ +

      Results:

      +
      + + +
      + + + + + + + + +
      +​ + +​ + + +``` + */ + serializeArray(): JQuery.NameValuePair[]; + /** + * Display the matched elements. + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/show/ }\` + * @since 1.4.3 + */ + show(duration: JQuery.Duration, easing: string, complete: (this: TElement) => void): this; + /** + * Display the matched elements. + * @param duration A string or number determining how long the animation will run. + * @param easing_complete _@param_ `easing_complete` + *
      + * * `easing` — A string indicating which easing function to use for the transition.
      + * * `complete` — A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/show/ }\` + * @since 1.0 + * @since 1.4.3 + * @example ​ ````Show the first div, followed by each next adjacent sibling div in order, with a 200ms animation. Each animation starts when the previous sibling div's animation ends. +```html + + + + + show demo + + + + +​ + + +
      Hello 3,
      +
      how
      +
      are
      +
      you?
      +​ + +​ + + +``` + * @example ​ ````Show all span and input elements with an animation. Change the text once the animation is done. +```html + + + + + show demo + + + + +​ + +Are you sure? (type 'yes' if you are) +
      +
      + +
      +
      +

      I'm hidden...

      +​ + +​ + + +``` + */ + show(duration: JQuery.Duration, easing_complete: string | ((this: TElement) => void)): this; + /** + * Display the matched elements. + * @param duration_complete_options _@param_ `duration_complete_options` + *
      + * * `duration` — A string or number determining how long the animation will run.
      + * * `complete` — A function to call once the animation is complete, called once per matched element.
      + * * `options` — A map of additional options to pass to the method. + * @see \`{@link https://api.jquery.com/show/ }\` + * @since 1.0 + * @example ​ ````Animates all hidden paragraphs to show slowly, completing the animation within 600 milliseconds. +```html + + + + + show demo + + + + +​ + +

      Hello 2

      +​ + +​ + + +``` + */ + show( + duration_complete_options?: JQuery.Duration | ((this: TElement) => void) | JQuery.EffectsOptions, + ): this; + /** + * Get the siblings of each element in the set of matched elements, optionally filtered by a selector. + * @param selector A string containing a selector expression to match elements against. + * @see \`{@link https://api.jquery.com/siblings/ }\` + * @since 1.0 + * @example ​ ````Find the unique siblings of all yellow li elements in the 3 lists (including other yellow li elements if appropriate). +```html + + + + + siblings demo + + + + +​ +
        +
      • One
      • +
      • Two
      • +
      • Three
      • +
      • Four
      • +
      +​ +
        +
      • Five
      • +
      • Six
      • +
      • Seven
      • +
      +​ +
        +
      • Eight
      • +
      • Nine
      • +
      • Ten
      • +
      • Eleven
      • +
      +​ +

      Unique siblings:

      +​ + +​ + + +``` + * @example ​ ````Find all siblings with a class "selected" of each div. +```html + + + + + siblings demo + + + +​ +
      Hello
      +

      Hello Again

      +

      And Again

      +​ + +​ + + +``` + */ + siblings(selector: K): JQuery; + siblings(selector: K): JQuery; + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + siblings(selector?: JQuery.Selector): JQuery; + /** + * Reduce the set of matched elements to a subset specified by a range of indices. + * @param start An integer indicating the 0-based position at which the elements begin to be selected. If negative, + * it indicates an offset from the end of the set. + * @param end An integer indicating the 0-based position at which the elements stop being selected. If negative, + * it indicates an offset from the end of the set. If omitted, the range continues until the end of the set. + * @see \`{@link https://api.jquery.com/slice/ }\` + * @since 1.1.4 + * @example ​ ````Turns divs yellow based on a random slice. +```html + + + + + slice demo + + + + +​ +

      + Click the button!

      +
      +
      +
      +
      +
      +
      +
      +
      +
      + ​ + +​ + + +``` + * @example ​ ````Selects all paragraphs, then slices the selection to include only the first element. +```javascript +$( "p" ).slice( 0, 1 ).wrapInner( "" ); +``` + * @example ​ ````Selects all paragraphs, then slices the selection to include only the first and second element. +```javascript +$( "p" ).slice( 0, 2 ).wrapInner( "" ); +``` + * @example ​ ````Selects all paragraphs, then slices the selection to include only the second element. +```javascript +$( "p" ).slice( 1, 2 ).wrapInner( "" ); +``` + * @example ​ ````Selects all paragraphs, then slices the selection to include only the second and third element. +```javascript +$( "p" ).slice( 1 ).wrapInner( "" ); +``` + * @example ​ ````Selects all paragraphs, then slices the selection to include only the third element. +```javascript +$( "p" ).slice( -1 ).wrapInner( "" ); +``` + */ + slice(start: number, end?: number): this; + /** + * Display the matched elements with a sliding motion. + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/slideDown/ }\` + * @since 1.4.3 + */ + slideDown(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this; + /** + * Display the matched elements with a sliding motion. + * @param duration_easing _@param_ `duration_easing` + *
      + * * `duration` — A string or number determining how long the animation will run.
      + * * `easing` — A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/slideDown/ }\` + * @since 1.0 + * @since 1.4.3 + * @example ​ ````Animates all inputs to slide down, completing the animation within 1000 milliseconds. Once the animation is done, the input look is changed especially if it is the middle input which gets the focus. +```html + + + + + slideDown demo + + + + +​ +
      Push!
      + + + + ​ + +​ + + +``` + */ + slideDown(duration_easing: JQuery.Duration | string, complete: (this: TElement) => void): this; + /** + * Display the matched elements with a sliding motion. + * @param duration_easing_complete_options _@param_ `duration_easing_complete_options` + *
      + * * `duration` — A string or number determining how long the animation will run.
      + * * `easing` — A string indicating which easing function to use for the transition.
      + * * `complete` — A function to call once the animation is complete, called once per matched element.
      + * * `options` — A map of additional options to pass to the method. + * @see \`{@link https://api.jquery.com/slideDown/ }\` + * @since 1.0 + * @since 1.4.3 + * @example ​ ````Animates all divs to slide down and show themselves over 600 milliseconds. +```html + + + + + slideDown demo + + + + +​ +Click me! +
      +
      +
      +​ + +​ + + +``` + */ + slideDown( + duration_easing_complete_options?: + | JQuery.Duration + | string + | ((this: TElement) => void) + | JQuery.EffectsOptions, + ): this; + /** + * Display or hide the matched elements with a sliding motion. + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/slideToggle/ }\` + * @since 1.4.3 + */ + slideToggle(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this; + /** + * Display or hide the matched elements with a sliding motion. + * @param duration_easing _@param_ `duration_easing` + *
      + * * `duration` — A string or number determining how long the animation will run.
      + * * `easing` — A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/slideToggle/ }\` + * @since 1.0 + * @since 1.4.3 + * @example ​ ````Animates divs between dividers with a toggle that makes some appear and some disappear. +```html + + + + + slideToggle demo + + + + +​ +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +

      There have been 0 toggled divs.

      +​ + +​ + + +``` + */ + slideToggle(duration_easing: JQuery.Duration | string, complete: (this: TElement) => void): this; + /** + * Display or hide the matched elements with a sliding motion. + * @param duration_easing_complete_options _@param_ `duration_easing_complete_options` + *
      + * * `duration` — A string or number determining how long the animation will run.
      + * * `easing` — A string indicating which easing function to use for the transition.
      + * * `complete` — A function to call once the animation is complete, called once per matched element.
      + * * `options` — A map of additional options to pass to the method. + * @see \`{@link https://api.jquery.com/slideToggle/ }\` + * @since 1.0 + * @since 1.4.3 + * @example ​ ````Animates all paragraphs to slide up or down, completing the animation within 600 milliseconds. +```html + + + + + slideToggle demo + + + + +​ + +

      + This is the paragraph to end all paragraphs. You + should feel lucky to have seen such a paragraph in + your life. Congratulations! +

      +​ + +​ + + +``` + */ + slideToggle( + duration_easing_complete_options?: + | JQuery.Duration + | string + | ((this: TElement) => void) + | JQuery.EffectsOptions, + ): this; + /** + * Hide the matched elements with a sliding motion. + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/slideUp/ }\` + * @since 1.4.3 + */ + slideUp(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this; + /** + * Hide the matched elements with a sliding motion. + * @param duration_easing _@param_ `duration_easing` + *
      + * * `duration` — A string or number determining how long the animation will run.
      + * * `easing` — A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/slideUp/ }\` + * @since 1.0 + * @since 1.4.3 + * @example ​ ````Animates the parent paragraph to slide up, completing the animation within 200 milliseconds. Once the animation is done, it displays an alert. +```html + + + + + slideUp demo + + + + +​ +
      + + +
      +​ +
      + + +
      +​ +
      + + +
      +​ +
      +​ + +​ + + +``` + */ + slideUp(duration_easing: JQuery.Duration | string, complete: (this: TElement) => void): this; + /** + * Hide the matched elements with a sliding motion. + * @param duration_easing_complete_options _@param_ `duration_easing_complete_options` + *
      + * * `duration` — A string or number determining how long the animation will run.
      + * * `easing` — A string indicating which easing function to use for the transition.
      + * * `complete` — A function to call once the animation is complete, called once per matched element.
      + * * `options` — A map of additional options to pass to the method. + * @see \`{@link https://api.jquery.com/slideUp/ }\` + * @since 1.0 + * @since 1.4.3 + * @example ​ ````Animates all divs to slide up, completing the animation within 400 milliseconds. +```html + + + + + slideUp demo + + + + +​ +Click me! +
      +
      +
      +
      +
      +​ + +​ + + +``` + */ + slideUp( + duration_easing_complete_options?: + | JQuery.Duration + | string + | ((this: TElement) => void) + | JQuery.EffectsOptions, + ): this; + /** + * Stop the currently-running animation on the matched elements. + * @param queue The name of the queue in which to stop animations. + * @param clearQueue A Boolean indicating whether to remove queued animation as well. Defaults to false. + * @param jumpToEnd A Boolean indicating whether to complete the current animation immediately. Defaults to false. + * @see \`{@link https://api.jquery.com/stop/ }\` + * @since 1.7 + */ + stop(queue: string, clearQueue?: boolean, jumpToEnd?: boolean): this; + /** + * Stop the currently-running animation on the matched elements. + * @param clearQueue A Boolean indicating whether to remove queued animation as well. Defaults to false. + * @param jumpToEnd A Boolean indicating whether to complete the current animation immediately. Defaults to false. + * @see \`{@link https://api.jquery.com/stop/ }\` + * @since 1.2 + * @example ​ ````Click the Go button once to start the animation, then click the STOP button to stop it where it's currently positioned. Another option is to click several buttons to queue them up and see that stop just kills the currently playing one. +```html + + + + + stop demo + + + + +​ + + + +
      +​ + +​ + + +``` + * @example ​ ````Click the slideToggle button to start the animation, then click again before the animation is completed. The animation will toggle the other direction from the saved starting point. +```html + + + + + stop demo + + + + +​ + +
      +​ + +​ + + +``` + */ + stop(clearQueue?: boolean, jumpToEnd?: boolean): this; + /** + * Bind an event handler to the "submit" JavaScript event, or trigger that event on an element. + * @param eventData An object containing data that will be passed to the event handler. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/submit-shorthand/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.submit(fn)` use `.on("submit", fn)`. Instead of `.submit()` use `.trigger("submit")`. + */ + submit( + eventData: TData, + handler: JQuery.TypeEventHandler, + ): this; + /** + * Bind an event handler to the "submit" JavaScript event, or trigger that event on an element. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/submit-shorthand/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`. + * + * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu. + * + * **Solution**: Instead of `.submit(fn)` use `.on("submit", fn)`. Instead of `.submit()` use `.trigger("submit")`. + * @example ​ ````If you'd like to prevent forms from being submitted unless a flag variable is set, try: +```html + + + + + submit demo + + + + +​ +

      Type 'correct' to validate.

      +
      +
      + + +
      +
      + +​ + +​ + + +``` + * @example ​ ````If you'd like to prevent forms from being submitted unless a flag variable is set, try: +```javascript +$( "form" ).submit(function() { + return this.some_flag_variable; +}); +``` + * @example ​ ````To trigger the submit event on the first form on the page, try: +```javascript +$( "form:first" ).submit(); +``` + */ + submit( + handler?: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Set the content of each element in the set of matched elements to the specified text. + * @param text_function _@param_ `text_function` + *
      + * * `text` — The text to set as the content of each matched element. When Number or Boolean is supplied, it will + * be converted to a String representation.
      + * * `function` — A function returning the text content to set. Receives the index position of the element in the set + * and the old text value as arguments. + * @see \`{@link https://api.jquery.com/text/ }\` + * @since 1.0 + * @since 1.4 + * @example ​ ````Add text to the paragraph (notice the bold tag is escaped). +```html + + + + + text demo + + + + +​ +

      Test Paragraph.

      +​ + +​ + + +``` + */ + text( + text_function: + | string + | number + | boolean + | ((this: TElement, index: number, text: string) => string | number | boolean), + ): this; + /** + * Get the combined text contents of each element in the set of matched elements, including their descendants. + * @see \`{@link https://api.jquery.com/text/ }\` + * @since 1.0 + * @example ​ ````Find the text in the first paragraph (stripping out the html), then set the html of the last paragraph to show it is just text (the red bold is gone). +```html + + + + + text demo + + + + +​ +

      Test Paragraph.

      +

      +​ + +​ + + +``` + */ + text(): string; + /** + * Retrieve all the elements contained in the jQuery set, as an array. + * @see \`{@link https://api.jquery.com/toArray/ }\` + * @since 1.4 + * @example ​ ````Select all divs in the document and return the DOM Elements as an Array; then use the built-in reverse() method to reverse that array. +```html + + + + + toArray demo + + + + +​ +Reversed - +​ +
      One
      +
      Two
      +
      Three
      ​ + +​ + + +``` + */ + toArray(): TElement[]; + /** + * Display or hide the matched elements. + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/toggle/ }\` + * @since 1.4.3 + */ + toggle(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this; + /** + * Display or hide the matched elements. + * @param duration A string or number determining how long the animation will run. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/toggle/ }\` + * @since 1.0 + */ + toggle(duration: JQuery.Duration, complete: (this: TElement) => void): this; + /** + * Display or hide the matched elements. + * @param duration_complete_options_display _@param_ `duration_complete_options_display` + *
      + * * `duration` — A string or number determining how long the animation will run.
      + * * `complete` — A function to call once the animation is complete, called once per matched element.
      + * * `options` — A map of additional options to pass to the method.
      + * * `display` — Use true to show the element or false to hide it. + * @see \`{@link https://api.jquery.com/toggle/ }\` + * @since 1.0 + * @since 1.3 + * @example ​ ````Toggles all paragraphs. +```html + + + + + toggle demo + + + +​ + +

      Hello

      +

      Good Bye

      +​ + +​ + + +``` + * @example ​ ````Animates all paragraphs to be shown if they are hidden and hidden if they are visible, completing the animation within 600 milliseconds. +```html + + + + + toggle demo + + + + +​ + +

      Hiya

      +

      Such interesting text, eh?

      +​ + +​ + + +``` + * @example ​ ````Shows all paragraphs, then hides them all, back and forth. +```html + + + + + toggle demo + + + +​ + +

      Hello

      +

      Good Bye

      +​ + +​ + + +``` + */ + toggle( + duration_complete_options_display?: + | JQuery.Duration + | ((this: TElement) => void) + | JQuery.EffectsOptions + | boolean, + ): this; + /** + * Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the state argument. + * @param className_function _@param_ `className_function` + *
      + * * `className` — One or more class names (separated by spaces) to be toggled for each element in the matched set.
      + * * `function` — A function that returns class names to be toggled in the class attribute of each element in the + * matched set. Receives the index position of the element in the set, the old class value, and the state as arguments. + * @param state A Boolean (not just truthy/falsy) value to determine whether the class should be added or removed. + * @see \`{@link https://api.jquery.com/toggleClass/ }\` + * @since 1.0 + * @since 1.3 + * @since 1.4 + * @since 3.3 + * @example ​ ````Toggle the class 'highlight' when a paragraph is clicked. +```html + + + + + toggleClass demo + + + + +​ +

      Click to toggle

      +

      highlight

      +

      on these

      +

      paragraphs

      +​ + +​ + + +``` + * @example ​ ````Add the "highlight" class to the clicked paragraph on every third click of that paragraph, remove it every first and second click. +```html + + + + + toggleClass demo + + + + +​ +

      Click to toggle (clicks: 0)

      +

      highlight (clicks: 0)

      +

      on these (clicks: 0)

      +

      paragraphs (clicks: 0)

      +​ + +​ + + +``` + * @example ​ ````Toggle the class name(s) indicated on the buttons for each div. +```html + + + + + toggleClass demo + + + + +​ +
      + + + + + reset +
      +
      +
      +
      +
      +
      +
      +​ + +​ + + +``` + */ + toggleClass( + className_function: + | JQuery.TypeOrArray + | ((this: TElement, index: number, className: string, state: TState) => string), + state?: TState, + ): this; + /** + * Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the state argument. + * @param state A boolean value to determine whether the class should be added or removed. + * @see \`{@link https://api.jquery.com/toggleClass/ }\` + * @since 1.4 + * @deprecated ​ Deprecated since 3.0. See \`{@link https://github.com/jquery/jquery/pull/2618 }\`. + * + * **Cause**: Calling `.toggleClass()` with no arguments, or with a single Boolean `true` or `false` argument, has been deprecated. Its behavior was poorly documented, but essentially the method saved away the current class value in a data item when the class was removed and restored the saved value when it was toggled back. If you do not believe you are specificially trying to use this form of the method, it is possible you are accidentally doing so via an inadvertent undefined value, as `.toggleClass( undefined )` toggles all classes. + * + * **Solution**: If this functionality is still needed, save the current full `.attr( "class" )` value in a data item and restore it when required. + */ + toggleClass(state?: boolean): this; + /** + * Execute all handlers and behaviors attached to the matched elements for the given event type. + * @param eventType_event _@param_ `eventType_event` + *
      + * * `eventType` — A string containing a JavaScript event type, such as `click` or `submit`.
      + * * `event` — A \`{@link https://api.jquery.com/category/events/event-object/ jQuery.Event}\` object. + * @param extraParameters Additional parameters to pass along to the event handler. + * @see \`{@link https://api.jquery.com/trigger/ }\` + * @since 1.0 + * @since 1.3 + * @example ​ ````Clicks to button #2 also trigger a click for button #1. +```html + + + + + trigger demo + + + + +​ + + +
      0 button #1 clicks.
      +
      0 button #2 clicks.
      +​ + +​ + + +``` + * @example ​ ````To submit the first form without using the submit() function, try: +```javascript +$( "form:first" ).trigger( "submit" ); +``` + * @example ​ ````To submit the first form without using the submit() function, try: +```javascript +var event = jQuery.Event( "submit" ); +$( "form:first" ).trigger( event ); +if ( event.isDefaultPrevented() ) { + // Perform an action... +} +``` + * @example ​ ````To pass arbitrary data to an event: +```javascript +$( "p" ) + .click(function( event, a, b ) { + // When a normal click fires, a and b are undefined + // for a trigger like below a refers to "foo" and b refers to "bar" + }) + .trigger( "click", [ "foo", "bar" ] ); +``` + * @example ​ ````To pass arbitrary data through an event object: +```javascript +var event = jQuery.Event( "logged" ); +event.user = "foo"; +event.pass = "bar"; +$( "body" ).trigger( event ); +``` + * @example ​ ````Alternative way to pass data through an event object: +```javascript +$( "body" ).trigger({ + type:"logged", + user:"foo", + pass:"bar" +}); +``` + */ + trigger( + eventType_event: string | JQuery.Event, + extraParameters?: any[] | JQuery.PlainObject | string | number | boolean, + ): this; + /** + * Execute all handlers attached to an element for an event. + * @param eventType_event _@param_ `eventType_event` + *
      + * * `eventType` — A string containing a JavaScript event type, such as `click` or `submit`.
      + * * `event` — A \`{@link https://api.jquery.com/category/events/event-object/ jQuery.Event}\` object. + * @param extraParameters Additional parameters to pass along to the event handler. + * @see \`{@link https://api.jquery.com/triggerHandler/ }\` + * @since 1.2 + * @since 1.3 + * @example ​ ````If you called .triggerHandler() on a focus event - the browser's default focus action would not be triggered, only the event handlers bound to the focus event. +```html + + + + + triggerHandler demo + + + +​ + +

      +​ + +​ + +​ + + +``` + */ + triggerHandler( + eventType_event: string | JQuery.Event, + extraParameters?: any[] | JQuery.PlainObject | string | number | boolean, + ): any; + /** + * Remove a previously-attached event handler from the elements. + * @param event A string containing one or more DOM event types, such as "click" or "submit," or custom event names. + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/unbind/ }\` + * @since 1.0 + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.0. Use \`{@link off }\`. + * + * **Cause**: These event binding methods have been deprecated in favor of the `.on()` and `.off()` methods which can handle both delegated and direct event binding. Although the older methods are still present in jQuery 3.0, they may be removed as early as the next major-version update. + * + * **Solution**: Change the method call to use `.on()` or `.off()`, the documentation for the old methods include specific instructions. In general, the `.bind()` and `.unbind()` methods can be renamed directly to `.on()` and `.off()` respectively since the argument orders are identical. + * @example ​ ````Can bind and unbind events to the colored button. +```html + + + + + unbind demo + + + + +​ + + + +
      Click!
      +​ + +​ + + +``` + * @example ​ ````To unbind just one previously bound handler, pass the function in as the second argument: +```javascript +var foo = function() { + // Code to handle some kind of event +}; +​ +$( "p" ).bind( "click", foo ); // ... Now foo will be called when paragraphs are clicked ... +​ +$( "p" ).unbind( "click", foo ); // ... foo will no longer be called. +``` + */ + unbind( + event: TType, + handler: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Remove a previously-attached event handler from the elements. + * @param event A string containing one or more DOM event types, such as "click" or "submit," or custom event names. + * A jQuery.Event object. + * @see \`{@link https://api.jquery.com/unbind/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.0. Use \`{@link off }\`. + * + * **Cause**: These event binding methods have been deprecated in favor of the `.on()` and `.off()` methods which can handle both delegated and direct event binding. Although the older methods are still present in jQuery 3.0, they may be removed as early as the next major-version update. + * + * **Solution**: Change the method call to use `.on()` or `.off()`, the documentation for the old methods include specific instructions. In general, the `.bind()` and `.unbind()` methods can be renamed directly to `.on()` and `.off()` respectively since the argument orders are identical. + * @example ​ ````To unbind all events from all paragraphs, write: +```javascript +$( "p" ).unbind(); +``` + * @example ​ ````To unbind all click events from all paragraphs, write: +```javascript +$( "p" ).unbind( "click" ); +``` + */ + unbind(event?: string | JQuery.TriggeredEvent): this; + /** + * Remove a handler from the event for all elements which match the current selector, based upon a specific set of root elements. + * @param selector A selector which will be used to filter the event results. + * @param eventType A string containing a JavaScript event type, such as "click" or "keydown" + * @param handler A function to execute each time the event is triggered. + * @see \`{@link https://api.jquery.com/undelegate/ }\` + * @since 1.4.2 + * @deprecated ​ Deprecated since 3.0. Use \`{@link off }\`. + * + * **Cause**: These event binding methods have been deprecated in favor of the `.on()` and `.off()` methods which can handle both delegated and direct event binding. Although the older methods are still present in jQuery 3.0, they may be removed as early as the next major-version update. + * + * **Solution**: Change the method call to use `.on()` or `.off()`, the documentation for the old methods include specific instructions. In general, the `.bind()` and `.unbind()` methods can be renamed directly to `.on()` and `.off()` respectively since the argument orders are identical. + * @example ​ ````Can bind and unbind events to the colored button. +```html + + + + + undelegate demo + + + + +​ + + + +
      Click!
      +​ + +​ + + +``` + * @example ​ ````To undelegate just one previously bound handler, pass the function in as the third argument: +```javascript +var foo = function () { + // Code to handle some kind of event +}; +​ +// ... Now foo will be called when paragraphs are clicked ... +$( "body" ).delegate( "p", "click", foo ); +​ +// ... foo will no longer be called. +$( "body" ).undelegate( "p", "click", foo ); +``` + */ + undelegate( + selector: JQuery.Selector, + eventType: TType, + handler: + | JQuery.TypeEventHandler + | false, + ): this; + /** + * Remove a handler from the event for all elements which match the current selector, based upon a specific set of root elements. + * @param selector A selector which will be used to filter the event results. + * @param eventType_events _@param_ `eventType_events` + *
      + * * `eventType` — A string containing a JavaScript event type, such as "click" or "keydown"
      + * * `events` — An object of one or more event types and previously bound functions to unbind from them. + * @see \`{@link https://api.jquery.com/undelegate/ }\` + * @since 1.4.2 + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.0. Use \`{@link off }\`. + * + * **Cause**: These event binding methods have been deprecated in favor of the `.on()` and `.off()` methods which can handle both delegated and direct event binding. Although the older methods are still present in jQuery 3.0, they may be removed as early as the next major-version update. + * + * **Solution**: Change the method call to use `.on()` or `.off()`, the documentation for the old methods include specific instructions. In general, the `.bind()` and `.unbind()` methods can be renamed directly to `.on()` and `.off()` respectively since the argument orders are identical. + */ + undelegate( + selector: JQuery.Selector, + eventType_events: + | string + | JQuery.TypeEventHandlers, + ): this; + /** + * Remove a handler from the event for all elements which match the current selector, based upon a specific set of root elements. + * @param namespace A selector which will be used to filter the event results. + * @see \`{@link https://api.jquery.com/undelegate/ }\` + * @since 1.4.2 + * @since 1.6 + * @deprecated ​ Deprecated since 3.0. Use \`{@link off }\`. + * + * **Cause**: These event binding methods have been deprecated in favor of the `.on()` and `.off()` methods which can handle both delegated and direct event binding. Although the older methods are still present in jQuery 3.0, they may be removed as early as the next major-version update. + * + * **Solution**: Change the method call to use `.on()` or `.off()`, the documentation for the old methods include specific instructions. In general, the `.bind()` and `.unbind()` methods can be renamed directly to `.on()` and `.off()` respectively since the argument orders are identical. + * @example ​ ````To unbind all delegated events from all paragraphs, write: +```javascript +$( "p" ).undelegate(); +``` + * @example ​ ````To unbind all delegated click events from all paragraphs, write: +```javascript +$( "p" ).undelegate( "click" ); +``` + * @example ​ ````To unbind all delegated events by their namespace: +```javascript +var foo = function() { + // Code to handle some kind of event +}; +​ +// Delegate events under the ".whatever" namespace +$( "form" ).delegate( ":button", "click.whatever", foo ); +​ +$( "form" ).delegate( "input[type='text'] ", "keypress.whatever", foo ); +​ +// Unbind all events delegated under the ".whatever" namespace +$( "form" ).undelegate( ".whatever" ); +``` + */ + undelegate(namespace?: string): this; + /** + * Remove the parents of the set of matched elements from the DOM, leaving the matched elements in their place. + * @param selector A selector to check the parent element against. If an element's parent does not match the selector, + * the element won't be unwrapped. + * @see \`{@link https://api.jquery.com/unwrap/ }\` + * @since 1.4 + * @since 3.0 + * @example ​ ````Wrap/unwrap a div around each of the paragraphs. +```html + + + + + unwrap demo + + + + +​ +

      Hello

      +

      cruel

      +

      World

      ​ + +​ + + +``` + */ + unwrap(selector?: string): this; + /** + * Set the value of each element in the set of matched elements. + * @param value_function _@param_ `value_function` + *
      + * * `value` — A string of text, a number, or an array of strings corresponding to the value of each matched + * element to set as selected/checked.
      + * * `function` — A function returning the value to set. `this` is the current element. Receives the index position of + * the element in the set and the old value as arguments. + * @see \`{@link https://api.jquery.com/val/ }\` + * @since 1.0 + * @since 1.4 + * @example ​ ````Set the value of an input box. +```html + + + + + val demo + + + + +​ +
      + + + +
      + +​ + +​ + + +``` + * @example ​ ````Use the function argument to modify the value of an input box. +```html + + + + + val demo + + + +​ +

      Type something and then click or tab out of the input.

      + +​ + +​ + + +``` + * @example ​ ````Set a single select, a multiple select, checkboxes and a radio button . +```html + + + + + val demo + + + + +​ + +​ + +​ +
      + check1 + check2 + radio1 + radio2 +​ + +​ + + +``` + */ + val(value_function: string | number | string[] | ((this: TElement, index: number, value: string) => string)): this; + /** + * Get the current value of the first element in the set of matched elements. + * @see \`{@link https://api.jquery.com/val/ }\` + * @since 1.0 + * @example ​ ````Get the single value from a single select and an array of values from a multiple select and display their values. +```html + + + + + val demo + + + + +​ +

      +​ + +​ + +​ + +​ + + +``` + * @example ​ ````Find the value of an input box. +```html + + + + + val demo + + + + +​ + +

      +​ + +​ + + +``` + */ + val(): + | (TElement extends HTMLSelectElement & { type: "select-one" } ? string + : TElement extends HTMLSelectElement & { type: "select-multiple" } ? string[] + : TElement extends HTMLSelectElement ? string | string[] + : TElement extends { value: string | number } ? TElement["value"] + : string | number | string[]) + | undefined; + /** + * Set the CSS width of each element in the set of matched elements. + * @param value_function _@param_ `value_function` + *
      + * * `value` — An integer representing the number of pixels, or an integer along with an optional unit of measure + * appended (as a string).
      + * * `function` — A function returning the width to set. Receives the index position of the element in the set and the + * old width as arguments. Within the function, `this` refers to the current element in the set. + * @see \`{@link https://api.jquery.com/width/ }\` + * @since 1.0 + * @since 1.4.1 + * @example ​ ````Change the width of each div the first time it is clicked (and change its color). +```html + + + + + width demo + + + + +​ +
      d
      +
      d
      +
      d
      +
      d
      +
      d
      +​ + +​ + + +``` + */ + width(value_function: string | number | ((this: TElement, index: number, value: number) => string | number)): this; + /** + * Get the current computed width for the first element in the set of matched elements. + * @see \`{@link https://api.jquery.com/width/ }\` + * @since 1.0 + * @example ​ ````Show various widths. Note the values are from the iframe so might be smaller than you expected. The yellow highlight shows the iframe body. +```html + + + + + width demo + + + + +​ + + + +
       
      +

      + Sample paragraph to test width +

      +​ + +​ + + +``` + */ + width(): number | undefined; + /** + * Wrap an HTML structure around each element in the set of matched elements. + * @param wrappingElement_function _@param_ `wrappingElement_function` + *
      + * * `wrappingElement` — A selector, element, HTML string, or jQuery object specifying the structure to wrap around the + * matched elements. When you pass a jQuery collection containing more than one element, or a selector + * matching more than one element, the first element will be used.
      + * * `function` — A callback function returning the HTML content or jQuery object to wrap around the matched elements. + * Receives the index position of the element in the set as an argument. Within the function, `this` + * refers to the current element in the set. + * @see \`{@link https://api.jquery.com/wrap/ }\` + * @since 1.0 + * @since 1.4 + * @example ​ ````Wrap a new div around all of the paragraphs. +```html + + + + + wrap demo + + + + +​ +

      Hello

      +

      cruel

      +

      World

      +​ + +​ + + +``` + * @example ​ ````Wraps a newly created tree of objects around the spans. Notice anything in between the spans gets left out like the <strong> (red text) in this example. Even the white space between spans is left out. Click View Source to see the original html.> +```html + + + + + wrap demo + + + + +​ +Span Text +What about me? +Another One +​ + +​ + + +``` + * @example ​ ````Wrap a new div around all of the paragraphs. +```html + + + + + wrap demo + + + + +​ +

      Hello

      +

      cruel

      +

      World

      +​ + +​ + + +``` + * @example ​ ````Wrap a jQuery object double depth div around all of the paragraphs. Notice it doesn't move the object but just clones it to wrap around its target. +```html + + + + + wrap demo + + + + +​ +

      Hello

      +

      cruel

      +

      World

      +
      +​ + +​ + + +``` + */ + wrap( + wrappingElement_function: + | JQuery.Selector + | JQuery.htmlString + | Element + | JQuery + | ((this: TElement, index: number) => string | JQuery), + ): this; + /** + * Wrap an HTML structure around all elements in the set of matched elements. + * @param wrappingElement_function _@param_ `wrappingElement_function` + *
      + * * `wrappingElement` — A selector, element, HTML string, or jQuery object specifying the structure to wrap around the matched elements.
      + * * `function` — A callback function returning the HTML content or jQuery object to wrap around all the matched + * elements. Within the function, `this` refers to the first element in the set. **Prior to jQuery + * 3.0**, the callback was incorrectly called for every element in the set and received the index + * position of the element in the set as an argument. + * @see \`{@link https://api.jquery.com/wrapAll/ }\` + * @since 1.2 + * @since 1.4 + * @example ​ ````Wrap a new div around all of the paragraphs. +```html + + + + + wrapAll demo + + + + +​ +

      Hello

      +

      cruel

      +

      World

      +​ + +​ + + +``` + * @example ​ ````Wraps a newly created tree of objects around the spans. Notice anything in between the spans gets left out like the <strong> (red text) in this example. Even the white space between spans is left out. Click View Source to see the original html. +```html + + + + + wrapAll demo + + + + +​ +Span Text +What about me? +Another One +​ + +​ + + +``` + * @example ​ ````Wrap a new div around all of the paragraphs. +```html + + + + + wrapAll demo + + + + +​ +

      Hello

      +

      cruel

      +

      World

      +​ + +​ + + +``` + * @example ​ ````Wrap a jQuery object double depth div around all of the paragraphs. Notice it doesn't move the object but just clones it to wrap around its target. +```html + + + + + wrapAll demo + + + + +​ +

      Hello

      +

      cruel

      +

      World

      +
      +​ + +​ + + +``` + */ + wrapAll( + wrappingElement_function: + | JQuery.Selector + | JQuery.htmlString + | Element + | JQuery + | ((this: TElement) => string | JQuery), + ): this; + /** + * Wrap an HTML structure around the content of each element in the set of matched elements. + * @param wrappingElement_function _@param_ `wrappingElement_function` + *
      + * * `wrappingElement` — An HTML snippet, selector expression, jQuery object, or DOM element specifying the structure to wrap + * around the content of the matched elements.
      + * * `function` — A callback function which generates a structure to wrap around the content of the matched elements. + * Receives the index position of the element in the set as an argument. Within the function, `this` + * refers to the current element in the set. + * @see \`{@link https://api.jquery.com/wrapInner/ }\` + * @since 1.2 + * @since 1.4 + * @example ​ ````Selects all paragraphs and wraps a bold tag around each of its contents. +```html + + + + + wrapInner demo + + + + +​ +

      Hello

      +

      cruel

      +

      World

      +​ + +​ + + +``` + * @example ​ ````Wraps a newly created tree of objects around the inside of the body. +```html + + + + + wrapInner demo + + + + +​ +Plain old text, or is it? +​ + +​ + + +``` + * @example ​ ````Selects all paragraphs and wraps a bold tag around each of its contents. +```html + + + + + wrapInner demo + + + + +​ +

      Hello

      +

      cruel

      +

      World

      +​ + +​ + + +``` + * @example ​ ````Selects all paragraphs and wraps a jQuery object around each of its contents. +```html + + + + + wrapInner demo + + + + +​ +

      Hello

      +

      cruel

      +

      World

      +​ + +​ + + +``` + */ + wrapInner( + wrappingElement_function: + | JQuery.Selector + | JQuery.htmlString + | Element + | JQuery + | ((this: TElement, index: number) => string | JQuery | Element), + ): this; + + [n: number]: TElement; +} diff --git a/node_modules/@types/jquery/JQueryStatic.d.ts b/node_modules/@types/jquery/JQueryStatic.d.ts new file mode 100644 index 0000000..f7a1427 --- /dev/null +++ b/node_modules/@types/jquery/JQueryStatic.d.ts @@ -0,0 +1,13944 @@ +// tslint:disable:jsdoc-format +// tslint:disable:no-irregular-whitespace + +interface JQueryStatic { + /** + * @see \`{@link https://api.jquery.com/jquery.ajax/#jQuery-ajax1 }\` + * @deprecated ​ Deprecated. Use \`{@link ajaxSetup }\`. + */ + ajaxSettings: JQuery.AjaxSettings; + Animation: JQuery.AnimationStatic; + Callbacks: JQuery.CallbacksStatic; + /** + * Hook directly into jQuery to override how particular CSS properties are retrieved or set, normalize CSS property naming, or create custom properties. + * @see \`{@link https://api.jquery.com/jQuery.cssHooks/ }\` + * @since 1.4.3 + */ + cssHooks: JQuery.CSSHooks; + /** + * An object containing all CSS properties that may be used without a unit. The .css() method uses this object to see if it may append px to unitless values. + * @see \`{@link https://api.jquery.com/jQuery.cssNumber/ }\` + * @since 1.4.3 + */ + cssNumber: JQuery.PlainObject; + Deferred: JQuery.DeferredStatic; + easing: JQuery.Easings; + Event: JQuery.EventStatic; + /** + * @see \`{@link https://learn.jquery.com/events/event-extensions/ }\` + */ + event: JQuery.EventExtensions; + expr: JQuery.Selectors; + // Set to HTMLElement to minimize breaks but should probably be Element. + readonly fn: JQuery; + fx: JQuery.Effects; + /** + * A Promise-like object (or "thenable") that resolves when the document is ready. + * @see \`{@link https://api.jquery.com/jQuery.ready/ }\` + * @since 1.8 + * @example ​ ````Listen for document ready using jQuery.when. +```javascript +$.when( $.ready ).then(function() { + // Document is ready. +}); +``` + * @example ​ ````Typical usage involving another promise, using jQuery.when. +```javascript +$.when( + $.getJSON( "ajax/test.json" ), + $.ready +).done(function( data ) { + // Document is ready. + // Value of test.json is passed as `data`. +}); +``` + */ + ready: JQuery.Thenable; + /** + * A collection of properties that represent the presence of different browser features or bugs. Intended for jQuery's internal use; specific properties may be removed when they are no longer needed internally to improve page startup performance. For your own project's feature-detection needs, we strongly recommend the use of an external library such as Modernizr instead of dependency on properties in jQuery.support. + * @see \`{@link https://api.jquery.com/jQuery.support/ }\` + * @since 1.3 + * @deprecated ​ Deprecated since 1.9. See \`{@link https://api.jquery.com/jQuery.support/ }\`. + */ + support: JQuery.PlainObject; + timers: Array>; + Tween: JQuery.TweenStatic; + valHooks: JQuery.ValHooks; + // HACK: This is the factory function returned when importing jQuery without a DOM. Declaring it separately breaks using the type parameter on JQueryStatic. + // HACK: The discriminator parameter handles the edge case of passing a Window object to JQueryStatic. It doesn't actually exist on the factory function. + (window: Window, discriminator: boolean): JQueryStatic; + /** + * Creates DOM elements on the fly from the provided string of raw HTML. + * @param html _@param_ `html` + *
      + * * `html (ownerDocument)` — A string of HTML to create on the fly. Note that this parses HTML, not XML.
      + * * `html (attributes)` — A string defining a single, standalone, HTML element (e.g. <div/> or <div></div>). + * @param ownerDocument_attributes _@param_ `ownerDocument_attributes` + *
      + * * `ownerDocument` — A document in which the new elements will be created.
      + * * `attributes` — An object of attributes, events, and methods to call on the newly-created element. + * @see \`{@link https://api.jquery.com/jQuery/ }\` + * @since 1.0 + * @since 1.4 + * @example ​ ````Create a div element (and all of its contents) dynamically and append it to the body element. Internally, an element is created and its innerHTML property set to the given markup. +```javascript +$( "

      Hello

      " ).appendTo( "body" ) +``` + * @example ​ ````Create some DOM elements. +```javascript +$( "
      ", { + "class": "test", + text: "Click me!", + click: function() { + $( this ).toggleClass( "test" ); + } +}) + .appendTo( "body" ); +``` + */ + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + ( + html: JQuery.htmlString, + ownerDocument_attributes?: Document | JQuery.PlainObject, + ): JQuery; + /** + * Accepts a string containing a CSS selector which is then used to match a set of elements. + * @param selector A string containing a selector expression + * @param context A DOM Element, Document, Selector or jQuery to use as context + * @see \`{@link https://api.jquery.com/jQuery/ }\` + * @since 1.0 + * @example ​ ````Find all p elements that are children of a div element and apply a border to them. +```html + + + + + jQuery demo + + + +​ +

      one

      +

      two

      +

      three

      +​ + + + +``` + * @example ​ ````Find all inputs of type radio within the first form in the document. +```javascript +$( "input:radio", document.forms[ 0 ] ); +``` + * @example ​ ````Find all div elements within an XML document from an Ajax response. +```javascript +$( "div", xml.responseXML ); +``` +​ + */ + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + ( + selector: JQuery.Selector, + context?: Element | Document | JQuery | JQuery.Selector, + ): JQuery; + /** + * Return a collection of matched elements either found in the DOM based on passed argument(s) or created by passing an HTML string. + * @param element A DOM element to wrap in a jQuery object. + * @see \`{@link https://api.jquery.com/jQuery/ }\` + * @since 1.0 + * @example ​ ````Set the background color of the page to black. +```javascript +$( document.body ).css( "background", "black" ); +``` + */ + // NOTE: `HTMLSelectElement` is both an Element and an Array-Like Object but jQuery treats it as an Element. + (element: HTMLSelectElement): JQuery; + /** + * Return a collection of matched elements either found in the DOM based on passed argument(s) or created by passing an HTML string. + * @param element_elementArray _@param_ `element_elementArray` + *
      + * * `element` — A DOM element to wrap in a jQuery object.
      + * * `elementArray` — An array containing a set of DOM elements to wrap in a jQuery object. + * @see \`{@link https://api.jquery.com/jQuery/ }\` + * @since 1.0 + * @example ​ ````Set the background color of the page to black. +```javascript +$( document.body ).css( "background", "black" ); +``` + * @example ​ ````Hide all the input elements within a form. +```javascript +$( myForm.elements ).hide(); +``` + */ + (element_elementArray: T | ArrayLike): JQuery; + /** + * Return a collection of matched elements either found in the DOM based on passed argument(s) or created by passing an HTML string. + * @param selection An existing jQuery object to clone. + * @see \`{@link https://api.jquery.com/jQuery/ }\` + * @since 1.0 + */ + (selection: JQuery): JQuery; + /** + * Binds a function to be executed when the DOM has finished loading. + * @param callback The function to execute when the DOM is ready. + * @see \`{@link https://api.jquery.com/jQuery/ }\` + * @since 1.0 + * @example ​ ````Execute the function when the DOM is ready to be used. +```javascript +$(function() { + // Document is ready +}); +``` + * @example ​ ````Use both the shortcut for $(document).ready() and the argument to write failsafe jQuery code using the $ alias, without relying on the global alias. +```javascript +jQuery(function( $ ) { + // Your code using failsafe $ alias here... +}); +``` + */ + /* eslint-disable @definitelytyped/no-unnecessary-generics */ + // tslint:disable-next-line:unified-signatures + (callback: (this: Document, $: JQueryStatic) => void): JQuery; + /* eslint-enable @definitelytyped/no-unnecessary-generics */ + /** + * Return a collection of matched elements either found in the DOM based on passed argument(s) or created by passing an HTML string. + * @param object A plain object to wrap in a jQuery object. + * @see \`{@link https://api.jquery.com/jQuery/ }\` + * @since 1.0 + */ + (object: T): JQuery; + /** + * Returns an empty jQuery set. + * @see \`{@link https://api.jquery.com/jQuery/ }\` + * @since 1.4 + */ + // eslint-disable-next-line @definitelytyped/no-unnecessary-generics + (): JQuery; + /** + * Perform an asynchronous HTTP (Ajax) request. + * @param url A string containing the URL to which the request is sent. + * @param settings A set of key/value pairs that configure the Ajax request. All settings are optional. A default can + * be set for any option with $.ajaxSetup(). See jQuery.ajax( settings ) below for a complete list of all settings. + * @see \`{@link https://api.jquery.com/jQuery.ajax/ }\` + * @since 1.5 + */ + ajax(url: string, settings?: JQuery.AjaxSettings): JQuery.jqXHR; + /** + * Perform an asynchronous HTTP (Ajax) request. + * @param settings A set of key/value pairs that configure the Ajax request. All settings are optional. A default can + * be set for any option with $.ajaxSetup(). + * @see \`{@link https://api.jquery.com/jQuery.ajax/ }\` + * @since 1.0 + * @example ​ ````Save some data to the server and notify the user once it's complete. +```javascript +$.ajax({ + method: "POST", + url: "some.php", + data: { name: "John", location: "Boston" } +}) + .done(function( msg ) { + alert( "Data Saved: " + msg ); + }); +``` + * @example ​ ````Retrieve the latest version of an HTML page. +```javascript +$.ajax({ + url: "test.html", + cache: false +}) + .done(function( html ) { + $( "#results" ).append( html ); + }); +``` + * @example ​ ````Send an xml document as data to the server. By setting the processData + option to false, the automatic conversion of data to strings is prevented. +```javascript +var xmlDocument = [create xml document]; +var xmlRequest = $.ajax({ + url: "page.php", + processData: false, + data: xmlDocument +}); +​ +xmlRequest.done( handleResponse ); +``` + * @example ​ ````Send an id as data to the server, save some data to the server, and notify the user once it's complete. If the request fails, alert the user. +```javascript +var menuId = $( "ul.nav" ).first().attr( "id" ); +var request = $.ajax({ + url: "script.php", + method: "POST", + data: { id : menuId }, + dataType: "html" +}); +​ +request.done(function( msg ) { + $( "#log" ).html( msg ); +}); +​ +request.fail(function( jqXHR, textStatus ) { + alert( "Request failed: " + textStatus ); +}); +``` + * @example ​ ````Load and execute a JavaScript file. +```javascript +$.ajax({ + method: "GET", + url: "test.js", + dataType: "script" +}); +``` + */ + ajax(settings?: JQuery.AjaxSettings): JQuery.jqXHR; + /** + * Handle custom Ajax options or modify existing options before each request is sent and before they are processed by $.ajax(). + * @param dataTypes An optional string containing one or more space-separated dataTypes + * @param handler A handler to set default values for future Ajax requests. + * @see \`{@link https://api.jquery.com/jQuery.ajaxPrefilter/ }\` + * @since 1.5 + */ + ajaxPrefilter( + dataTypes: string, + handler: ( + options: JQuery.AjaxSettings, + originalOptions: JQuery.AjaxSettings, + jqXHR: JQuery.jqXHR, + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + ) => string | void, + ): void; + /** + * Handle custom Ajax options or modify existing options before each request is sent and before they are processed by $.ajax(). + * @param handler A handler to set default values for future Ajax requests. + * @see \`{@link https://api.jquery.com/jQuery.ajaxPrefilter/ }\` + * @since 1.5 + */ + ajaxPrefilter( + handler: ( + options: JQuery.AjaxSettings, + originalOptions: JQuery.AjaxSettings, + jqXHR: JQuery.jqXHR, + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + ) => string | void, + ): void; + /** + * Set default values for future Ajax requests. Its use is not recommended. + * @param options A set of key/value pairs that configure the default Ajax request. All options are optional. + * @see \`{@link https://api.jquery.com/jQuery.ajaxSetup/ }\` + * @since 1.1 + * @example ​ ````Sets the defaults for Ajax requests to the url "/xmlhttp/", disables global handlers and uses POST instead of GET. The following Ajax requests then sends some data without having to set anything else. +```javascript +$.ajaxSetup({ + url: "/xmlhttp/", + global: false, + type: "POST" +}); +$.ajax({ data: myData }); +``` + */ + ajaxSetup(options: JQuery.AjaxSettings): JQuery.AjaxSettings; + /** + * Creates an object that handles the actual transmission of Ajax data. + * @param dataType A string identifying the data type to use + * @param handler A handler to return the new transport object to use with the data type provided in the first argument. + * @see \`{@link https://api.jquery.com/jQuery.ajaxTransport/ }\` + * @since 1.5 + */ + ajaxTransport( + dataType: string, + handler: ( + options: JQuery.AjaxSettings, + originalOptions: JQuery.AjaxSettings, + jqXHR: JQuery.jqXHR, + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + ) => JQuery.Transport | void, + ): void; + /** + * @deprecated ​ Deprecated since 3.3. Internal. See \`{@link https://github.com/jquery/jquery/issues/3384 }\`. + */ + camelCase(value: string): string; + cleanData(elems: ArrayLike): void; + /** + * Check to see if a DOM element is a descendant of another DOM element. + * @param container The DOM element that may contain the other element. + * @param contained The DOM element that may be contained by (a descendant of) the other element. + * @see \`{@link https://api.jquery.com/jQuery.contains/ }\` + * @since 1.4 + * @example ​ ````Check if an element is a descendant of another. +```javascript +$.contains( document.documentElement, document.body ); // true +$.contains( document.body, document.documentElement ); // false +``` + */ + contains(container: Element, contained: Element): boolean; + css(elem: Element, name: string): any; + /** + * Store arbitrary data associated with the specified element. Returns the value that was set. + * @param element The DOM element to associate with the data. + * @param key A string naming the piece of data to set. + * @param value The new data value; this can be any Javascript type except `undefined`. + * @see \`{@link https://api.jquery.com/jQuery.data/ }\` + * @since 1.2.3 + * @example ​ ````Get the data named "blah" stored at for an element. +```html + + + + + jQuery.data demo + + + + +​ +
      A div
      + + + + +

      The "blah" value of this div is ?

      +​ + +​ + + +``` + */ + data( + element: Element | Document | Window | JQuery.PlainObject, + key: string, + value: T, + ): T; + /** + * Returns value at named data store for the element, as set by `jQuery.data(element, name, value)`, or the full data store for the element. + * @param element The DOM element to query for the data. + * @param key Name of the data stored. + * @param value `undefined` is not recognized as a data value. Calls such as `jQuery.data( el, "name", undefined )` + * will return the corresponding data for "name", and is therefore the same as `jQuery.data( el, "name" )` + * @see \`{@link https://api.jquery.com/jQuery.data/ }\` + * @since 1.2.3 + */ + // `unified-signatures` is disabled so that behavior when passing `undefined` to `value` can be documented. Unifying the signatures + // results in potential confusion for users from an unexpected parameter. + // tslint:disable-next-line:unified-signatures + data(element: Element | Document | Window | JQuery.PlainObject, key: string, value: undefined): any; + /** + * Returns value at named data store for the element, as set by `jQuery.data(element, name, value)`, or the full data store for the element. + * @param element The DOM element to query for the data. + * @param key Name of the data stored. + * @see \`{@link https://api.jquery.com/jQuery.data/ }\` + * @since 1.2.3 + * @since 1.4 + * @example ​ ````Store then retrieve a value from the div element. +```html + + + + + jQuery.data demo + + + + +​ +
      + The values stored were + + and + +
      +​ + +​ + + +``` + */ + data(element: Element | Document | Window | JQuery.PlainObject, key?: string): any; + /** + * Execute the next function on the queue for the matched element. + * @param element A DOM element from which to remove and execute a queued function. + * @param queueName A string containing the name of the queue. Defaults to fx, the standard effects queue. + * @see \`{@link https://api.jquery.com/jQuery.dequeue/ }\` + * @since 1.3 + * @example ​ ````Use jQuery.dequeue() to end a custom queue function which allows the queue to keep going. +```html + + + + + jQuery.dequeue demo + + + + +​ + +
      +​ + +​ + + +``` + */ + dequeue(element: Element, queueName?: string): void; + /** + * A generic iterator function, which can be used to seamlessly iterate over both objects and arrays. Arrays and array-like objects with a length property (such as a function's arguments object) are iterated by numeric index, from 0 to length-1. Other objects are iterated via their named properties. + * @param array The array to iterate over. + * @param callback The function that will be executed on every object. + * @see \`{@link https://api.jquery.com/jQuery.each/ }\` + * @since 1.0 + * @example ​ ````Iterates through the array displaying each number as both a word and numeral +```html + + + + + jQuery.each demo + + + + +​ +
      +
      +
      +
      +
      +​ + +​ + + +``` + * @example ​ ````Iterates over items in an array, accessing both the current item and its index. +```javascript +$.each( [ "a", "b", "c" ], function( i, l ){ + alert( "Index #" + i + ": " + l ); +}); +``` + */ + each(array: ArrayLike, callback: (this: T, indexInArray: number, value: T) => any): ArrayLike; + /** + * A generic iterator function, which can be used to seamlessly iterate over both objects and arrays. Arrays and array-like objects with a length property (such as a function's arguments object) are iterated by numeric index, from 0 to length-1. Other objects are iterated via their named properties. + * @param obj The object to iterate over. + * @param callback The function that will be executed on every object. + * @see \`{@link https://api.jquery.com/jQuery.each/ }\` + * @since 1.0 + * @example ​ ````Iterates through the array displaying each number as both a word and numeral +```html + + + + + jQuery.each demo + + + + +​ +
      +
      +
      +
      +
      +​ + +​ + + +``` + * @example ​ ````Iterates over the properties in an object, accessing both the current item and its key. +```javascript +$.each({ name: "John", lang: "JS" }, function( k, v ) { + alert( "Key: " + k + ", Value: " + v ); +}); +``` + */ + each(obj: T, callback: (this: T[K], propertyName: K, valueOfProperty: T[K]) => any): T; + /** + * Takes a string and throws an exception containing it. + * @param message The message to send out. + * @see \`{@link https://api.jquery.com/jQuery.error/ }\` + * @since 1.4.1 + * @example ​ ````Override jQuery.error for display in Firebug. +```javascript +jQuery.error = console.error; +``` + */ + error(message: string): any; + /** + * Escapes any character that has a special meaning in a CSS selector. + * @param selector A string containing a selector expression to escape. + * @see \`{@link https://api.jquery.com/jQuery.escapeSelector/ }\` + * @since 3.0 + * @example ​ ````Escape an ID containing a hash. +```javascript +$.escapeSelector( "#target" ); // "\#target" +``` + * @example ​ ````Select all the elements having a class name of .box inside a div. +```javascript +$( "div" ).find( "." + $.escapeSelector( ".box" ) ); +``` + */ + escapeSelector(selector: JQuery.Selector): JQuery.Selector; + /** + * Merge the contents of two or more objects together into the first object. + * @param deep If true, the merge becomes recursive (aka. deep copy). Passing false for this argument is not supported. + * @param target The object to extend. It will receive the new properties. + * @param object1 An object containing additional properties to merge in. + * @param object2 An object containing additional properties to merge in. + * @param object3 An object containing additional properties to merge in. + * @param object4 An object containing additional properties to merge in. + * @param object5 An object containing additional properties to merge in. + * @param object6 An object containing additional properties to merge in. + * @see \`{@link https://api.jquery.com/jQuery.extend/ }\` + * @since 1.1.4 + * @example ​ ````Merge two objects recursively, modifying the first. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + */ + extend( + deep: true, + target: T, + object1: U, + object2: V, + object3: W, + object4: X, + object5: Y, + object6: Z, + ): T & U & V & W & X & Y & Z; + /** + * Merge the contents of two or more objects together into the first object. + * @param deep If true, the merge becomes recursive (aka. deep copy). Passing false for this argument is not supported. + * @param target The object to extend. It will receive the new properties. + * @param object1 An object containing additional properties to merge in. + * @param object2 An object containing additional properties to merge in. + * @param object3 An object containing additional properties to merge in. + * @param object4 An object containing additional properties to merge in. + * @param object5 An object containing additional properties to merge in. + * @see \`{@link https://api.jquery.com/jQuery.extend/ }\` + * @since 1.1.4 + * @example ​ ````Merge two objects recursively, modifying the first. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + */ + extend( + deep: true, + target: T, + object1: U, + object2: V, + object3: W, + object4: X, + object5: Y, + ): T & U & V & W & X & Y; + /** + * Merge the contents of two or more objects together into the first object. + * @param deep If true, the merge becomes recursive (aka. deep copy). Passing false for this argument is not supported. + * @param target The object to extend. It will receive the new properties. + * @param object1 An object containing additional properties to merge in. + * @param object2 An object containing additional properties to merge in. + * @param object3 An object containing additional properties to merge in. + * @param object4 An object containing additional properties to merge in. + * @see \`{@link https://api.jquery.com/jQuery.extend/ }\` + * @since 1.1.4 + * @example ​ ````Merge two objects recursively, modifying the first. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + */ + extend(deep: true, target: T, object1: U, object2: V, object3: W, object4: X): T & U & V & W & X; + /** + * Merge the contents of two or more objects together into the first object. + * @param deep If true, the merge becomes recursive (aka. deep copy). Passing false for this argument is not supported. + * @param target The object to extend. It will receive the new properties. + * @param object1 An object containing additional properties to merge in. + * @param object2 An object containing additional properties to merge in. + * @param object3 An object containing additional properties to merge in. + * @see \`{@link https://api.jquery.com/jQuery.extend/ }\` + * @since 1.1.4 + * @example ​ ````Merge two objects recursively, modifying the first. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + */ + extend(deep: true, target: T, object1: U, object2: V, object3: W): T & U & V & W; + /** + * Merge the contents of two or more objects together into the first object. + * @param deep If true, the merge becomes recursive (aka. deep copy). Passing false for this argument is not supported. + * @param target The object to extend. It will receive the new properties. + * @param object1 An object containing additional properties to merge in. + * @param object2 An object containing additional properties to merge in. + * @see \`{@link https://api.jquery.com/jQuery.extend/ }\` + * @since 1.1.4 + * @example ​ ````Merge two objects recursively, modifying the first. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + */ + extend(deep: true, target: T, object1: U, object2: V): T & U & V; + /** + * Merge the contents of two or more objects together into the first object. + * @param deep If true, the merge becomes recursive (aka. deep copy). Passing false for this argument is not supported. + * @param target The object to extend. It will receive the new properties. + * @param object1 An object containing additional properties to merge in. + * @see \`{@link https://api.jquery.com/jQuery.extend/ }\` + * @since 1.1.4 + * @example ​ ````Merge two objects recursively, modifying the first. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + */ + extend(deep: true, target: T, object1: U): T & U; + /** + * Merge the contents of two or more objects together into the first object. + * @param deep If true, the merge becomes recursive (aka. deep copy). Passing false for this argument is not supported. + * @param target The object to extend. It will receive the new properties. + * @see \`{@link https://api.jquery.com/jQuery.extend/ }\` + * @since 1.1.4 + */ + extend(deep: true, target: T): this & T; + /** + * Merge the contents of two or more objects together into the first object. + * @param deep If true, the merge becomes recursive (aka. deep copy). Passing false for this argument is not supported. + * @param target The object to extend. It will receive the new properties. + * @param object1 An object containing additional properties to merge in. + * @param objectN Additional objects containing properties to merge in. + * @see \`{@link https://api.jquery.com/jQuery.extend/ }\` + * @since 1.1.4 + * @example ​ ````Merge two objects recursively, modifying the first. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + */ + extend(deep: true, target: any, object1: any, ...objectN: any[]): any; + /** + * Merge the contents of two or more objects together into the first object. + * @param target An object that will receive the new properties if additional objects are passed in or that will + * extend the jQuery namespace if it is the sole argument. + * @param object1 An object containing additional properties to merge in. + * @param object2 An object containing additional properties to merge in. + * @param object3 An object containing additional properties to merge in. + * @param object4 An object containing additional properties to merge in. + * @param object5 An object containing additional properties to merge in. + * @param object6 An object containing additional properties to merge in. + * @see \`{@link https://api.jquery.com/jQuery.extend/ }\` + * @since 1.0 + * @example ​ ````Merge two objects, modifying the first. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + * @example ​ ````Merge defaults and options, without modifying the defaults. This is a common plugin development pattern. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + */ + extend( + target: T, + object1: U, + object2: V, + object3: W, + object4: X, + object5: Y, + object6: Z, + ): T & U & V & W & X & Y & Z; + /** + * Merge the contents of two or more objects together into the first object. + * @param target An object that will receive the new properties if additional objects are passed in or that will + * extend the jQuery namespace if it is the sole argument. + * @param object1 An object containing additional properties to merge in. + * @param object2 An object containing additional properties to merge in. + * @param object3 An object containing additional properties to merge in. + * @param object4 An object containing additional properties to merge in. + * @param object5 An object containing additional properties to merge in. + * @see \`{@link https://api.jquery.com/jQuery.extend/ }\` + * @since 1.0 + * @example ​ ````Merge two objects, modifying the first. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + * @example ​ ````Merge defaults and options, without modifying the defaults. This is a common plugin development pattern. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + */ + extend( + target: T, + object1: U, + object2: V, + object3: W, + object4: X, + object5: Y, + ): T & U & V & W & X & Y; + /** + * Merge the contents of two or more objects together into the first object. + * @param target An object that will receive the new properties if additional objects are passed in or that will + * extend the jQuery namespace if it is the sole argument. + * @param object1 An object containing additional properties to merge in. + * @param object2 An object containing additional properties to merge in. + * @param object3 An object containing additional properties to merge in. + * @param object4 An object containing additional properties to merge in. + * @see \`{@link https://api.jquery.com/jQuery.extend/ }\` + * @since 1.0 + * @example ​ ````Merge two objects, modifying the first. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + * @example ​ ````Merge defaults and options, without modifying the defaults. This is a common plugin development pattern. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + */ + extend(target: T, object1: U, object2: V, object3: W, object4: X): T & U & V & W & X; + /** + * Merge the contents of two or more objects together into the first object. + * @param target An object that will receive the new properties if additional objects are passed in or that will + * extend the jQuery namespace if it is the sole argument. + * @param object1 An object containing additional properties to merge in. + * @param object2 An object containing additional properties to merge in. + * @param object3 An object containing additional properties to merge in. + * @see \`{@link https://api.jquery.com/jQuery.extend/ }\` + * @since 1.0 + * @example ​ ````Merge two objects, modifying the first. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + * @example ​ ````Merge defaults and options, without modifying the defaults. This is a common plugin development pattern. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + */ + extend(target: T, object1: U, object2: V, object3: W): T & U & V & W; + /** + * Merge the contents of two or more objects together into the first object. + * @param target An object that will receive the new properties if additional objects are passed in or that will + * extend the jQuery namespace if it is the sole argument. + * @param object1 An object containing additional properties to merge in. + * @param object2 An object containing additional properties to merge in. + * @see \`{@link https://api.jquery.com/jQuery.extend/ }\` + * @since 1.0 + * @example ​ ````Merge two objects, modifying the first. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + * @example ​ ````Merge defaults and options, without modifying the defaults. This is a common plugin development pattern. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + */ + extend(target: T, object1: U, object2: V): T & U & V; + /** + * Merge the contents of two or more objects together into the first object. + * @param target An object that will receive the new properties if additional objects are passed in or that will + * extend the jQuery namespace if it is the sole argument. + * @param object1 An object containing additional properties to merge in. + * @see \`{@link https://api.jquery.com/jQuery.extend/ }\` + * @since 1.0 + * @example ​ ````Merge two objects, modifying the first. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + * @example ​ ````Merge defaults and options, without modifying the defaults. This is a common plugin development pattern. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + */ + extend(target: T, object1: U): T & U; + /** + * Merge the contents of two or more objects together into the first object. + * @param target An object that will receive the new properties if additional objects are passed in or that will + * extend the jQuery namespace if it is the sole argument. + * @see \`{@link https://api.jquery.com/jQuery.extend/ }\` + * @since 1.0 + */ + extend(target: T): this & T; + /** + * Merge the contents of two or more objects together into the first object. + * @param target An object that will receive the new properties if additional objects are passed in or that will + * extend the jQuery namespace if it is the sole argument. + * @param object1 An object containing additional properties to merge in. + * @param objectN Additional objects containing properties to merge in. + * @see \`{@link https://api.jquery.com/jQuery.extend/ }\` + * @since 1.0 + * @example ​ ````Merge two objects, modifying the first. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + * @example ​ ````Merge defaults and options, without modifying the defaults. This is a common plugin development pattern. +```html + + + + + jQuery.extend demo + + + +​ +
      +​ + +​ + + +``` + */ + extend(target: any, object1: any, ...objectN: any[]): any; + /** + * Load data from the server using a HTTP GET request. + * @param url A string containing the URL to which the request is sent. + * @param data A plain object or string that is sent to the server with the request. + * @param success A callback function that is executed if the request succeeds. Required if `dataType` is provided, + * but you can use `null` or \`{@link noop jQuery.noop}\` as a placeholder. + * @param dataType The type of data expected from the server. Default: Intelligent Guess (xml, json, script, text, html). + * @see \`{@link https://api.jquery.com/jQuery.get/ }\` + * @since 1.0 + */ + get( + url: string, + data: JQuery.PlainObject | string, + success: JQuery.jqXHR.DoneCallback | null, + dataType?: string, + ): JQuery.jqXHR; + /** + * Load data from the server using a HTTP GET request. + * @param url A string containing the URL to which the request is sent. + * @param success_data _@param_ `success_data` + *
      + * * `success` — A callback function that is executed if the request succeeds. Required if `dataType` is provided, + * but you can use `null` or \`{@link noop jQuery.noop}\` as a placeholder.
      + * * `data` — A plain object or string that is sent to the server with the request. + * @param dataType The type of data expected from the server. Default: Intelligent Guess (xml, json, script, text, html). + * @see \`{@link https://api.jquery.com/jQuery.get/ }\` + * @since 1.0 + * @example ​ ````Get the test.php page contents, which has been returned in json format (<?php echo json_encode( array( "name"=>"John","time"=>"2pm" ) ); ?>), and add it to the page. +```javascript +$.get( "test.php", function( data ) { + $( "body" ) + .append( "Name: " + data.name ) // John + .append( "Time: " + data.time ); // 2pm +}, "json" ); +``` + */ + get( + url: string, + data_success: JQuery.PlainObject | string | JQuery.jqXHR.DoneCallback | null, + dataType: string, + ): JQuery.jqXHR; + /** + * Load data from the server using a HTTP GET request. + * @param url A string containing the URL to which the request is sent. + * @param success_data _@param_ `success_data` + *
      + * * `success` — A callback function that is executed if the request succeeds. Required if `dataType` is provided, + * but you can use `null` or \`{@link noop jQuery.noop}\` as a placeholder.
      + * * `data` — A plain object or string that is sent to the server with the request. + * @see \`{@link https://api.jquery.com/jQuery.get/ }\` + * @since 1.0 + * @example ​ ````Request the test.php page and send some additional data along (while still ignoring the return results). +```javascript +$.get( "test.php", { name: "John", time: "2pm" } ); +``` + * @example ​ ````Pass arrays of data to the server (while still ignoring the return results). +```javascript +$.get( "test.php", { "choices[]": ["Jon", "Susan"] } ); +``` + * @example ​ ````Alert the results from requesting test.php (HTML or XML, depending on what was returned). +```javascript +$.get( "test.php", function( data ) { + alert( "Data Loaded: " + data ); +}); +``` + * @example ​ ````Alert the results from requesting test.cgi with an additional payload of data (HTML or XML, depending on what was returned). +```javascript +$.get( "test.cgi", { name: "John", time: "2pm" } ) + .done(function( data ) { + alert( "Data Loaded: " + data ); + }); +``` + */ + get(url: string, success_data: JQuery.jqXHR.DoneCallback | JQuery.PlainObject | string): JQuery.jqXHR; + /** + * Load data from the server using a HTTP GET request. + * @param url_settings _@param_ `url_settings` + *
      + * * `url` — A string containing the URL to which the request is sent.
      + * * `settings` — A set of key/value pairs that configure the Ajax request. All properties except for `url` are + * optional. A default can be set for any option with \`{@link ajaxSetup $.ajaxSetup()}\`. See \`{@link https://api.jquery.com/jquery.ajax/#jQuery-ajax-settings jQuery.ajax( settings )}\` + * for a complete list of all settings. The type option will automatically be set to `GET`. + * @see \`{@link https://api.jquery.com/jQuery.get/ }\` + * @since 1.0 + * @since 1.12 + * @since 2.2 + * @example ​ ````Request the test.php page, but ignore the return results. +```javascript +$.get( "test.php" ); +``` + */ + get(url_settings?: string | JQuery.UrlAjaxSettings): JQuery.jqXHR; + /** + * Load JSON-encoded data from the server using a GET HTTP request. + * @param url A string containing the URL to which the request is sent. + * @param data A plain object or string that is sent to the server with the request. + * @param success A callback function that is executed if the request succeeds. + * @see \`{@link https://api.jquery.com/jQuery.getJSON/ }\` + * @since 1.0 + */ + getJSON(url: string, data: JQuery.PlainObject | string, success: JQuery.jqXHR.DoneCallback): JQuery.jqXHR; + /** + * Load JSON-encoded data from the server using a GET HTTP request. + * @param url A string containing the URL to which the request is sent. + * @param success_data _@param_ `url_settings` + *
      + * * `success` — A callback function that is executed if the request succeeds.
      + * * `data` — A plain object or string that is sent to the server with the request. + * @see \`{@link https://api.jquery.com/jQuery.getJSON/ }\` + * @since 1.0 + * @example ​ ````Loads the four most recent pictures of Mount Rainier from the Flickr JSONP API. +```html + + + + + jQuery.getJSON demo + + + + +​ +
      +​ + +​ + + +``` + * @example ​ ````Load the JSON data from test.js and access a name from the returned JSON data. +```javascript +$.getJSON( "test.js", function( json ) { + console.log( "JSON Data: " + json.users[ 3 ].name ); + }); + ``` + * @example ​ ````Load the JSON data from test.js, passing along additional data, and access a name from the returned JSON data. + If an error occurs, log an error message instead. +```javascript +$.getJSON( "test.js", { name: "John", time: "2pm" } ) + .done(function( json ) { + console.log( "JSON Data: " + json.users[ 3 ].name ); + }) + .fail(function( jqxhr, textStatus, error ) { + var err = textStatus + ", " + error; + console.log( "Request Failed: " + err ); +}); +``` + */ + getJSON(url: string, success_data?: JQuery.jqXHR.DoneCallback | JQuery.PlainObject | string): JQuery.jqXHR; + /** + * Load a JavaScript file from the server using a GET HTTP request, then execute it. + * @param url A string containing the URL to which the request is sent. + * @param success A callback function that is executed if the request succeeds. + * @see \`{@link https://api.jquery.com/jQuery.getScript/ }\` + * @since 1.0 + * @example ​ ````Define a $.cachedScript() method that allows fetching a cached script: +```javascript +jQuery.cachedScript = function( url, options ) { +​ + // Allow user to set any option except for dataType, cache, and url + options = $.extend( options || {}, { + dataType: "script", + cache: true, + url: url + }); +​ + // Use $.ajax() since it is more flexible than $.getScript + // Return the jqXHR object so we can chain callbacks + return jQuery.ajax( options ); +}; +​ +// Usage +$.cachedScript( "ajax/test.js" ).done(function( script, textStatus ) { + console.log( textStatus ); +}); +``` + * @example ​ ````Load the official jQuery Color Animation plugin dynamically and bind some color animations to occur once the new functionality is loaded. +```html + + + + + jQuery.getScript demo + + + + +​ + +
      +​ + +​ + + +``` + */ + getScript(url: string, success?: JQuery.jqXHR.DoneCallback): JQuery.jqXHR; + /** + * Load a JavaScript file from the server using a GET HTTP request, then execute it. + * @see \`{@link https://api.jquery.com/jQuery.getScript/ }\` + * @since 1.12 + * @since 2.2 + */ + getScript(options: JQuery.UrlAjaxSettings): JQuery.jqXHR; + /** + * Execute some JavaScript code globally. + * @param code The JavaScript code to execute. + * @see \`{@link https://api.jquery.com/jQuery.globalEval/ }\` + * @since 1.0.4 + * @example ​ ````Execute a script in the global context. +```javascript +function test() { + jQuery.globalEval( "var newVar = true;" ) +} +test(); +// newVar === true +``` + */ + globalEval(code: string): void; + /** + * Finds the elements of an array which satisfy a filter function. The original array is not affected. + * @param array The array-like object to search through. + * @param funŃtion The function to process each item against. The first argument to the function is the item, and the + * second argument is the index. The function should return a Boolean value. `this` will be the global + * window object. + * @param invert If "invert" is false, or not provided, then the function returns an array consisting of all elements + * for which "callback" returns true. If "invert" is true, then the function returns an array + * consisting of all elements for which "callback" returns false. + * @see \`{@link https://api.jquery.com/jQuery.grep/ }\` + * @since 1.0 + * @example ​ ````Filters the original array of numbers leaving that are not 5 and have an index greater than 4. Then it removes all 9s. +```html + + + + + jQuery.grep demo + + + + +​ +
      +

      + +​ + +​ + + +``` + * @example ​ ````Filter an array of numbers to include only numbers bigger then zero. +```javascript +$.grep( [ 0, 1, 2 ], function( n, i ) { + return n > 0; +}); +``` + * @example ​ ````Filter an array of numbers to include numbers that are not bigger than zero. +```javascript +$.grep( [ 0, 1, 2 ], function( n, i ) { + return n > 0; +}, true ); +``` + */ + grep(array: ArrayLike, funŃtion: (elementOfArray: T, indexInArray: number) => boolean, invert?: boolean): T[]; + /** + * Determine whether an element has any jQuery data associated with it. + * @param element A DOM element to be checked for data. + * @see \`{@link https://api.jquery.com/jQuery.hasData/ }\` + * @since 1.5 + * @example ​ ````Set data on an element and see the results of hasData. +```html + + + + + jQuery.hasData demo + + + +​ +

      Results:

      +​ + +​ + + +``` + */ + hasData(element: Element | Document | Window | JQuery.PlainObject): boolean; + /** + * Holds or releases the execution of jQuery's ready event. + * @param hold Indicates whether the ready hold is being requested or released + * @see \`{@link https://api.jquery.com/jQuery.holdReady/ }\` + * @since 1.6 + * @deprecated ​ Deprecated since 3.2. See \`{@link https://github.com/jquery/jquery/issues/3288 }\`. + * + * **Cause**: The `jQuery.holdReady()` method has been deprecated due to its detrimental effect on the global performance of the page. This method can prevent all the code on the page from initializing for extended lengths of time. + * + * **Solution**: Rewrite the page so that it does not require all jQuery ready handlers to be delayed. This might be accomplished, for example, by late-loading only the code that requires the delay when it is safe to run. Due to the complexity of this method, jQuery Migrate does not attempt to fill the functionality. If the underlying version of jQuery used with jQuery Migrate no longer contains `jQuery.holdReady()` the code will fail shortly after this warning appears. + * @example ​ ````Delay the ready event until a custom plugin has loaded. +```javascript +$.holdReady( true ); +$.getScript( "myplugin.js", function() { + $.holdReady( false ); +}); +``` + */ + holdReady(hold: boolean): void; + /** + * Modify and filter HTML strings passed through jQuery manipulation methods. + * @param html The HTML string on which to operate. + * @see \`{@link https://api.jquery.com/jQuery.htmlPrefilter/ }\` + * @since 1.12 + * @since 2.2 + */ + htmlPrefilter(html: JQuery.htmlString): JQuery.htmlString; + /** + * Search for a specified value within an array and return its index (or -1 if not found). + * @param value The value to search for. + * @param array An array through which to search. + * @param fromIndex The index of the array at which to begin the search. The default is 0, which will search the whole array. + * @see \`{@link https://api.jquery.com/jQuery.inArray/ }\` + * @since 1.2 + * @example ​ ````Report the index of some elements in the array. +```html + + + + + jQuery.inArray demo + + + + +​ +
      "John" found at
      +
      4 found at
      +
      "Karl" not found, so
      +
      "Pete" is in the array, but not at or after index 2, so
      +​ + +​ + + +``` + */ + inArray(value: T, array: T[], fromIndex?: number): number; + /** + * Determine whether the argument is an array. + * @param obj Object to test whether or not it is an array. + * @see \`{@link https://api.jquery.com/jQuery.isArray/ }\` + * @since 1.3 + * @deprecated ​ Deprecated since 3.2. Use \`{@link ArrayConstructor.isArray Array.isArray}\`. + * @example ​ ````Finds out if the parameter is an array. +```html + + + + + jQuery.isArray demo + + + +​ +Is [] an Array? +​ + +​ + + +``` + */ + isArray(obj: any): obj is any[]; + /** + * Check to see if an object is empty (contains no enumerable properties). + * @param obj The object that will be checked to see if it's empty. + * @see \`{@link https://api.jquery.com/jQuery.isEmptyObject/ }\` + * @since 1.4 + * @example ​ ````Check an object to see if it's empty. +```javascript +jQuery.isEmptyObject({}); // true +jQuery.isEmptyObject({ foo: "bar" }); // false +``` + */ + isEmptyObject(obj: any): boolean; + /** + * Determine if the argument passed is a JavaScript function object. + * @param obj Object to test whether or not it is a function. + * @see \`{@link https://api.jquery.com/jQuery.isFunction/ }\` + * @since 1.2 + * @deprecated ​ Deprecated since 3.3. Use `typeof x === "function"`. + * @example ​ ````Test a few parameter examples. +```html + + + + + jQuery.isFunction demo + + + + +​ +
      jQuery.isFunction( objs[ 0 ] ) =
      +
      jQuery.isFunction( objs[ 1 ] ) =
      +
      jQuery.isFunction( objs[ 2 ] ) =
      +
      jQuery.isFunction( objs[ 3 ] ) =
      +
      jQuery.isFunction( objs[ 4 ] ) =
      +​ + +​ + + +``` + * @example ​ ````Finds out if the parameter is a function. +```javascript +$.isFunction(function() {}); +``` + */ + // eslint-disable-next-line @typescript-eslint/ban-types + isFunction(obj: any): obj is Function; + /** + * Determines whether its argument represents a JavaScript number. + * @param value The value to be tested. + * @see \`{@link https://api.jquery.com/jQuery.isNumeric/ }\` + * @since 1.7 + * @deprecated ​ Deprecated since 3.3. Internal. See \`{@link https://github.com/jquery/jquery/issues/2960 }\`. + * @example ​ ````Sample return values of $.isNumeric with various inputs. +```javascript +// true (numeric) +$.isNumeric( "-10" ) +$.isNumeric( "0" ) +$.isNumeric( 0xFF ) +$.isNumeric( "0xFF" ) +$.isNumeric( "8e5" ) +$.isNumeric( "3.1415" ) +$.isNumeric( +10 ) +$.isNumeric( 0144 ) +​ +// false (non-numeric) +$.isNumeric( "-0x42" ) +$.isNumeric( "7.2acdgs" ) +$.isNumeric( "" ) +$.isNumeric( {} ) +$.isNumeric( NaN ) +$.isNumeric( null ) +$.isNumeric( true ) +$.isNumeric( Infinity ) +$.isNumeric( undefined ) +``` + */ + isNumeric(value: any): boolean; + /** + * Check to see if an object is a plain object (created using "{}" or "new Object"). + * @param obj The object that will be checked to see if it's a plain object. + * @see \`{@link https://api.jquery.com/jQuery.isPlainObject/ }\` + * @since 1.4 + * @example ​ ````Check an object to see if it's a plain object. +```javascript +jQuery.isPlainObject({}) // true +jQuery.isPlainObject( "test" ) // false +``` + */ + isPlainObject(obj: any): boolean; + /** + * Determine whether the argument is a window. + * @param obj Object to test whether or not it is a window. + * @see \`{@link https://api.jquery.com/jQuery.isWindow/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Internal. See \`{@link https://github.com/jquery/jquery/issues/3629 }\`. + * + * **Cause**: This method returns `true` if its argument is thought to be a `window` element. It was created for internal use and is not a reliable way of detecting `window` for public needs. + * + * **Solution**: Remove any use of `jQuery.isWindow()` from code. If it is truly needed it can be replaced with a check for `obj != null && obj === obj.window` which was the test used inside this method. + * @example ​ ````Finds out if the parameter is a window. +```html + + + + + jQuery.isWindow demo + + + +​ +Is 'window' a window? +​ + +​ + + +``` + */ + isWindow(obj: any): obj is Window; + /** + * Check to see if a DOM node is within an XML document (or is an XML document). + * @param node The DOM node that will be checked to see if it's in an XML document. + * @see \`{@link https://api.jquery.com/jQuery.isXMLDoc/ }\` + * @since 1.1.4 + * @example ​ ````Check an object to see if it's in an XML document. +```javascript +jQuery.isXMLDoc( document ) // false +jQuery.isXMLDoc( document.body ) // false +``` + */ + isXMLDoc(node: Node): boolean; + /** + * Convert an array-like object into a true JavaScript array. + * @param obj Any object to turn into a native Array. + * @see \`{@link https://api.jquery.com/jQuery.makeArray/ }\` + * @since 1.2 + * @example ​ ````Turn a collection of HTMLElements into an Array of them. +```html + + + + + jQuery.makeArray demo + + + + +​ +
      First
      +
      Second
      +
      Third
      +
      Fourth
      +​ + +​ + + +``` + * @example ​ ````Turn a jQuery object into an array +```javascript +var obj = $( "li" ); +var arr = $.makeArray( obj ); +``` + */ + makeArray(obj: ArrayLike): T[]; + /** + * Translate all items in an array or object to new array of items. + * @param array The Array to translate. + * @param callback The function to process each item against. The first argument to the function is the array item, the + * second argument is the index in array The function can return any value. A returned array will be + * flattened into the resulting array. Within the function, this refers to the global (window) object. + * @see \`{@link https://api.jquery.com/jQuery.map/ }\` + * @since 1.0 + * @example ​ ````Use $.map() to change the values of an array. +```html + + + + + jQuery.map demo + + + + +​ +
      +

      + +​ + +​ + + +``` + * @example ​ ````Map the original array to a new one and add 4 to each value. +```javascript +$.map( [ 0, 1, 2 ], function( n ) { + return n + 4; +}); +``` + * @example ​ ````Map the original array to a new one, adding 1 to each value if it is bigger then zero and removing it if not. +```javascript +$.map( [ 0, 1, 2 ], function( n ) { + return n > 0 ? n + 1 : null; +}); +``` + * @example ​ ````Map the original array to a new one; each element is added with its original value and the value plus one. +```javascript +$.map( [ 0, 1, 2 ], function( n ) { + return [ n, n + 1 ]; +}); +``` + * @example ​ ````Map the original array to a new one; each element is squared. +```javascript +$.map( [ 0, 1, 2, 3 ], function( a ) { + return a * a; +}); +``` + * @example ​ ````Map the original array to a new one, removing numbers less than 50 by returning null and subtracting 45 from the rest. +```javascript +$.map( [ 0, 1, 52, 97 ], function( a ) { + return (a > 50 ? a - 45 : null); +}); +``` + * @example ​ ````Augment the resulting array by returning an array inside the function. +```javascript +var array = [ 0, 1, 52, 97 ]; +array = $.map( array, function( a, index ) { + return [ a - 45, index ]; +}); +``` + */ + map( + array: T[], + callback: ( + this: Window, + elementOfArray: T, + indexInArray: number, + ) => JQuery.TypeOrArray | null | undefined, + ): TReturn[]; + /** + * Translate all items in an array or object to new array of items. + * @param obj The Object to translate. + * @param callback The function to process each item against. The first argument to the function is the value; the + * second argument is the key of the object property. The function can return any value to add to the + * array. A returned array will be flattened into the resulting array. Within the function, this refers + * to the global (window) object. + * @see \`{@link https://api.jquery.com/jQuery.map/ }\` + * @since 1.6 + * @example ​ ````Map the original object to a new array and double each value. +```javascript +var dimensions = { width: 10, height: 15, length: 20 }; +dimensions = $.map( dimensions, function( value, index ) { + return value * 2; +}); +``` + * @example ​ ````Map an object's keys to an array. +```javascript +var dimensions = { width: 10, height: 15, length: 20 }; +var keys = $.map( dimensions, function( value, key ) { + return key; +}); +``` + */ + map( + obj: T, + callback: (this: Window, propertyOfObject: T[K], key: K) => JQuery.TypeOrArray | null | undefined, + ): TReturn[]; + /** + * Merge the contents of two arrays together into the first array. + * @param first The first array-like object to merge, the elements of second added. + * @param second The second array-like object to merge into the first, unaltered. + * @see \`{@link https://api.jquery.com/jQuery.merge/ }\` + * @since 1.0 + * @example ​ ````Merges two arrays, altering the first argument. +```javascript +$.merge( [ 0, 1, 2 ], [ 2, 3, 4 ] ) +``` + * @example ​ ````Merges two arrays, altering the first argument. +```javascript +$.merge( [ 3, 2, 1 ], [ 4, 3, 2 ] ) +``` + * @example ​ ````Merges two arrays, but uses a copy, so the original isn't altered. +```javascript +var first = [ "a", "b", "c" ]; +var second = [ "d", "e", "f" ]; +$.merge( $.merge( [], first ), second ); +``` + */ + merge(first: ArrayLike, second: ArrayLike): Array; + /** + * Relinquish jQuery's control of the $ variable. + * @param removeAll A Boolean indicating whether to remove all jQuery variables from the global scope (including jQuery itself). + * @see \`{@link https://api.jquery.com/jQuery.noConflict/ }\` + * @since 1.0 + * @example ​ ````Map the original object that was referenced by $ back to $. +```javascript +jQuery.noConflict(); +// Do something with jQuery +jQuery( "div p" ).hide(); +// Do something with another library's $() +$( "content" ).style.display = "none"; +``` + * @example ​ ````Revert the $ alias and then create and execute a function to provide the $ as a jQuery alias inside the function's scope. Inside the function the original $ object is not available. This works well for most plugins that don't rely on any other library. +```javascript +jQuery.noConflict(); +(function( $ ) { + $(function() { + // More code using $ as alias to jQuery + }); +})(jQuery); +​ +// Other code using $ as an alias to the other library +``` + * @example ​ ````Create a different alias instead of jQuery to use in the rest of the script. +```javascript +var j = jQuery.noConflict(); +​ +// Do something with jQuery +j( "div p" ).hide(); +​ +// Do something with another library's $() +$( "content" ).style.display = "none"; +``` + * @example ​ ````Completely move jQuery to a new namespace in another object. +```javascript +var dom = {}; +dom.query = jQuery.noConflict( true ); +``` + * @example ​ ````Load two versions of jQuery (not recommended). Then, restore jQuery's globally scoped variables to the first loaded jQuery. +```html + + + + + jQuery.noConflict demo + + + +​ +
      +

      Before $.noConflict(true)

      +
      + +​ + +​ + + +``` + */ + noConflict(removeAll?: boolean): this; + /** + * @deprecated ​ Deprecated since 3.2. + * + * **Cause**: This public but never-documented method has been deprecated as of jQuery 3.2.0. + * + * **Solution**: Replace calls such as `jQuery.nodeName( elem, "div" )` with a test such as `elem.nodeName.toLowerCase() === "div"`. + */ + nodeName(elem: Node, name: string): boolean; + /** + * An empty function. + * @see \`{@link https://api.jquery.com/jQuery.noop/ }\` + * @since 1.4 + */ + noop(): undefined; + /** + * Return a number representing the current time. + * @see \`{@link https://api.jquery.com/jQuery.now/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.3. Use \`{@link DateConstructor.now Date.now}\`. + */ + now(): number; + /** + * Create a serialized representation of an array, a plain object, or a jQuery object suitable for use in a URL query string or Ajax request. In case a jQuery object is passed, it should contain input elements with name/value properties. + * @param obj An array, a plain object, or a jQuery object to serialize. + * @param traditional A Boolean indicating whether to perform a traditional "shallow" serialization. + * @see \`{@link https://api.jquery.com/jQuery.param/ }\` + * @since 1.2 + * @since 1.4 + * @example ​ ````Serialize a key/value object. +```html + + + + + jQuery.param demo + + + + +​ +
      +​ + +​ + + +``` + * @example ​ ````Serialize a few complex objects +```html + + + + + jQuery.param demo + + + + +​​ + +​ + + +``` + */ + param(obj: any[] | JQuery.PlainObject | JQuery, traditional?: boolean): string; + /** + * Parses a string into an array of DOM nodes. + * @param data HTML string to be parsed + * @param context Document element to serve as the context in which the HTML fragment will be created + * @param keepScripts A Boolean indicating whether to include scripts passed in the HTML string + * @see \`{@link https://api.jquery.com/jQuery.parseHTML/ }\` + * @since 1.8 + */ + parseHTML(data: string, context: Document | null | undefined, keepScripts: boolean): JQuery.Node[]; + /** + * Parses a string into an array of DOM nodes. + * @param data HTML string to be parsed + * @param context_keepScripts _@param_ `context_keepScripts` + *
      + * * `context` — Document element to serve as the context in which the HTML fragment will be created
      + * * `keepScripts` — A Boolean indicating whether to include scripts passed in the HTML string + * @see \`{@link https://api.jquery.com/jQuery.parseHTML/ }\` + * @since 1.8 + * @example ​ ````Create an array of DOM nodes using an HTML string and insert it into a div. +```html + + + + + jQuery.parseHTML demo + + + +​ +
      +

      Content:

      +
      +​ + +​ + + +``` + */ + parseHTML(data: string, context_keepScripts?: Document | null | boolean): JQuery.Node[]; + /** + * Takes a well-formed JSON string and returns the resulting JavaScript value. + * @param json The JSON string to parse. + * @see \`{@link https://api.jquery.com/jQuery.parseJSON/ }\` + * @since 1.4.1 + * @deprecated ​ Deprecated since 3.0. Use \`{@link JSON.parse }\`. + * + * **Cause**: The `jQuery.parseJSON` method in recent jQuery is identical to the native `JSON.parse`. As of jQuery 3.0 `jQuery.parseJSON` is deprecated. + * + * **Solution**: Replace any use of `jQuery.parseJSON` with `JSON.parse`. + * @example ​ ````Parse a JSON string. +```javascript +var obj = jQuery.parseJSON( '{ "name": "John" }' ); +alert( obj.name === "John" ); +``` + */ + parseJSON(json: string): any; + /** + * Parses a string into an XML document. + * @param data a well-formed XML string to be parsed + * @see \`{@link https://api.jquery.com/jQuery.parseXML/ }\` + * @since 1.5 + * @example ​ ````Create a jQuery object using an XML string and obtain the value of the title node. +```html + + + + + jQuery.parseXML demo + + + +​ +

      +

      +​ + +​ + + +``` + */ + parseXML(data: string): XMLDocument; + /** + * Load data from the server using a HTTP POST request. + * @param url A string containing the URL to which the request is sent. + * @param data A plain object or string that is sent to the server with the request. + * @param success A callback function that is executed if the request succeeds. Required if dataType is provided, but + * can be null in that case. + * @param dataType The type of data expected from the server. Default: Intelligent Guess (xml, json, script, text, html). + * @see \`{@link https://api.jquery.com/jQuery.post/ }\` + * @since 1.0 + * @example ​ ````Post to the test.php page and get content which has been returned in json format (<?php echo json_encode(array("name"=>"John","time"=>"2pm")); ?>). +```javascript +$.post( "test.php", { func: "getNameAndTime" }, function( data ) { + console.log( data.name ); // John + console.log( data.time ); // 2pm +}, "json"); +``` + */ + post( + url: string, + data: JQuery.PlainObject | string, + success: JQuery.jqXHR.DoneCallback | null, + dataType?: string, + ): JQuery.jqXHR; + /** + * Load data from the server using a HTTP POST request. + * @param url A string containing the URL to which the request is sent. + * @param success_data _@param_ `success_data` + *
      + * * `success` — A callback function that is executed if the request succeeds. Required if `dataType` is provided, + * but can be `null` in that case.
      + * * `data` — A plain object or string that is sent to the server with the request. + * @param dataType The type of data expected from the server. Default: Intelligent Guess (xml, json, script, text, html). + * @see \`{@link https://api.jquery.com/jQuery.post/ }\` + * @since 1.0 + */ + post( + url: string, + data_success: JQuery.PlainObject | string | JQuery.jqXHR.DoneCallback | null, + dataType: string, + ): JQuery.jqXHR; + /** + * Load data from the server using a HTTP POST request. + * @param url A string containing the URL to which the request is sent. + * @param success_data _@param_ `success_data` + *
      + * * `success` — A callback function that is executed if the request succeeds. Required if `dataType` is provided, + * but can be `null` in that case.
      + * * `data` — A plain object or string that is sent to the server with the request. + * @see \`{@link https://api.jquery.com/jQuery.post/ }\` + * @since 1.0 + * @example ​ ````Request the test.php page and send some additional data along (while still ignoring the return results). +```javascript +$.post( "test.php", { name: "John", time: "2pm" } ); +``` + * @example ​ ````Pass arrays of data to the server (while still ignoring the return results). +```javascript +$.post( "test.php", { 'choices[]': [ "Jon", "Susan" ] } ); +``` + * @example ​ ````Send form data using Ajax requests +```javascript +$.post( "test.php", $( "#testform" ).serialize() ); +``` + * @example ​ ````Alert the results from requesting test.php (HTML or XML, depending on what was returned). +```javascript +$.post( "test.php", function( data ) { + alert( "Data Loaded: " + data ); +}); +``` + * @example ​ ````Alert the results from requesting test.php with an additional payload of data (HTML or XML, depending on what was returned). +```javascript +$.post( "test.php", { name: "John", time: "2pm" }) + .done(function( data ) { + alert( "Data Loaded: " + data ); + }); +``` + * @example ​ ````Post a form using Ajax and put results in a div +```html + + + + + jQuery.post demo + + + +​ +
      + + +
      + +
      +​ + +​ + + +``` + */ + post(url: string, success_data: JQuery.jqXHR.DoneCallback | JQuery.PlainObject | string): JQuery.jqXHR; + /** + * Load data from the server using a HTTP POST request. + * @param url_settings _@param_ `url_settings` + *
      + * * `url` — A string containing the URL to which the request is sent.
      + * * `settings` — A set of key/value pairs that configure the Ajax request. All properties except for `url` are optional. + * A default can be set for any option with \`{@link ajaxSetup $.ajaxSetup()}\`. See \`{@link https://api.jquery.com/jquery.ajax/#jQuery-ajax-settings jQuery.ajax( settings )}\` + * for a complete list of all settings. Type will automatically be set to `POST`. + * @see \`{@link https://api.jquery.com/jQuery.post/ }\` + * @since 1.0 + * @since 1.12 + * @since 2.2 + * @example ​ ````Request the test.php page, but ignore the return results. +```javascript +$.post( "test.php" ); +``` + */ + post(url_settings?: string | JQuery.UrlAjaxSettings): JQuery.jqXHR; + + // region proxy + // #region proxy + + // region (funŃtion, null | undefined) + // #region (funŃtion, null | undefined) + + // region 0 to 7 additional arguments + // #region 0 to 7 additional arguments + + // region 0 parameters + // #region 0 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @param g An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, f: F, g: G) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + ): () => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, f: F) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + ): () => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + ): () => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + ): () => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + ): () => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy(funŃtion: (a: A, b: B) => TReturn, context: null | undefined, a: A, b: B): () => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy(funŃtion: (a: A) => TReturn, context: null | undefined, a: A): () => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy(funŃtion: () => TReturn, context: null | undefined): () => TReturn; + + // #endregion + + // region 1 parameters + // #region 1 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @param g An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, t: T) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + ): (t: T) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, f: F, t: T) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + ): (t: T) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, t: T) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + ): (t: T) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, t: T) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + ): (t: T) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, t: T) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + ): (t: T) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, t: T) => TReturn, + context: null | undefined, + a: A, + b: B, + ): (t: T) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy(funŃtion: (a: A, t: T) => TReturn, context: null | undefined, a: A): (t: T) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy(funŃtion: (t: T) => TReturn, context: null | undefined): (t: T) => TReturn; + + // #endregion + + // region 2 parameters + // #region 2 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @param g An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, t: T, u: U) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + ): (t: T, u: U) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, f: F, t: T, u: U) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + ): (t: T, u: U) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, t: T, u: U) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + ): (t: T, u: U) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, t: T, u: U) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + ): (t: T, u: U) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, t: T, u: U) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + ): (t: T, u: U) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, t: T, u: U) => TReturn, + context: null | undefined, + a: A, + b: B, + ): (t: T, u: U) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, t: T, u: U) => TReturn, + context: null | undefined, + a: A, + ): (t: T, u: U) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy(funŃtion: (t: T, u: U) => TReturn, context: null | undefined): (t: T, u: U) => TReturn; + + // #endregion + + // region 3 parameters + // #region 3 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @param g An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, t: T, u: U, v: V) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + ): (t: T, u: U, v: V) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, f: F, t: T, u: U, v: V) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + ): (t: T, u: U, v: V) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, t: T, u: U, v: V) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + ): (t: T, u: U, v: V) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, t: T, u: U, v: V) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + ): (t: T, u: U, v: V) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, t: T, u: U, v: V) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + ): (t: T, u: U, v: V) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, t: T, u: U, v: V) => TReturn, + context: null | undefined, + a: A, + b: B, + ): (t: T, u: U, v: V) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, t: T, u: U, v: V) => TReturn, + context: null | undefined, + a: A, + ): (t: T, u: U, v: V) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (t: T, u: U, v: V) => TReturn, + context: null | undefined, + ): (t: T, u: U, v: V) => TReturn; + + // #endregion + + // region 4 parameters + // #region 4 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @param g An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, t: T, u: U, v: V, w: W) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + ): (t: T, u: U, v: V, w: W) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, f: F, t: T, u: U, v: V, w: W) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + ): (t: T, u: U, v: V, w: W) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, t: T, u: U, v: V, w: W) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + ): (t: T, u: U, v: V, w: W) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, t: T, u: U, v: V, w: W) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + ): (t: T, u: U, v: V, w: W) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, t: T, u: U, v: V, w: W) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + ): (t: T, u: U, v: V, w: W) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, t: T, u: U, v: V, w: W) => TReturn, + context: null | undefined, + a: A, + b: B, + ): (t: T, u: U, v: V, w: W) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, t: T, u: U, v: V, w: W) => TReturn, + context: null | undefined, + a: A, + ): (t: T, u: U, v: V, w: W) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (t: T, u: U, v: V, w: W) => TReturn, + context: null | undefined, + ): (t: T, u: U, v: V, w: W) => TReturn; + + // #endregion + + // region 5 parameters + // #region 5 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @param g An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, t: T, u: U, v: V, w: W, x: X) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + ): (t: T, u: U, v: V, w: W, x: X) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, f: F, t: T, u: U, v: V, w: W, x: X) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + ): (t: T, u: U, v: V, w: W, x: X) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, t: T, u: U, v: V, w: W, x: X) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + ): (t: T, u: U, v: V, w: W, x: X) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, t: T, u: U, v: V, w: W, x: X) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + ): (t: T, u: U, v: V, w: W, x: X) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, t: T, u: U, v: V, w: W, x: X) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + ): (t: T, u: U, v: V, w: W, x: X) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, t: T, u: U, v: V, w: W, x: X) => TReturn, + context: null | undefined, + a: A, + b: B, + ): (t: T, u: U, v: V, w: W, x: X) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, t: T, u: U, v: V, w: W, x: X) => TReturn, + context: null | undefined, + a: A, + ): (t: T, u: U, v: V, w: W, x: X) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (t: T, u: U, v: V, w: W, x: X) => TReturn, + context: null | undefined, + ): (t: T, u: U, v: V, w: W, x: X) => TReturn; + + // #endregion + + // region 6 parameters + // #region 6 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @param g An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + ): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, f: F, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + ): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + ): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + ): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + ): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: null | undefined, + a: A, + b: B, + ): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: null | undefined, + a: A, + ): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: null | undefined, + ): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn; + + // #endregion + + // region 7+ parameters + // #region 7+ parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @param g An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: ( + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + t: T, + u: U, + v: V, + w: W, + x: X, + y: Y, + z: Z, + ...args: any[] + ) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + ): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: ( + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + t: T, + u: U, + v: V, + w: W, + x: X, + y: Y, + z: Z, + ...args: any[] + ) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + ): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, e: E, t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + e: E, + ): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, d: D, t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + d: D, + ): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, c: C, t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: null | undefined, + a: A, + b: B, + c: C, + ): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, b: B, t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: null | undefined, + a: A, + b: B, + ): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (a: A, t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: null | undefined, + a: A, + ): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: null | undefined, + ): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn; + + // #endregion + + // #endregion + + // region 8+ additional arguments + // #region 8+ additional arguments + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param additionalArguments Any number of arguments to be passed to the function referenced in the function argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.9 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + */ + proxy( + funŃtion: (...args: any[]) => TReturn, + context: null | undefined, + ...additionalArguments: any[] + ): (...args: any[]) => TReturn; + + // #endregion + + // #endregion + + // region (funŃtion, context) + // #region (funŃtion, context) + + // region 0 to 7 additional arguments + // #region 0 to 7 additional arguments + + // region 0 parameters + // #region 0 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @param g An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, f: F, g: G) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + ): () => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, f: F) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + ): () => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + ): () => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + ): () => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + ): () => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B) => TReturn, + context: TContext, + a: A, + b: B, + ): () => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4` + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy(funŃtion: (this: TContext, a: A) => TReturn, context: TContext, a: A): () => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy(funŃtion: (this: TContext) => TReturn, context: TContext): () => TReturn; + + // #endregion + + // region 1 parameters + // #region 1 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @param g An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, f: F, g: G, t: T) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + ): (t: T) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, f: F, t: T) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + ): (t: T) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, t: T) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + ): (t: T) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, t: T) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + ): (t: T) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, t: T) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + ): (t: T) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, t: T) => TReturn, + context: TContext, + a: A, + b: B, + ): (t: T) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, t: T) => TReturn, + context: TContext, + a: A, + ): (t: T) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy(funŃtion: (this: TContext, t: T) => TReturn, context: TContext): (t: T) => TReturn; + + // #endregion + + // region 2 parameters + // #region 2 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @param g An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, f: F, g: G, t: T, u: U) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + ): (t: T, u: U) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, f: F, t: T, u: U) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + ): (t: T, u: U) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, t: T, u: U) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + ): (t: T, u: U) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, t: T, u: U) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + ): (t: T, u: U) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, t: T, u: U) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + ): (t: T, u: U) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, t: T, u: U) => TReturn, + context: TContext, + a: A, + b: B, + ): (t: T, u: U) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, t: T, u: U) => TReturn, + context: TContext, + a: A, + ): (t: T, u: U) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, t: T, u: U) => TReturn, + context: TContext, + ): (t: T, u: U) => TReturn; + + // #endregion + + // region 3 parameters + // #region 3 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @param g An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, f: F, g: G, t: T, u: U, v: V) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + ): (t: T, u: U, v: V) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, f: F, t: T, u: U, v: V) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + ): (t: T, u: U, v: V) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, t: T, u: U, v: V) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + ): (t: T, u: U, v: V) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, t: T, u: U, v: V) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + ): (t: T, u: U, v: V) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, t: T, u: U, v: V) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + ): (t: T, u: U, v: V) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, t: T, u: U, v: V) => TReturn, + context: TContext, + a: A, + b: B, + ): (t: T, u: U, v: V) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, t: T, u: U, v: V) => TReturn, + context: TContext, + a: A, + ): (t: T, u: U, v: V) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, t: T, u: U, v: V) => TReturn, + context: TContext, + ): (t: T, u: U, v: V) => TReturn; + + // #endregion + + // region 4 parameters + // #region 4 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @param g An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, f: F, g: G, t: T, u: U, v: V, w: W) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + ): (t: T, u: U, v: V, w: W) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, f: F, t: T, u: U, v: V, w: W) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + ): (t: T, u: U, v: V, w: W) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, t: T, u: U, v: V, w: W) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + ): (t: T, u: U, v: V, w: W) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, t: T, u: U, v: V, w: W) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + ): (t: T, u: U, v: V, w: W) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, t: T, u: U, v: V, w: W) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + ): (t: T, u: U, v: V, w: W) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, t: T, u: U, v: V, w: W) => TReturn, + context: TContext, + a: A, + b: B, + ): (t: T, u: U, v: V, w: W) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, t: T, u: U, v: V, w: W) => TReturn, + context: TContext, + a: A, + ): (t: T, u: U, v: V, w: W) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, t: T, u: U, v: V, w: W) => TReturn, + context: TContext, + ): (t: T, u: U, v: V, w: W) => TReturn; + + // #endregion + + // region 5 parameters + // #region 5 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @param g An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, f: F, g: G, t: T, u: U, v: V, w: W, x: X) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + ): (t: T, u: U, v: V, w: W, x: X) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, f: F, t: T, u: U, v: V, w: W, x: X) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + ): (t: T, u: U, v: V, w: W, x: X) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, t: T, u: U, v: V, w: W, x: X) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + ): (t: T, u: U, v: V, w: W, x: X) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, t: T, u: U, v: V, w: W, x: X) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + ): (t: T, u: U, v: V, w: W, x: X) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, t: T, u: U, v: V, w: W, x: X) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + ): (t: T, u: U, v: V, w: W, x: X) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, t: T, u: U, v: V, w: W, x: X) => TReturn, + context: TContext, + a: A, + b: B, + ): (t: T, u: U, v: V, w: W, x: X) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, t: T, u: U, v: V, w: W, x: X) => TReturn, + context: TContext, + a: A, + ): (t: T, u: U, v: V, w: W, x: X) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, t: T, u: U, v: V, w: W, x: X) => TReturn, + context: TContext, + ): (t: T, u: U, v: V, w: W, x: X) => TReturn; + + // #endregion + + // region 6 parameters + // #region 6 parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @param g An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: ( + this: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + t: T, + u: U, + v: V, + w: W, + x: X, + y: Y, + ) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + ): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, f: F, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + ): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, e: E, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + ): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, d: D, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + ): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, c: C, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + ): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: TContext, + a: A, + b: B, + ): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: TContext, + a: A, + ): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn, + context: TContext, + ): (t: T, u: U, v: V, w: W, x: X, y: Y) => TReturn; + + // #endregion + + // region 7+ parameters + // #region 7+ parameters + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @param g An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: ( + this: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + t: T, + u: U, + v: V, + w: W, + x: X, + y: Y, + z: Z, + ...args: any[] + ) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + ): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @param f An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: ( + this: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + t: T, + u: U, + v: V, + w: W, + x: X, + y: Y, + z: Z, + ...args: any[] + ) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + ): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @param e An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: ( + this: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + t: T, + u: U, + v: V, + w: W, + x: X, + y: Y, + z: Z, + ...args: any[] + ) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + e: E, + ): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @param d An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: ( + this: TContext, + a: A, + b: B, + c: C, + d: D, + t: T, + u: U, + v: V, + w: W, + x: X, + y: Y, + z: Z, + ...args: any[] + ) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + d: D, + ): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @param c An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: ( + this: TContext, + a: A, + b: B, + c: C, + t: T, + u: U, + v: V, + w: W, + x: X, + y: Y, + z: Z, + ...args: any[] + ) => TReturn, + context: TContext, + a: A, + b: B, + c: C, + ): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @param b An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, b: B, t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: TContext, + a: A, + b: B, + ): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param a An argument to be passed to the function referenced in the `function` argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, a: A, t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: TContext, + a: A, + ): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn; + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn, + context: TContext, + ): (t: T, u: U, v: V, w: W, x: X, y: Y, z: Z, ...args: any[]) => TReturn; + + // #endregion + + // #endregion + + // region 8+ additional arguments + // #region 8+ additional arguments + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param funŃtion The function whose context will be changed. + * @param context The object to which the context (`this`) of the function should be set. + * @param additionalArguments Any number of arguments to be passed to the function referenced in the function argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Change the context of functions bound to a click handler using the "function, context" signature. Unbind the first handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + * @example ​ ````Change the context of a function bound to the click handler, +```html + + + + + jQuery.proxy demo + + + +​ +

      +
      +​ + +​ + + +``` + */ + proxy( + funŃtion: (this: TContext, ...args: any[]) => TReturn, + context: TContext, + ...additionalArguments: any[] + ): (...args: any[]) => TReturn; + + // #endregion + + // #endregion + + // region (context, name) + // #region (context, name) + + /** + * Takes a function and returns a new one that will always have a particular context. + * @param context The object to which the context of the function should be set. + * @param name The name of the function whose context will be changed (should be a property of the context object). + * @param additionalArguments Any number of arguments to be passed to the function named in the name argument. + * @see \`{@link https://api.jquery.com/jQuery.proxy/ }\` + * @since 1.4 + * @since 1.6 + * @deprecated ​ Deprecated since 3.3. Use \`{@link Function#bind }\`. + * @example ​ ````Enforce the context of the function using the "context, function name" signature. Unbind the handler after first click. +```html + + + + + jQuery.proxy demo + + + +​ +

      +

      +​ + +​ + + +``` + */ + proxy(context: TContext, name: keyof TContext, ...additionalArguments: any[]): (...args: any[]) => any; + + // #endregion + + // #endregion + + /** + * Manipulate the queue of functions to be executed on the matched element. + * @param element A DOM element where the array of queued functions is attached. + * @param queueName A string containing the name of the queue. Defaults to fx, the standard effects queue. + * @param newQueue The new function to add to the queue. + * An array of functions to replace the current queue contents. + * @see \`{@link https://api.jquery.com/jQuery.queue/ }\` + * @since 1.3 + * @example ​ ````Show the length of the queue. +```html + + + + + jQuery.queue demo + + + + +​ + + +
      + ​ + +​ + + +``` + * @example ​ ````Queue a custom function. +```html + + + + + jQuery.queue demo + + + + +​ +Click here... +
      +​ + +​ + + +``` + * @example ​ ````Set a queue array to delete the queue. +```html + + + + + jQuery.queue demo + + + + +​ + + +
      +​ + +​ + + +``` + */ + queue( + element: T, + queueName?: string, + newQueue?: JQuery.TypeOrArray>, + ): JQuery.Queue; + /** + * Handles errors thrown synchronously in functions wrapped in jQuery(). + * @param error An error thrown in the function wrapped in jQuery(). + * @see \`{@link https://api.jquery.com/jQuery.readyException/ }\` + * @since 3.1 + * @example ​ ````Pass the received error to console.error. +```javascript +jQuery.readyException = function( error ) { + console.error( error ); +}; +``` + */ + readyException(error: Error): any; + /** + * Remove a previously-stored piece of data. + * @param element A DOM element from which to remove data. + * @param name A string naming the piece of data to remove. + * @see \`{@link https://api.jquery.com/jQuery.removeData/ }\` + * @since 1.2.3 + * @example ​ ````Set a data store for 2 names then remove one of them. +```html + + + + + jQuery.removeData demo + + + + +​ +
      value1 before creation:
      +
      value1 after creation:
      +
      value1 after removal:
      +
      value2 after removal:
      +​ + +​ + + +``` + */ + removeData(element: Element | Document | Window | JQuery.PlainObject, name?: string): void; + /** + * Creates an object containing a set of properties ready to be used in the definition of custom animations. + * @param duration A string or number determining how long the animation will run. + * @param easing A string indicating which easing function to use for the transition. + * @param complete A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/jQuery.speed/ }\` + * @since 1.1 + */ + speed( + duration: JQuery.Duration, + easing: string, + complete: (this: TElement) => void, + ): JQuery.EffectsOptions; + /** + * Creates an object containing a set of properties ready to be used in the definition of custom animations. + * @param duration A string or number determining how long the animation will run. + * @param easing_complete _@param_ `easing_complete` + *
      + * * `easing` — A string indicating which easing function to use for the transition.
      + * * `complete` — A function to call once the animation is complete, called once per matched element. + * @see \`{@link https://api.jquery.com/jQuery.speed/ }\` + * @since 1.0 + * @since 1.1 + */ + speed( + duration: JQuery.Duration, + easing_complete: string | ((this: TElement) => void), + ): JQuery.EffectsOptions; + /** + * Creates an object containing a set of properties ready to be used in the definition of custom animations. + * @param duration_complete_settings _@param_ `duration_complete_settings` + *
      + * * `duration` — A string or number determining how long the animation will run.
      + * * `complete` — A function to call once the animation is complete, called once per matched element.
      + * * `settings` — + * @see \`{@link https://api.jquery.com/jQuery.speed/ }\` + * @since 1.0 + * @since 1.1 + */ + speed( + duration_complete_settings?: JQuery.Duration | ((this: TElement) => void) | JQuery.SpeedSettings, + ): JQuery.EffectsOptions; + /** + * Remove the whitespace from the beginning and end of a string. + * @param str The string to trim. + * @see \`{@link https://api.jquery.com/jQuery.trim/ }\` + * @since 1.0 + * @deprecated ​ Deprecated since 3.5. Use \`{@link String.prototype.trim String.prototype.trim}\`. + * @example ​ ````Remove the white spaces at the start and at the end of the string. +```html + + + + + jQuery.trim demo + + + +​ +
      
      +
      
      +​
      +
      +​
      +
      +
      +```
      +     * @example ​ ````Remove the white spaces at the start and at the end of the string.
      +```javascript
      +$.trim("    hello, how are you?    ");
      +```
      +     * @example ​ ````Remove the white spaces at the start and at the end of the string.
      +```javascript
      +$.trim("    hello, how are you?    ");
      +```
      +     */
      +    trim(str: string): string;
      +    /**
      +     * Determine the internal JavaScript [[Class]] of an object.
      +     * @param obj Object to get the internal JavaScript [[Class]] of.
      +     * @see \`{@link https://api.jquery.com/jQuery.type/ }\`
      +     * @since 1.4.3
      +     * @deprecated ​ Deprecated since 3.3. See \`{@link https://github.com/jquery/jquery/issues/3605 }\`.
      +     * @example ​ ````Find out if the parameter is a RegExp.
      +```html
      +
      +
      +
      +  
      +  jQuery.type demo
      +  
      +
      +
      +​
      +Is it a RegExp? 
      +​
      +
      +​
      +
      +
      +```
      +     */
      +    type(
      +        obj: any,
      +    ):
      +        | "array"
      +        | "boolean"
      +        | "date"
      +        | "error"
      +        | "function"
      +        | "null"
      +        | "number"
      +        | "object"
      +        | "regexp"
      +        | "string"
      +        | "symbol"
      +        | "undefined";
      +    /**
      +     * Sorts an array of DOM elements, in place, with the duplicates removed. Note that this only works on arrays of DOM elements, not strings or numbers.
      +     * @param array The Array of DOM elements.
      +     * @see \`{@link https://api.jquery.com/jQuery.unique/ }\`
      +     * @since 1.1.3
      +     * @deprecated ​ Deprecated since 3.0. Use \`{@link uniqueSort }\`.
      +     *
      +     * **Cause**: The fact that `jQuery.unique` sorted its results in DOM order was surprising to many who did not read the documentation carefully. As of jQuery 3.0 this function is being renamed to make it clear.
      +     *
      +     * **Solution**: Replace all uses of `jQuery.unique` with `jQuery.uniqueSort` which is the same function with a better name.
      +     * @example ​ ````Removes any duplicate elements from the array of divs.
      +```html
      +
      +
      +
      +  
      +  jQuery.unique demo
      +  
      +  
      +
      +
      +​
      +
      There are 6 divs in this document.
      +
      +
      +
      +
      +
      +​ + +​ + + +``` + */ + unique(array: T[]): T[]; + /** + * Sorts an array of DOM elements, in place, with the duplicates removed. Note that this only works on arrays of DOM elements, not strings or numbers. + * @param array The Array of DOM elements. + * @see \`{@link https://api.jquery.com/jQuery.uniqueSort/ }\` + * @since 1.12 + * @since 2.2 + * @example ​ ````Removes any duplicate elements from the array of divs. +```html + + + + + jQuery.uniqueSort demo + + + + +​ +
      There are 6 divs in this document.
      +
      +
      +
      +
      +
      +​ + +​ + + +``` + */ + uniqueSort(array: T[]): T[]; + /** + * Provides a way to execute callback functions based on zero or more Thenable objects, usually Deferred objects that represent asynchronous events. + * @see \`{@link https://api.jquery.com/jQuery.when/ }\` + * @since 1.5 + * @example ​ ````Execute a function after two Ajax requests are successful. (See the jQuery.ajax() documentation for a complete description of success and error cases for an ajax request). +```javascript +$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ).done(function( a1, a2 ) { + // a1 and a2 are arguments resolved for the page1 and page2 ajax requests, respectively. + // Each argument is an array with the following structure: [ data, statusText, jqXHR ] + var data = a1[ 0 ] + a2[ 0 ]; // a1[ 0 ] = "Whip", a2[ 0 ] = " It" + if ( /Whip It/.test( data ) ) { + alert( "We got what we came for!" ); + } +}); +``` + * @example ​ ````Execute the function myFunc when both ajax requests are successful, or myFailure if either one has an error. +```javascript +$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ) + .then( myFunc, myFailure ); +``` + */ + when( + deferredT: JQuery.Promise | JQuery.Thenable | TR1, + deferredU: JQuery.Promise | JQuery.Thenable | UR1, + deferredV: JQuery.Promise | JQuery.Thenable | VR1, + ): JQuery.Promise3< + TR1, + TJ1, + never, + UR1, + UJ1, + never, + VR1, + VJ1, + never + >; + /** + * Provides a way to execute callback functions based on zero or more Thenable objects, usually Deferred objects that represent asynchronous events. + * @see \`{@link https://api.jquery.com/jQuery.when/ }\` + * @since 1.5 + * @example ​ ````Execute a function after two Ajax requests are successful. (See the jQuery.ajax() documentation for a complete description of success and error cases for an ajax request). +```javascript +$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ).done(function( a1, a2 ) { + // a1 and a2 are arguments resolved for the page1 and page2 ajax requests, respectively. + // Each argument is an array with the following structure: [ data, statusText, jqXHR ] + var data = a1[ 0 ] + a2[ 0 ]; // a1[ 0 ] = "Whip", a2[ 0 ] = " It" + if ( /Whip It/.test( data ) ) { + alert( "We got what we came for!" ); + } +}); +``` + * @example ​ ````Execute the function myFunc when both ajax requests are successful, or myFailure if either one has an error. +```javascript +$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ) + .then( myFunc, myFailure ); +``` + */ + when( + deferredT: JQuery.Promise | JQuery.Thenable | TR1, + deferredU: JQuery.Promise | JQuery.Thenable | UR1, + ): JQuery.Promise2< + TR1, + TJ1, + never, + UR1, + UJ1, + never + >; + /** + * Provides a way to execute callback functions based on zero or more Thenable objects, usually Deferred objects that represent asynchronous events. + * @see \`{@link https://api.jquery.com/jQuery.when/ }\` + * @since 1.5 + * @example ​ ````Execute a function after two Ajax requests are successful. (See the jQuery.ajax() documentation for a complete description of success and error cases for an ajax request). +```javascript +$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ).done(function( a1, a2 ) { + // a1 and a2 are arguments resolved for the page1 and page2 ajax requests, respectively. + // Each argument is an array with the following structure: [ data, statusText, jqXHR ] + var data = a1[ 0 ] + a2[ 0 ]; // a1[ 0 ] = "Whip", a2[ 0 ] = " It" + if ( /Whip It/.test( data ) ) { + alert( "We got what we came for!" ); + } +}); +``` + * @example ​ ````Execute the function myFunc when both ajax requests are successful, or myFailure if either one has an error. +```javascript +$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ) + .then( myFunc, myFailure ); +``` + */ + when( + deferredT: + | JQuery.Promise3 + | JQuery.Promise2, + ): JQuery.Promise3< + TR1, + TJ1, + never, + TR2, + TJ2, + never, + TR3, + TJ3, + never + >; + /** + * Provides a way to execute callback functions based on zero or more Thenable objects, usually Deferred objects that represent asynchronous events. + * @see \`{@link https://api.jquery.com/jQuery.when/ }\` + * @since 1.5 + * @example ​ ````Execute a function after two Ajax requests are successful. (See the jQuery.ajax() documentation for a complete description of success and error cases for an ajax request). +```javascript +$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ).done(function( a1, a2 ) { + // a1 and a2 are arguments resolved for the page1 and page2 ajax requests, respectively. + // Each argument is an array with the following structure: [ data, statusText, jqXHR ] + var data = a1[ 0 ] + a2[ 0 ]; // a1[ 0 ] = "Whip", a2[ 0 ] = " It" + if ( /Whip It/.test( data ) ) { + alert( "We got what we came for!" ); + } +}); +``` + * @example ​ ````Execute the function myFunc when both ajax requests are successful, or myFailure if either one has an error. +```javascript +$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ) + .then( myFunc, myFailure ); +``` + */ + when( + deferred: JQuery.Promise | JQuery.Thenable | TR1, + ): JQuery.Promise; + /** + * Provides a way to execute callback functions based on zero or more Thenable objects, usually Deferred objects that represent asynchronous events. + * @param deferreds Zero or more Thenable objects. + * @see \`{@link https://api.jquery.com/jQuery.when/ }\` + * @since 1.5 + * @example ​ ````Execute a function after two Ajax requests are successful. (See the jQuery.ajax() documentation for a complete description of success and error cases for an ajax request). +```javascript +$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ).done(function( a1, a2 ) { + // a1 and a2 are arguments resolved for the page1 and page2 ajax requests, respectively. + // Each argument is an array with the following structure: [ data, statusText, jqXHR ] + var data = a1[ 0 ] + a2[ 0 ]; // a1[ 0 ] = "Whip", a2[ 0 ] = " It" + if ( /Whip It/.test( data ) ) { + alert( "We got what we came for!" ); + } +}); +``` + * @example ​ ````Execute the function myFunc when both ajax requests are successful, or myFailure if either one has an error. +```javascript +$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ) + .then( myFunc, myFailure ); +``` + */ + when( + ...deferreds: Array | JQuery.Thenable | TR1> + ): JQuery.Promise; + /** + * Provides a way to execute callback functions based on zero or more Thenable objects, usually Deferred objects that represent asynchronous events. + * @param deferreds Zero or more Thenable objects. + * @see \`{@link https://api.jquery.com/jQuery.when/ }\` + * @since 1.5 + * @example ​ ````Execute a function after two Ajax requests are successful. (See the jQuery.ajax() documentation for a complete description of success and error cases for an ajax request). +```javascript +$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ).done(function( a1, a2 ) { + // a1 and a2 are arguments resolved for the page1 and page2 ajax requests, respectively. + // Each argument is an array with the following structure: [ data, statusText, jqXHR ] + var data = a1[ 0 ] + a2[ 0 ]; // a1[ 0 ] = "Whip", a2[ 0 ] = " It" + if ( /Whip It/.test( data ) ) { + alert( "We got what we came for!" ); + } +}); +``` + * @example ​ ````Execute the function myFunc when both ajax requests are successful, or myFailure if either one has an error. +```javascript +$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ) + .then( myFunc, myFailure ); +``` + */ + when(...deferreds: any[]): JQuery.Promise; +} diff --git a/node_modules/@types/jquery/LICENSE b/node_modules/@types/jquery/LICENSE new file mode 100644 index 0000000..9e841e7 --- /dev/null +++ b/node_modules/@types/jquery/LICENSE @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + 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/@types/jquery/README.md b/node_modules/@types/jquery/README.md new file mode 100644 index 0000000..92369de --- /dev/null +++ b/node_modules/@types/jquery/README.md @@ -0,0 +1,15 @@ +# Installation +> `npm install --save @types/jquery` + +# Summary +This package contains type definitions for jquery (https://jquery.com). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jquery. + +### Additional Details + * Last updated: Wed, 25 Sep 2024 19:19:36 GMT + * Dependencies: [@types/sizzle](https://npmjs.com/package/@types/sizzle) + +# Credits +These definitions were written by [Leonard Thieu](https://github.com/leonard-thieu), [Boris Yankov](https://github.com/borisyankov), [Christian Hoffmeister](https://github.com/choffmeister), [Steve Fenton](https://github.com/Steve-Fenton), [Diullei Gomes](https://github.com/Diullei), [Tass Iliopoulos](https://github.com/tasoili), [Sean Hill](https://github.com/seanski), [Guus Goossens](https://github.com/Guuz), [Kelly Summerlin](https://github.com/ksummerlin), [Basarat Ali Syed](https://github.com/basarat), [Nicholas Wolverson](https://github.com/nwolverson), [Derek Cicerone](https://github.com/derekcicerone), [Andrew Gaspar](https://github.com/AndrewGaspar), [Seikichi Kondo](https://github.com/seikichi), [Benjamin Jackman](https://github.com/benjaminjackman), [Josh Strobl](https://github.com/JoshStrobl), [John Reilly](https://github.com/johnnyreilly), [Dick van den Brink](https://github.com/DickvdBrink), [Thomas Schulz](https://github.com/King2500), [Terry Mun](https://github.com/terrymun), [Martin Badin](https://github.com/martin-badin), and [Chris Frewin](https://github.com/princefishthrower). diff --git a/node_modules/@types/jquery/dist/jquery.slim.d.ts b/node_modules/@types/jquery/dist/jquery.slim.d.ts new file mode 100644 index 0000000..bdd21a7 --- /dev/null +++ b/node_modules/@types/jquery/dist/jquery.slim.d.ts @@ -0,0 +1,3 @@ +/// + +export = jQuery; diff --git a/node_modules/@types/jquery/index.d.ts b/node_modules/@types/jquery/index.d.ts new file mode 100644 index 0000000..2668685 --- /dev/null +++ b/node_modules/@types/jquery/index.d.ts @@ -0,0 +1,7 @@ +/// +/// +/// +/// +/// + +export = jQuery; diff --git a/node_modules/@types/jquery/legacy.d.ts b/node_modules/@types/jquery/legacy.d.ts new file mode 100644 index 0000000..b4a82f7 --- /dev/null +++ b/node_modules/@types/jquery/legacy.d.ts @@ -0,0 +1,204 @@ +// tslint:disable:no-irregular-whitespace + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +interface JQueryCallback extends JQuery.Callbacks {} +interface JQueryDeferred extends JQuery.Deferred {} +// eslint-disable-next-line @typescript-eslint/no-empty-interface +interface JQueryEventConstructor extends JQuery.EventStatic {} +interface JQueryDeferred extends JQuery.Deferred {} +// eslint-disable-next-line @typescript-eslint/no-empty-interface +interface JQueryAjaxSettings extends JQuery.AjaxSettings {} +interface JQueryAnimationOptions extends JQuery.EffectsOptions {} +// eslint-disable-next-line @typescript-eslint/no-empty-interface +interface JQueryCoordinates extends JQuery.Coordinates {} +interface JQueryGenericPromise extends JQuery.Thenable {} +// eslint-disable-next-line @typescript-eslint/no-empty-interface +interface JQueryXHR extends JQuery.jqXHR {} +interface JQueryPromise extends JQuery.Promise {} +// eslint-disable-next-line @typescript-eslint/no-empty-interface +interface JQuerySerializeArrayElement extends JQuery.NameValuePair {} + +/** + * @deprecated ​ Deprecated since 1.9. See \`{@link https://api.jquery.com/jQuery.support/ }\`. + */ +// eslint-disable-next-line @typescript-eslint/no-empty-interface +interface JQuerySupport extends JQuery.PlainObject {} + +// Legacy types that are not represented in the current type definitions are marked deprecated. + +/** + * @deprecated ​ Deprecated. Use \`{@link JQuery.Deferred.Callback }\` or \`{@link JQuery.Deferred.CallbackBase }\`. + */ +interface JQueryPromiseCallback { + (value?: T, ...args: any[]): void; +} +/** + * @deprecated ​ Deprecated. Use \`{@link JQueryStatic.param JQueryStatic['param']}\`. + */ +interface JQueryParam { + /** + * Create a serialized representation of an array or object, suitable for use in a URL query string or Ajax request. + * @param obj An array or object to serialize. + * @param traditional A Boolean indicating whether to perform a traditional "shallow" serialization. + */ + (obj: any, traditional?: boolean): string; +} +/** + * @deprecated ​ Deprecated. Use \`{@link JQuery.Event }\`. + */ +interface BaseJQueryEventObject extends Event { + /** + * The current DOM element within the event bubbling phase. + * @see \`{@link https://api.jquery.com/event.currentTarget/ }\` + */ + currentTarget: Element; + /** + * An optional object of data passed to an event method when the current executing handler is bound. + * @see \`{@link https://api.jquery.com/event.data/ }\` + */ + data: any; + /** + * The element where the currently-called jQuery event handler was attached. + * @see \`{@link https://api.jquery.com/event.delegateTarget/ }\` + */ + delegateTarget: Element; + /** + * Returns whether event.preventDefault() was ever called on this event object. + * @see \`{@link https://api.jquery.com/event.isDefaultPrevented/ }\` + */ + isDefaultPrevented(): boolean; + /** + * Returns whether event.stopImmediatePropagation() was ever called on this event object. + * @see \`{@link https://api.jquery.com/event.isImmediatePropagationStopped/ }\` + */ + isImmediatePropagationStopped(): boolean; + /** + * Returns whether event.stopPropagation() was ever called on this event object. + * @see \`{@link https://api.jquery.com/event.isPropagationStopped/ }\` + */ + isPropagationStopped(): boolean; + /** + * The namespace specified when the event was triggered. + * @see \`{@link https://api.jquery.com/event.namespace/ }\` + */ + namespace: string; + /** + * The browser's original Event object. + * @see \`{@link https://api.jquery.com/category/events/event-object/ }\` + */ + originalEvent: Event; + /** + * If this method is called, the default action of the event will not be triggered. + * @see \`{@link https://api.jquery.com/event.preventDefault/ }\` + */ + preventDefault(): any; + /** + * The other DOM element involved in the event, if any. + * @see \`{@link https://api.jquery.com/event.relatedTarget/ }\` + */ + relatedTarget: Element; + /** + * The last value returned by an event handler that was triggered by this event, unless the value was undefined. + * @see \`{@link https://api.jquery.com/event.result/ }\` + */ + result: any; + /** + * Keeps the rest of the handlers from being executed and prevents the event from bubbling up the DOM tree. + * @see \`{@link https://api.jquery.com/event.stopImmediatePropagation/ }\` + */ + stopImmediatePropagation(): void; + /** + * Prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event. + * @see \`{@link https://api.jquery.com/event.stopPropagation/ }\` + */ + stopPropagation(): void; + /** + * The DOM element that initiated the event. + * @see \`{@link https://api.jquery.com/event.target/ }\` + */ + target: Element; + /** + * The mouse position relative to the left edge of the document. + * @see \`{@link https://api.jquery.com/event.pageX/ }\` + */ + pageX: number; + /** + * The mouse position relative to the top edge of the document. + * @see \`{@link https://api.jquery.com/event.pageY/ }\` + */ + pageY: number; + /** + * For key or mouse events, this property indicates the specific key or button that was pressed. + * @see \`{@link https://api.jquery.com/event.which/ }\` + */ + which: number; + /** + * Indicates whether the META key was pressed when the event fired. + * @see \`{@link https://api.jquery.com/event.metaKey/ }\` + */ + metaKey: boolean; +} +/** + * @deprecated ​ Deprecated. Use \`{@link JQuery.Event }\`. + */ +interface JQueryInputEventObject extends BaseJQueryEventObject { + altKey: boolean; + ctrlKey: boolean; + metaKey: boolean; + shiftKey: boolean; +} +/** + * @deprecated ​ Deprecated. Use \`{@link JQuery.Event }\`. + */ +interface JQueryMouseEventObject extends JQueryInputEventObject { + button: number; + clientX: number; + clientY: number; + offsetX: number; + offsetY: number; + pageX: number; + pageY: number; + screenX: number; + screenY: number; +} +/** + * @deprecated ​ Deprecated. Use \`{@link JQuery.Event }\`. + */ +interface JQueryKeyEventObject extends JQueryInputEventObject { + /** @deprecated */ + char: string; + /** @deprecated */ + charCode: number; + key: string; + /** @deprecated */ + keyCode: number; +} +/** + * @deprecated ​ Deprecated. Use \`{@link JQuery.Event }\`. + */ +interface JQueryEventObject + extends BaseJQueryEventObject, JQueryInputEventObject, JQueryMouseEventObject, JQueryKeyEventObject +{} +/** + * @deprecated ​ Deprecated. + */ +interface JQueryPromiseOperator { + ( + callback1: JQuery.TypeOrArray>, + ...callbacksN: Array>> + ): JQueryPromise; +} +/** + * @deprecated ​ Deprecated. Internal. See \`{@link https://github.com/jquery/api.jquery.com/issues/912 }\`. + */ +interface JQueryEasingFunction { + (percent: number): number; +} +/** + * @deprecated ​ Deprecated. Internal. See \`{@link https://github.com/jquery/api.jquery.com/issues/912 }\`. + */ +interface JQueryEasingFunctions { + [name: string]: JQueryEasingFunction; + linear: JQueryEasingFunction; + swing: JQueryEasingFunction; +} diff --git a/node_modules/@types/jquery/misc.d.ts b/node_modules/@types/jquery/misc.d.ts new file mode 100644 index 0000000..934632a --- /dev/null +++ b/node_modules/@types/jquery/misc.d.ts @@ -0,0 +1,7364 @@ +// tslint:disable:jsdoc-format +// tslint:disable:no-irregular-whitespace + +declare namespace JQuery { + type TypeOrArray = T | T[]; + type Node = Element | Text | Comment | Document | DocumentFragment; + + /** + * A string is designated htmlString in jQuery documentation when it is used to represent one or more DOM elements, typically to be created and inserted in the document. When passed as an argument of the jQuery() function, the string is identified as HTML if it starts with ) and is parsed as such until the final > character. Prior to jQuery 1.9, a string was considered to be HTML if it contained anywhere within the string. + */ + type htmlString = string; + /** + * A selector is used in jQuery to select DOM elements from a DOM document. That document is, in most cases, the DOM document present in all browsers, but can also be an XML document received via Ajax. + */ + type Selector = string; + + /** + * The PlainObject type is a JavaScript object containing zero or more key-value pairs. The plain object is, in other words, an Object object. It is designated "plain" in jQuery documentation to distinguish it from other kinds of JavaScript objects: for example, null, user-defined arrays, and host objects such as document, all of which have a typeof value of "object." + * + * **Note**: The type declaration of PlainObject is imprecise. It includes host objects and user-defined arrays which do not match jQuery's definition. + */ + interface PlainObject { + [key: string]: T; + } + + interface Selectors extends Sizzle.Selectors { + /** + * @deprecated ​ Deprecated since 3.0. Use \`{@link Selectors#pseudos }\`. + * + * **Cause**: The standard way to add new custom selectors through jQuery is `jQuery.expr.pseudos`. These two other aliases are deprecated, although they still work as of jQuery 3.0. + * + * **Solution**: Rename any of the older usage to `jQuery.expr.pseudos`. The functionality is identical. + */ + ":": Sizzle.Selectors.PseudoFunctions; + /** + * @deprecated ​ Deprecated since 3.0. Use \`{@link Selectors#pseudos }\`. + * + * **Cause**: The standard way to add new custom selectors through jQuery is `jQuery.expr.pseudos`. These two other aliases are deprecated, although they still work as of jQuery 3.0. + * + * **Solution**: Rename any of the older usage to `jQuery.expr.pseudos`. The functionality is identical. + */ + filter: Sizzle.Selectors.FilterFunctions; + } + + // region Ajax + // #region Ajax + + interface AjaxSettings extends Ajax.AjaxSettingsBase { + /** + * A string containing the URL to which the request is sent. + */ + url?: string | undefined; + } + + interface UrlAjaxSettings extends Ajax.AjaxSettingsBase { + /** + * A string containing the URL to which the request is sent. + */ + url: string; + } + + namespace Ajax { + type SuccessTextStatus = "success" | "notmodified" | "nocontent"; + type ErrorTextStatus = "timeout" | "error" | "abort" | "parsererror"; + type TextStatus = SuccessTextStatus | ErrorTextStatus; + + type SuccessCallback = ( + this: TContext, + data: any, + textStatus: SuccessTextStatus, + jqXHR: jqXHR, + ) => void; + + type ErrorCallback = ( + this: TContext, + jqXHR: jqXHR, + textStatus: ErrorTextStatus, + errorThrown: string, + ) => void; + + type CompleteCallback = (this: TContext, jqXHR: jqXHR, textStatus: TextStatus) => void; + + /** + * @see \`{@link https://api.jquery.com/jquery.ajax/#jQuery-ajax-settings }\` + */ + interface AjaxSettingsBase { + /** + * A set of key/value pairs that map a given dataType to its MIME type, which gets sent in the Accept request header. This header tells the server what kind of response it will accept in return. + */ + accepts?: PlainObject | undefined; + /** + * By default, all requests are sent asynchronously (i.e. this is set to true by default). If you need synchronous requests, set this option to false. Cross-domain requests and dataType: "jsonp" requests do not support synchronous operation. Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active. As of jQuery 1.8, the use of async: false with jqXHR ($.Deferred) is deprecated; you must use the success/error/complete callback options instead of the corresponding methods of the jqXHR object such as jqXHR.done(). + */ + async?: boolean | undefined; + /** + * A pre-request callback function that can be used to modify the jqXHR (in jQuery 1.4.x, XMLHTTPRequest) object before it is sent. Use this to set custom headers, etc. The jqXHR and settings objects are passed as arguments. This is an Ajax Event. Returning false in the beforeSend function will cancel the request. As of jQuery 1.5, the beforeSend option will be called regardless of the type of request. + */ + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + beforeSend?(this: TContext, jqXHR: jqXHR, settings: this): false | void; + /** + * If set to false, it will force requested pages not to be cached by the browser. Note: Setting cache to false will only work correctly with HEAD and GET requests. It works by appending "_={timestamp}" to the GET parameters. The parameter is not needed for other types of requests, except in IE8 when a POST is made to a URL that has already been requested by a GET. + */ + cache?: boolean | undefined; + /** + * A function to be called when the request finishes (after success and error callbacks are executed). The function gets passed two arguments: The jqXHR (in jQuery 1.4.x, XMLHTTPRequest) object and a string categorizing the status of the request ("success", "notmodified", "nocontent", "error", "timeout", "abort", or "parsererror"). As of jQuery 1.5, the complete setting can accept an array of functions. Each function will be called in turn. This is an Ajax Event. + */ + complete?: TypeOrArray> | undefined; + /** + * An object of string/regular-expression pairs that determine how jQuery will parse the response, given its content type. + */ + contents?: PlainObject | undefined; + /** + * When sending data to the server, use this content type. Default is "application/x-www-form-urlencoded; charset=UTF-8", which is fine for most cases. If you explicitly pass in a content-type to $.ajax(), then it is always sent to the server (even if no data is sent). As of jQuery 1.6 you can pass false to tell jQuery to not set any content type header. Note: The W3C XMLHttpRequest specification dictates that the charset is always UTF-8; specifying another charset will not force the browser to change the encoding. Note: For cross-domain requests, setting the content type to anything other than application/x-www-form-urlencoded, multipart/form-data, or text/plain will trigger the browser to send a preflight OPTIONS request to the server. + */ + contentType?: string | false | undefined; + /** + * This object will be the context of all Ajax-related callbacks. By default, the context is an object that represents the Ajax settings used in the call ($.ajaxSettings merged with the settings passed to $.ajax). + */ + context?: TContext | undefined; + /** + * An object containing dataType-to-dataType converters. Each converter's value is a function that returns the transformed value of the response. + */ + converters?: PlainObject<((value: any) => any) | true> | undefined; + /** + * If you wish to force a crossDomain request (such as JSONP) on the same domain, set the value of crossDomain to true. This allows, for example, server-side redirection to another domain. + */ + crossDomain?: boolean | undefined; + /** + * Data to be sent to the server. It is converted to a query string, if not already a string. It's appended to the url for GET-requests. See processData option to prevent this automatic processing. Object must be Key/Value pairs. If value is an Array, jQuery serializes multiple values with same key based on the value of the traditional setting (described below). + */ + data?: PlainObject | string | undefined; + /** + * A function to be used to handle the raw response data of XMLHttpRequest. This is a pre-filtering function to sanitize the response. You should return the sanitized data. The function accepts two arguments: The raw data returned from the server and the 'dataType' parameter. + */ + dataFilter?(data: string, type: string): any; + /** + * The type of data that you're expecting back from the server. If none is specified, jQuery will try to infer it based on the MIME type of the response (an XML MIME type will yield XML, in 1.4 JSON will yield a JavaScript object, in 1.4 script will execute the script, and anything else will be returned as a string). The available types (and the result passed as the first argument to your success callback) are: + * + * "xml": Returns a XML document that can be processed via jQuery. + * + * "html": Returns HTML as plain text; included script tags are evaluated when inserted in the DOM. + * + * "script": Evaluates the response as JavaScript and returns it as plain text. Disables caching by appending a query string parameter, _=[TIMESTAMP], to the URL unless the cache option is set to true. Note: This will turn POSTs into GETs for remote-domain requests. + * + * "json": Evaluates the response as JSON and returns a JavaScript object. Cross-domain "json" requests are converted to "jsonp" unless the request includes jsonp: false in its request options. The JSON data is parsed in a strict manner; any malformed JSON is rejected and a parse error is thrown. As of jQuery 1.9, an empty response is also rejected; the server should return a response of null or {} instead. (See json.org for more information on proper JSON formatting.) + * + * "jsonp": Loads in a JSON block using JSONP. Adds an extra "?callback=?" to the end of your URL to specify the callback. Disables caching by appending a query string parameter, "_=[TIMESTAMP]", to the URL unless the cache option is set to true. + * + * "text": A plain text string. + * + * multiple, space-separated values: As of jQuery 1.5, jQuery can convert a dataType from what it received in the Content-Type header to what you require. For example, if you want a text response to be treated as XML, use "text xml" for the dataType. You can also make a JSONP request, have it received as text, and interpreted by jQuery as XML: "jsonp text xml". Similarly, a shorthand string such as "jsonp xml" will first attempt to convert from jsonp to xml, and, failing that, convert from jsonp to text, and then from text to xml. + */ + dataType?: "xml" | "html" | "script" | "json" | "jsonp" | "text" | string | undefined; + /** + * The MIME type of content that is used to submit the form to the server. Possible values are: + * + * "application/x-www-form-urlencoded": The initial default type. + * + * "multipart/form-data": The type that allows file element(s) to upload file data. + * + * "text/plain": A type introduced in HTML5. + */ + enctype?: "application/x-www-form-urlencoded" | "multipart/form-data" | "text/plain" | undefined; + /** + * A function to be called if the request fails. The function receives three arguments: The jqXHR (in jQuery 1.4.x, XMLHttpRequest) object, a string describing the type of error that occurred and an optional exception object, if one occurred. Possible values for the second argument (besides null) are "timeout", "error", "abort", and "parsererror". When an HTTP error occurs, errorThrown receives the textual portion of the HTTP status, such as "Not Found" or "Internal Server Error." As of jQuery 1.5, the error setting can accept an array of functions. Each function will be called in turn. Note: This handler is not called for cross-domain script and cross-domain JSONP requests. This is an Ajax Event. + */ + error?: TypeOrArray> | undefined; + /** + * Whether to trigger global Ajax event handlers for this request. The default is true. Set to false to prevent the global handlers like ajaxStart or ajaxStop from being triggered. This can be used to control various Ajax Events. + */ + global?: boolean | undefined; + /** + * An object of additional header key/value pairs to send along with requests using the XMLHttpRequest transport. The header X-Requested-With: XMLHttpRequest is always added, but its default XMLHttpRequest value can be changed here. Values in the headers setting can also be overwritten from within the beforeSend function. + */ + headers?: PlainObject | undefined; + /** + * Allow the request to be successful only if the response has changed since the last request. This is done by checking the Last-Modified header. Default value is false, ignoring the header. In jQuery 1.4 this technique also checks the 'etag' specified by the server to catch unmodified data. + */ + ifModified?: boolean | undefined; + /** + * Allow the current environment to be recognized as "local," (e.g. the filesystem), even if jQuery does not recognize it as such by default. The following protocols are currently recognized as local: file, *-extension, and widget. If the isLocal setting needs modification, it is recommended to do so once in the $.ajaxSetup() method. + */ + isLocal?: boolean | undefined; + /** + * Override the callback function name in a JSONP request. This value will be used instead of 'callback' in the 'callback=?' part of the query string in the url. So {jsonp:'onJSONPLoad'} would result in 'onJSONPLoad=?' passed to the server. As of jQuery 1.5, setting the jsonp option to false prevents jQuery from adding the "?callback" string to the URL or attempting to use "=?" for transformation. In this case, you should also explicitly set the jsonpCallback setting. For example, { jsonp: false, jsonpCallback: "callbackName" }. If you don't trust the target of your Ajax requests, consider setting the jsonp property to false for security reasons. + */ + jsonp?: string | false | undefined; + /** + * Specify the callback function name for a JSONP request. This value will be used instead of the random name automatically generated by jQuery. It is preferable to let jQuery generate a unique name as it'll make it easier to manage the requests and provide callbacks and error handling. You may want to specify the callback when you want to enable better browser caching of GET requests. As of jQuery 1.5, you can also use a function for this setting, in which case the value of jsonpCallback is set to the return value of that function. + */ + jsonpCallback?: string | ((this: TContext) => string) | undefined; + /** + * The HTTP method to use for the request (e.g. "POST", "GET", "PUT"). + */ + method?: string | undefined; + /** + * A mime type to override the XHR mime type. + */ + mimeType?: string | undefined; + /** + * A password to be used with XMLHttpRequest in response to an HTTP access authentication request. + */ + password?: string | undefined; + /** + * By default, data passed in to the data option as an object (technically, anything other than a string) will be processed and transformed into a query string, fitting to the default content-type "application/x-www-form-urlencoded". If you want to send a DOMDocument, or other non-processed data, set this option to false. + */ + processData?: boolean | undefined; + /** + * Only applies when the "script" transport is used (e.g., cross-domain requests with "jsonp" or "script" dataType and "GET" type). Sets the charset attribute on the script tag used in the request. Used when the character set on the local page is not the same as the one on the remote script. + */ + scriptCharset?: string | undefined; + /** + * An object of numeric HTTP codes and functions to be called when the response has the corresponding code. + * + * If the request is successful, the status code functions take the same parameters as the success callback; if it results in an error (including 3xx redirect), they take the same parameters as the error callback. + */ + statusCode?: StatusCodeCallbacks | undefined; + /** + * A function to be called if the request succeeds. The function gets passed three arguments: The data returned from the server, formatted according to the dataType parameter or the dataFilter callback function, if specified; a string describing the status; and the jqXHR (in jQuery 1.4.x, XMLHttpRequest) object. As of jQuery 1.5, the success setting can accept an array of functions. Each function will be called in turn. This is an Ajax Event. + */ + success?: TypeOrArray> | undefined; + /** + * Set a timeout (in milliseconds) for the request. A value of 0 means there will be no timeout. This will override any global timeout set with $.ajaxSetup(). The timeout period starts at the point the $.ajax call is made; if several other requests are in progress and the browser has no connections available, it is possible for a request to time out before it can be sent. In jQuery 1.4.x and below, the XMLHttpRequest object will be in an invalid state if the request times out; accessing any object members may throw an exception. In Firefox 3.0+ only, script and JSONP requests cannot be cancelled by a timeout; the script will run even if it arrives after the timeout period. + */ + timeout?: number | undefined; + /** + * Set this to true if you wish to use the traditional style of param serialization. + */ + traditional?: boolean | undefined; + /** + * An alias for method. You should use type if you're using versions of jQuery prior to 1.9.0. + */ + type?: string | undefined; + /** + * A username to be used with XMLHttpRequest in response to an HTTP access authentication request. + */ + username?: string | undefined; + // ActiveXObject requires "lib": ["scripthost"] which consumers would also require + /** + * Callback for creating the XMLHttpRequest object. Defaults to the ActiveXObject when available (IE), the XMLHttpRequest otherwise. Override to provide your own implementation for XMLHttpRequest or enhancements to the factory. + */ + xhr?(): XMLHttpRequest; + /** + * An object of fieldName-fieldValue pairs to set on the native XHR object. + * + * In jQuery 1.5, the withCredentials property was not propagated to the native XHR and thus CORS requests requiring it would ignore this flag. For this reason, we recommend using jQuery 1.5.1+ should you require the use of it. + */ + xhrFields?: XHRFields | undefined; + } + + // region StatusCodeCallbacks + // #region StatusCodeCallbacks + + type StatusCodeCallbacks = { + // region Success Status Codes + // #region Success Status Codes + + // jQuery treats 2xx and 304 status codes as a success + + 200?: SuccessCallback | undefined; + 201?: SuccessCallback | undefined; + 202?: SuccessCallback | undefined; + 203?: SuccessCallback | undefined; + 204?: SuccessCallback | undefined; + 205?: SuccessCallback | undefined; + 206?: SuccessCallback | undefined; + 207?: SuccessCallback | undefined; + 208?: SuccessCallback | undefined; + 209?: SuccessCallback | undefined; + 210?: SuccessCallback | undefined; + 211?: SuccessCallback | undefined; + 212?: SuccessCallback | undefined; + 213?: SuccessCallback | undefined; + 214?: SuccessCallback | undefined; + 215?: SuccessCallback | undefined; + 216?: SuccessCallback | undefined; + 217?: SuccessCallback | undefined; + 218?: SuccessCallback | undefined; + 219?: SuccessCallback | undefined; + 220?: SuccessCallback | undefined; + 221?: SuccessCallback | undefined; + 222?: SuccessCallback | undefined; + 223?: SuccessCallback | undefined; + 224?: SuccessCallback | undefined; + 225?: SuccessCallback | undefined; + 226?: SuccessCallback | undefined; + 227?: SuccessCallback | undefined; + 228?: SuccessCallback | undefined; + 229?: SuccessCallback | undefined; + 230?: SuccessCallback | undefined; + 231?: SuccessCallback | undefined; + 232?: SuccessCallback | undefined; + 233?: SuccessCallback | undefined; + 234?: SuccessCallback | undefined; + 235?: SuccessCallback | undefined; + 236?: SuccessCallback | undefined; + 237?: SuccessCallback | undefined; + 238?: SuccessCallback | undefined; + 239?: SuccessCallback | undefined; + 240?: SuccessCallback | undefined; + 241?: SuccessCallback | undefined; + 242?: SuccessCallback | undefined; + 243?: SuccessCallback | undefined; + 244?: SuccessCallback | undefined; + 245?: SuccessCallback | undefined; + 246?: SuccessCallback | undefined; + 247?: SuccessCallback | undefined; + 248?: SuccessCallback | undefined; + 249?: SuccessCallback | undefined; + 250?: SuccessCallback | undefined; + 251?: SuccessCallback | undefined; + 252?: SuccessCallback | undefined; + 253?: SuccessCallback | undefined; + 254?: SuccessCallback | undefined; + 255?: SuccessCallback | undefined; + 256?: SuccessCallback | undefined; + 257?: SuccessCallback | undefined; + 258?: SuccessCallback | undefined; + 259?: SuccessCallback | undefined; + 260?: SuccessCallback | undefined; + 261?: SuccessCallback | undefined; + 262?: SuccessCallback | undefined; + 263?: SuccessCallback | undefined; + 264?: SuccessCallback | undefined; + 265?: SuccessCallback | undefined; + 266?: SuccessCallback | undefined; + 267?: SuccessCallback | undefined; + 268?: SuccessCallback | undefined; + 269?: SuccessCallback | undefined; + 270?: SuccessCallback | undefined; + 271?: SuccessCallback | undefined; + 272?: SuccessCallback | undefined; + 273?: SuccessCallback | undefined; + 274?: SuccessCallback | undefined; + 275?: SuccessCallback | undefined; + 276?: SuccessCallback | undefined; + 277?: SuccessCallback | undefined; + 278?: SuccessCallback | undefined; + 279?: SuccessCallback | undefined; + 280?: SuccessCallback | undefined; + 281?: SuccessCallback | undefined; + 282?: SuccessCallback | undefined; + 283?: SuccessCallback | undefined; + 284?: SuccessCallback | undefined; + 285?: SuccessCallback | undefined; + 286?: SuccessCallback | undefined; + 287?: SuccessCallback | undefined; + 288?: SuccessCallback | undefined; + 289?: SuccessCallback | undefined; + 290?: SuccessCallback | undefined; + 291?: SuccessCallback | undefined; + 292?: SuccessCallback | undefined; + 293?: SuccessCallback | undefined; + 294?: SuccessCallback | undefined; + 295?: SuccessCallback | undefined; + 296?: SuccessCallback | undefined; + 297?: SuccessCallback | undefined; + 298?: SuccessCallback | undefined; + 299?: SuccessCallback | undefined; + 304?: SuccessCallback | undefined; + + // #endregion + + // region Error Status Codes + // #region Error Status Codes + + 300?: ErrorCallback | undefined; + 301?: ErrorCallback | undefined; + 302?: ErrorCallback | undefined; + 303?: ErrorCallback | undefined; + 305?: ErrorCallback | undefined; + 306?: ErrorCallback | undefined; + 307?: ErrorCallback | undefined; + 308?: ErrorCallback | undefined; + 309?: ErrorCallback | undefined; + 310?: ErrorCallback | undefined; + 311?: ErrorCallback | undefined; + 312?: ErrorCallback | undefined; + 313?: ErrorCallback | undefined; + 314?: ErrorCallback | undefined; + 315?: ErrorCallback | undefined; + 316?: ErrorCallback | undefined; + 317?: ErrorCallback | undefined; + 318?: ErrorCallback | undefined; + 319?: ErrorCallback | undefined; + 320?: ErrorCallback | undefined; + 321?: ErrorCallback | undefined; + 322?: ErrorCallback | undefined; + 323?: ErrorCallback | undefined; + 324?: ErrorCallback | undefined; + 325?: ErrorCallback | undefined; + 326?: ErrorCallback | undefined; + 327?: ErrorCallback | undefined; + 328?: ErrorCallback | undefined; + 329?: ErrorCallback | undefined; + 330?: ErrorCallback | undefined; + 331?: ErrorCallback | undefined; + 332?: ErrorCallback | undefined; + 333?: ErrorCallback | undefined; + 334?: ErrorCallback | undefined; + 335?: ErrorCallback | undefined; + 336?: ErrorCallback | undefined; + 337?: ErrorCallback | undefined; + 338?: ErrorCallback | undefined; + 339?: ErrorCallback | undefined; + 340?: ErrorCallback | undefined; + 341?: ErrorCallback | undefined; + 342?: ErrorCallback | undefined; + 343?: ErrorCallback | undefined; + 344?: ErrorCallback | undefined; + 345?: ErrorCallback | undefined; + 346?: ErrorCallback | undefined; + 347?: ErrorCallback | undefined; + 348?: ErrorCallback | undefined; + 349?: ErrorCallback | undefined; + 350?: ErrorCallback | undefined; + 351?: ErrorCallback | undefined; + 352?: ErrorCallback | undefined; + 353?: ErrorCallback | undefined; + 354?: ErrorCallback | undefined; + 355?: ErrorCallback | undefined; + 356?: ErrorCallback | undefined; + 357?: ErrorCallback | undefined; + 358?: ErrorCallback | undefined; + 359?: ErrorCallback | undefined; + 360?: ErrorCallback | undefined; + 361?: ErrorCallback | undefined; + 362?: ErrorCallback | undefined; + 363?: ErrorCallback | undefined; + 364?: ErrorCallback | undefined; + 365?: ErrorCallback | undefined; + 366?: ErrorCallback | undefined; + 367?: ErrorCallback | undefined; + 368?: ErrorCallback | undefined; + 369?: ErrorCallback | undefined; + 370?: ErrorCallback | undefined; + 371?: ErrorCallback | undefined; + 372?: ErrorCallback | undefined; + 373?: ErrorCallback | undefined; + 374?: ErrorCallback | undefined; + 375?: ErrorCallback | undefined; + 376?: ErrorCallback | undefined; + 377?: ErrorCallback | undefined; + 378?: ErrorCallback | undefined; + 379?: ErrorCallback | undefined; + 380?: ErrorCallback | undefined; + 381?: ErrorCallback | undefined; + 382?: ErrorCallback | undefined; + 383?: ErrorCallback | undefined; + 384?: ErrorCallback | undefined; + 385?: ErrorCallback | undefined; + 386?: ErrorCallback | undefined; + 387?: ErrorCallback | undefined; + 388?: ErrorCallback | undefined; + 389?: ErrorCallback | undefined; + 390?: ErrorCallback | undefined; + 391?: ErrorCallback | undefined; + 392?: ErrorCallback | undefined; + 393?: ErrorCallback | undefined; + 394?: ErrorCallback | undefined; + 395?: ErrorCallback | undefined; + 396?: ErrorCallback | undefined; + 397?: ErrorCallback | undefined; + 398?: ErrorCallback | undefined; + 399?: ErrorCallback | undefined; + 400?: ErrorCallback | undefined; + 401?: ErrorCallback | undefined; + 402?: ErrorCallback | undefined; + 403?: ErrorCallback | undefined; + 404?: ErrorCallback | undefined; + 405?: ErrorCallback | undefined; + 406?: ErrorCallback | undefined; + 407?: ErrorCallback | undefined; + 408?: ErrorCallback | undefined; + 409?: ErrorCallback | undefined; + 410?: ErrorCallback | undefined; + 411?: ErrorCallback | undefined; + 412?: ErrorCallback | undefined; + 413?: ErrorCallback | undefined; + 414?: ErrorCallback | undefined; + 415?: ErrorCallback | undefined; + 416?: ErrorCallback | undefined; + 417?: ErrorCallback | undefined; + 418?: ErrorCallback | undefined; + 419?: ErrorCallback | undefined; + 420?: ErrorCallback | undefined; + 421?: ErrorCallback | undefined; + 422?: ErrorCallback | undefined; + 423?: ErrorCallback | undefined; + 424?: ErrorCallback | undefined; + 425?: ErrorCallback | undefined; + 426?: ErrorCallback | undefined; + 427?: ErrorCallback | undefined; + 428?: ErrorCallback | undefined; + 429?: ErrorCallback | undefined; + 430?: ErrorCallback | undefined; + 431?: ErrorCallback | undefined; + 432?: ErrorCallback | undefined; + 433?: ErrorCallback | undefined; + 434?: ErrorCallback | undefined; + 435?: ErrorCallback | undefined; + 436?: ErrorCallback | undefined; + 437?: ErrorCallback | undefined; + 438?: ErrorCallback | undefined; + 439?: ErrorCallback | undefined; + 440?: ErrorCallback | undefined; + 441?: ErrorCallback | undefined; + 442?: ErrorCallback | undefined; + 443?: ErrorCallback | undefined; + 444?: ErrorCallback | undefined; + 445?: ErrorCallback | undefined; + 446?: ErrorCallback | undefined; + 447?: ErrorCallback | undefined; + 448?: ErrorCallback | undefined; + 449?: ErrorCallback | undefined; + 450?: ErrorCallback | undefined; + 451?: ErrorCallback | undefined; + 452?: ErrorCallback | undefined; + 453?: ErrorCallback | undefined; + 454?: ErrorCallback | undefined; + 455?: ErrorCallback | undefined; + 456?: ErrorCallback | undefined; + 457?: ErrorCallback | undefined; + 458?: ErrorCallback | undefined; + 459?: ErrorCallback | undefined; + 460?: ErrorCallback | undefined; + 461?: ErrorCallback | undefined; + 462?: ErrorCallback | undefined; + 463?: ErrorCallback | undefined; + 464?: ErrorCallback | undefined; + 465?: ErrorCallback | undefined; + 466?: ErrorCallback | undefined; + 467?: ErrorCallback | undefined; + 468?: ErrorCallback | undefined; + 469?: ErrorCallback | undefined; + 470?: ErrorCallback | undefined; + 471?: ErrorCallback | undefined; + 472?: ErrorCallback | undefined; + 473?: ErrorCallback | undefined; + 474?: ErrorCallback | undefined; + 475?: ErrorCallback | undefined; + 476?: ErrorCallback | undefined; + 477?: ErrorCallback | undefined; + 478?: ErrorCallback | undefined; + 479?: ErrorCallback | undefined; + 480?: ErrorCallback | undefined; + 481?: ErrorCallback | undefined; + 482?: ErrorCallback | undefined; + 483?: ErrorCallback | undefined; + 484?: ErrorCallback | undefined; + 485?: ErrorCallback | undefined; + 486?: ErrorCallback | undefined; + 487?: ErrorCallback | undefined; + 488?: ErrorCallback | undefined; + 489?: ErrorCallback | undefined; + 490?: ErrorCallback | undefined; + 491?: ErrorCallback | undefined; + 492?: ErrorCallback | undefined; + 493?: ErrorCallback | undefined; + 494?: ErrorCallback | undefined; + 495?: ErrorCallback | undefined; + 496?: ErrorCallback | undefined; + 497?: ErrorCallback | undefined; + 498?: ErrorCallback | undefined; + 499?: ErrorCallback | undefined; + 500?: ErrorCallback | undefined; + 501?: ErrorCallback | undefined; + 502?: ErrorCallback | undefined; + 503?: ErrorCallback | undefined; + 504?: ErrorCallback | undefined; + 505?: ErrorCallback | undefined; + 506?: ErrorCallback | undefined; + 507?: ErrorCallback | undefined; + 508?: ErrorCallback | undefined; + 509?: ErrorCallback | undefined; + 510?: ErrorCallback | undefined; + 511?: ErrorCallback | undefined; + 512?: ErrorCallback | undefined; + 513?: ErrorCallback | undefined; + 514?: ErrorCallback | undefined; + 515?: ErrorCallback | undefined; + 516?: ErrorCallback | undefined; + 517?: ErrorCallback | undefined; + 518?: ErrorCallback | undefined; + 519?: ErrorCallback | undefined; + 520?: ErrorCallback | undefined; + 521?: ErrorCallback | undefined; + 522?: ErrorCallback | undefined; + 523?: ErrorCallback | undefined; + 524?: ErrorCallback | undefined; + 525?: ErrorCallback | undefined; + 526?: ErrorCallback | undefined; + 527?: ErrorCallback | undefined; + 528?: ErrorCallback | undefined; + 529?: ErrorCallback | undefined; + 530?: ErrorCallback | undefined; + 531?: ErrorCallback | undefined; + 532?: ErrorCallback | undefined; + 533?: ErrorCallback | undefined; + 534?: ErrorCallback | undefined; + 535?: ErrorCallback | undefined; + 536?: ErrorCallback | undefined; + 537?: ErrorCallback | undefined; + 538?: ErrorCallback | undefined; + 539?: ErrorCallback | undefined; + 540?: ErrorCallback | undefined; + 541?: ErrorCallback | undefined; + 542?: ErrorCallback | undefined; + 543?: ErrorCallback | undefined; + 544?: ErrorCallback | undefined; + 545?: ErrorCallback | undefined; + 546?: ErrorCallback | undefined; + 547?: ErrorCallback | undefined; + 548?: ErrorCallback | undefined; + 549?: ErrorCallback | undefined; + 550?: ErrorCallback | undefined; + 551?: ErrorCallback | undefined; + 552?: ErrorCallback | undefined; + 553?: ErrorCallback | undefined; + 554?: ErrorCallback | undefined; + 555?: ErrorCallback | undefined; + 556?: ErrorCallback | undefined; + 557?: ErrorCallback | undefined; + 558?: ErrorCallback | undefined; + 559?: ErrorCallback | undefined; + 560?: ErrorCallback | undefined; + 561?: ErrorCallback | undefined; + 562?: ErrorCallback | undefined; + 563?: ErrorCallback | undefined; + 564?: ErrorCallback | undefined; + 565?: ErrorCallback | undefined; + 566?: ErrorCallback | undefined; + 567?: ErrorCallback | undefined; + 568?: ErrorCallback | undefined; + 569?: ErrorCallback | undefined; + 570?: ErrorCallback | undefined; + 571?: ErrorCallback | undefined; + 572?: ErrorCallback | undefined; + 573?: ErrorCallback | undefined; + 574?: ErrorCallback | undefined; + 575?: ErrorCallback | undefined; + 576?: ErrorCallback | undefined; + 577?: ErrorCallback | undefined; + 578?: ErrorCallback | undefined; + 579?: ErrorCallback | undefined; + 580?: ErrorCallback | undefined; + 581?: ErrorCallback | undefined; + 582?: ErrorCallback | undefined; + 583?: ErrorCallback | undefined; + 584?: ErrorCallback | undefined; + 585?: ErrorCallback | undefined; + 586?: ErrorCallback | undefined; + 587?: ErrorCallback | undefined; + 588?: ErrorCallback | undefined; + 589?: ErrorCallback | undefined; + 590?: ErrorCallback | undefined; + 591?: ErrorCallback | undefined; + 592?: ErrorCallback | undefined; + 593?: ErrorCallback | undefined; + 594?: ErrorCallback | undefined; + 595?: ErrorCallback | undefined; + 596?: ErrorCallback | undefined; + 597?: ErrorCallback | undefined; + 598?: ErrorCallback | undefined; + 599?: ErrorCallback | undefined; + // #endregion + } & { + // Status codes not listed require type annotations when defining the callback + [index: number]: SuccessCallback | ErrorCallback; + }; + + // #endregion + + // Writable properties on XMLHttpRequest + interface XHRFields + extends Partial> + { + msCaching?: string | undefined; + } + } + + interface Transport { + send(headers: PlainObject, completeCallback: Transport.SuccessCallback): void; + abort(): void; + } + + namespace Transport { + type SuccessCallback = ( + status: number, + statusText: Ajax.TextStatus, + responses?: PlainObject, + headers?: string, + ) => void; + } + + /** + * @see \`{@link https://api.jquery.com/jquery.ajax/#jqXHR }\` + */ + interface jqXHR extends + Promise3< + TResolve, + jqXHR, + never, + Ajax.SuccessTextStatus, + Ajax.ErrorTextStatus, + never, + jqXHR, + string, + never + >, + Pick< + XMLHttpRequest, + | "abort" + | "getAllResponseHeaders" + | "getResponseHeader" + | "overrideMimeType" + | "readyState" + | "responseText" + | "setRequestHeader" + | "status" + | "statusText" + >, + Partial> + { + responseJSON?: any; + abort(statusText?: string): void; + + /** + * Determine the current state of a Deferred object. + * @see \`{@link https://api.jquery.com/deferred.state/ }\` + * @since 1.7 + */ + state(): "pending" | "resolved" | "rejected"; + statusCode(map: Ajax.StatusCodeCallbacks): void; + } + + namespace jqXHR { + interface DoneCallback> + extends Deferred.Callback3 + {} + + interface FailCallback extends Deferred.Callback3 {} + + interface AlwaysCallback> + extends Deferred.Callback3 + {} + } + + // #endregion + + // region Callbacks + // #region Callbacks + + interface CallbacksStatic { + /** + * A multi-purpose callbacks list object that provides a powerful way to manage callback lists. + * @param flags An optional list of space-separated flags that change how the callback list behaves. + * @see \`{@link https://api.jquery.com/jQuery.Callbacks/ }\` + * @since 1.7 + */ + /* eslint-disable @definitelytyped/no-unnecessary-generics */ + // eslint-disable-next-line @typescript-eslint/ban-types + (flags?: string): Callbacks; + /* eslint-enable @definitelytyped/no-unnecessary-generics */ + } + + // eslint-disable-next-line @typescript-eslint/ban-types + interface Callbacks { + /** + * Add a callback or a collection of callbacks to a callback list. + * @param callback A function, or array of functions, that are to be added to the callback list. + * @param callbacks A function, or array of functions, that are to be added to the callback list. + * @see \`{@link https://api.jquery.com/callbacks.add/ }\` + * @since 1.7 + * @example ​ ````Use callbacks.add() to add new callbacks to a callback list: +```javascript +// A sample logging function to be added to a callbacks list +var foo = function( value ) { + console.log( "foo: " + value ); +}; +​ +// Another function to also be added to the list +var bar = function( value ) { + console.log( "bar: " + value ); +}; +​ +var callbacks = $.Callbacks(); +​ +// Add the function "foo" to the list +callbacks.add( foo ); +​ +// Fire the items on the list +callbacks.fire( "hello" ); +// Outputs: "foo: hello" +​ +// Add the function "bar" to the list +callbacks.add( bar ); +​ +// Fire the items on the list again +callbacks.fire( "world" ); +​ +// Outputs: +// "foo: world" +// "bar: world" +``` + */ + add(callback: TypeOrArray, ...callbacks: Array>): this; + /** + * Disable a callback list from doing anything more. + * @see \`{@link https://api.jquery.com/callbacks.disable/ }\` + * @since 1.7 + * @example ​ ````Use callbacks.disable() to disable further calls to a callback list: +```javascript +// A sample logging function to be added to a callbacks list +var foo = function( value ) { + console.log( value ); +}; +​ +var callbacks = $.Callbacks(); +​ +// Add the above function to the list +callbacks.add( foo ); +​ +// Fire the items on the list +callbacks.fire( "foo" ); +// Outputs: foo +​ +// Disable further calls being possible +callbacks.disable(); +​ +// Attempt to fire with "foobar" as an argument +callbacks.fire( "foobar" ); +// foobar isn't output +``` + */ + disable(): this; + /** + * Determine if the callbacks list has been disabled. + * @see \`{@link https://api.jquery.com/callbacks.disabled/ }\` + * @since 1.7 + * @example ​ ````Use callbacks.disabled() to determine if the callbacks list has been disabled: +```javascript +// A sample logging function to be added to a callbacks list +var foo = function( value ) { + console.log( "foo:" + value ); +}; +​ +var callbacks = $.Callbacks(); +​ +// Add the logging function to the callback list +callbacks.add( foo ); +​ +// Fire the items on the list, passing an argument +callbacks.fire( "hello" ); +// Outputs "foo: hello" +​ +// Disable the callbacks list +callbacks.disable(); +​ +// Test the disabled state of the list +console.log ( callbacks.disabled() ); +// Outputs: true +``` + */ + disabled(): boolean; + /** + * Remove all of the callbacks from a list. + * @see \`{@link https://api.jquery.com/callbacks.empty/ }\` + * @since 1.7 + * @example ​ ````Use callbacks.empty() to empty a list of callbacks: +```javascript +// A sample logging function to be added to a callbacks list +var foo = function( value1, value2 ) { + console.log( "foo: " + value1 + "," + value2 ); +}; +​ +// Another function to also be added to the list +var bar = function( value1, value2 ) { + console.log( "bar: " + value1 + "," + value2 ); +}; +​ +var callbacks = $.Callbacks(); +​ +// Add the two functions +callbacks.add( foo ); +callbacks.add( bar ); +​ +// Empty the callbacks list +callbacks.empty(); +​ +// Check to ensure all callbacks have been removed +console.log( callbacks.has( foo ) ); +// false +console.log( callbacks.has( bar ) ); +// false +``` + */ + empty(): this; + /** + * Call all of the callbacks with the given arguments. + * @param args The argument or list of arguments to pass back to the callback list. + * @see \`{@link https://api.jquery.com/callbacks.fire/ }\` + * @since 1.7 + * @example ​ ````Use callbacks.fire() to invoke the callbacks in a list with any arguments that have been passed: +```javascript +// A sample logging function to be added to a callbacks list +var foo = function( value ) { + console.log( "foo:" + value ); +}; +​ +var callbacks = $.Callbacks(); +​ +// Add the function "foo" to the list +callbacks.add( foo ); +​ +// Fire the items on the list +callbacks.fire( "hello" ); // Outputs: "foo: hello" +callbacks.fire( "world" ); // Outputs: "foo: world" +​ +// Add another function to the list +var bar = function( value ){ + console.log( "bar:" + value ); +}; +​ +// Add this function to the list +callbacks.add( bar ); +​ +// Fire the items on the list again +callbacks.fire( "hello again" ); +// Outputs: +// "foo: hello again" +// "bar: hello again" +``` + */ + fire(...args: any[]): this; + /** + * Determine if the callbacks have already been called at least once. + * @see \`{@link https://api.jquery.com/callbacks.fired/ }\` + * @since 1.7 + * @example ​ ````Use callbacks.fired() to determine if the callbacks in a list have been called at least once: +```javascript +// A sample logging function to be added to a callbacks list +var foo = function( value ) { + console.log( "foo:" + value ); +}; +​ +var callbacks = $.Callbacks(); +​ +// Add the function "foo" to the list +callbacks.add( foo ); +​ +// Fire the items on the list +callbacks.fire( "hello" ); // Outputs: "foo: hello" +callbacks.fire( "world" ); // Outputs: "foo: world" +​ +// Test to establish if the callbacks have been called +console.log( callbacks.fired() ); +``` + */ + fired(): boolean; + /** + * Call all callbacks in a list with the given context and arguments. + * @param context A reference to the context in which the callbacks in the list should be fired. + * @param args An argument, or array of arguments, to pass to the callbacks in the list. + * @see \`{@link https://api.jquery.com/callbacks.fireWith/ }\` + * @since 1.7 + * @example ​ ````Use callbacks.fireWith() to fire a list of callbacks with a specific context and an array of arguments: +```javascript +// A sample logging function to be added to a callbacks list +var log = function( value1, value2 ) { + console.log( "Received: " + value1 + "," + value2 ); +}; +​ +var callbacks = $.Callbacks(); +​ +// Add the log method to the callbacks list +callbacks.add( log ); +​ +// Fire the callbacks on the list using the context "window" +// and an arguments array +​ +callbacks.fireWith( window, [ "foo","bar" ] ); +// Outputs: "Received: foo, bar" +``` + */ + fireWith(context: object, args?: ArrayLike): this; + /** + * Determine whether or not the list has any callbacks attached. If a callback is provided as an argument, determine whether it is in a list. + * @param callback The callback to search for. + * @see \`{@link https://api.jquery.com/callbacks.has/ }\` + * @since 1.7 + * @example ​ ````Use callbacks.has() to check if a callback list contains a specific callback: +```javascript +// A sample logging function to be added to a callbacks list +var foo = function( value1, value2 ) { + console.log( "Received: " + value1 + "," + value2 ); +}; +​ +// A second function which will not be added to the list +var bar = function( value1, value2 ) { + console.log( "foobar" ); +}; +​ +var callbacks = $.Callbacks(); +​ +// Add the log method to the callbacks list +callbacks.add( foo ); +​ +// Determine which callbacks are in the list +console.log( callbacks.has( foo ) ); +// true +console.log( callbacks.has( bar ) ); +// false +``` + */ + has(callback?: T): boolean; + /** + * Lock a callback list in its current state. + * @see \`{@link https://api.jquery.com/callbacks.lock/ }\` + * @since 1.7 + * @example ​ ````Use callbacks.lock() to lock a callback list to avoid further changes being made to the list state: +```javascript +// A sample logging function to be added to a callbacks list +var foo = function( value ) { + console.log( "foo:" + value ); +}; +​ +var callbacks = $.Callbacks(); +​ +// Add the logging function to the callback list +callbacks.add( foo ); +​ +// Fire the items on the list, passing an argument +callbacks.fire( "hello" ); +// Outputs "foo: hello" +​ +// Lock the callbacks list +callbacks.lock(); +​ +// Try firing the items again +callbacks.fire( "world" ); +​ +// As the list was locked, no items were called, +// so "world" isn't logged +``` + * @example ​ ````Use callbacks.lock() to lock a callback list with "memory," and then resume using the list: +```html + + + + + callbacks.lock demo + + + +​ +
      +​ + +​ + + +``` + */ + lock(): this; + /** + * Determine if the callbacks list has been locked. + * @see \`{@link https://api.jquery.com/callbacks.locked/ }\` + * @since 1.7 + * @example ​ ````Use callbacks.locked() to determine the lock-state of a callback list: +```javascript +// A sample logging function to be added to a callbacks list +var foo = function( value ) { + console.log( "foo: " + value ); +}; +​ +var callbacks = $.Callbacks(); +​ +// Add the logging function to the callback list +callbacks.add( foo ); +​ +// Fire the items on the list, passing an argument +callbacks.fire( "hello" ); +// Outputs "foo: hello" +​ +// Lock the callbacks list +callbacks.lock(); +​ +// Test the lock-state of the list +console.log ( callbacks.locked() ); +// true +``` + */ + locked(): boolean; + /** + * Remove a callback or a collection of callbacks from a callback list. + * @param callbacks A function, or array of functions, that are to be removed from the callback list. + * @see \`{@link https://api.jquery.com/callbacks.remove/ }\` + * @since 1.7 + * @example ​ ````Use callbacks.remove() to remove callbacks from a callback list: +```javascript +// A sample logging function to be added to a callbacks list +var foo = function( value ) { + console.log( "foo: " + value ); +}; +​ +var callbacks = $.Callbacks(); +​ +// Add the function "foo" to the list +callbacks.add( foo ); +​ +// Fire the items on the list +callbacks.fire( "hello" ); +// Outputs: "foo: hello" +​ +// Remove "foo" from the callback list +callbacks.remove( foo ); +​ +// Fire the items on the list again +callbacks.fire( "world" ); +​ +// Nothing output as "foo" is no longer in the list +``` + */ + remove(...callbacks: T[]): this; + } + + // #endregion + + // region CSS hooks + // #region CSS hooks + + // Workaround for TypeScript 2.3 which does not have support for weak types handling. + type CSSHook = + & Partial<_CSSHook> + & ( + | Pick<_CSSHook, "get"> + | Pick<_CSSHook, "set"> + ); + + interface _CSSHook { + get(elem: TElement, computed: any, extra: any): any; + set(elem: TElement, value: any): void; + } + + interface CSSHooks { + // Set to HTMLElement to minimize breaks but should probably be Element. + [propertyName: string]: CSSHook; + } + + // #endregion + + // region Deferred + // #region Deferred + + /** + * Any object that has a then method. + */ + interface Thenable extends PromiseLike {} + + // Type parameter guide + // -------------------- + // Each type parameter represents a parameter in one of the three possible callbacks. + // + // The first letter indicates which position the parameter is in. + // + // T = A = 1st position + // U = B = 2nd position + // V = C = 3rd position + // S = R = rest position + // + // The second letter indicates which whether it is a [R]esolve, Re[J]ect, or [N]otify value. + // + // The third letter indicates whether the value is returned in the [D]one filter, [F]ail filter, or [P]rogress filter. + + /** + * This object provides a subset of the methods of the Deferred object (then, done, fail, always, pipe, progress, state and promise) to prevent users from changing the state of the Deferred. + * @see \`{@link https://api.jquery.com/Types/#Promise }\` + */ + interface PromiseBase { + /** + * Add handlers to be called when the Deferred object is either resolved or rejected. + * @param alwaysCallback A function, or array of functions, that is called when the Deferred is resolved or rejected. + * @param alwaysCallbacks Optional additional functions, or arrays of functions, that are called when the Deferred is resolved or rejected. + * @see \`{@link https://api.jquery.com/deferred.always/ }\` + * @since 1.6 + * @example ​ ````Since the jQuery.get() method returns a jqXHR object, which is derived from a Deferred object, we can attach a callback for both success and error using the deferred.always() method. +```javascript +$.get( "test.php" ).always(function() { + alert( "$.get completed with success or error callback arguments" ); +}); +``` + */ + always( + alwaysCallback: TypeOrArray>, + ...alwaysCallbacks: Array>> + ): this; + /** + * Add handlers to be called when the Deferred object is resolved. + * @param doneCallback A function, or array of functions, that are called when the Deferred is resolved. + * @param doneCallbacks Optional additional functions, or arrays of functions, that are called when the Deferred is resolved. + * @see \`{@link https://api.jquery.com/deferred.done/ }\` + * @since 1.5 + * @example ​ ````Since the jQuery.get method returns a jqXHR object, which is derived from a Deferred object, we can attach a success callback using the .done() method. +```javascript +$.get( "test.php" ).done(function() { + alert( "$.get succeeded" ); +}); +``` + * @example ​ ````Resolve a Deferred object when the user clicks a button, triggering a number of callback functions: +```html + + + + + deferred.done demo + + + +​ + +

      Ready...

      +​ + +​ + + +``` + */ + done( + doneCallback: TypeOrArray>, + ...doneCallbacks: Array>> + ): this; + /** + * Add handlers to be called when the Deferred object is rejected. + * @param failCallback A function, or array of functions, that are called when the Deferred is rejected. + * @param failCallbacks Optional additional functions, or arrays of functions, that are called when the Deferred is rejected. + * @see \`{@link https://api.jquery.com/deferred.fail/ }\` + * @since 1.5 + * @example ​ ````Since the jQuery.get method returns a jqXHR object, which is derived from a Deferred, you can attach a success and failure callback using the deferred.done() and deferred.fail() methods. +```javascript +$.get( "test.php" ) + .done(function() { + alert( "$.get succeeded" ); + }) + .fail(function() { + alert( "$.get failed!" ); + }); +``` + */ + fail( + failCallback: TypeOrArray>, + ...failCallbacks: Array>> + ): this; + /** + * Add handlers to be called when the Deferred object generates progress notifications. + * @param progressCallback A function, or array of functions, to be called when the Deferred generates progress notifications. + * @param progressCallbacks Optional additional functions, or arrays of functions, to be called when the Deferred generates + * progress notifications. + * @see \`{@link https://api.jquery.com/deferred.progress/ }\` + * @since 1.7 + */ + progress( + progressCallback: TypeOrArray>, + ...progressCallbacks: Array>> + ): this; + /** + * Return a Deferred's Promise object. + * @param target Object onto which the promise methods have to be attached + * @see \`{@link https://api.jquery.com/deferred.promise/ }\` + * @since 1.5 + * @example ​ ````Create a Deferred and set two timer-based functions to either resolve or reject the Deferred after a random interval. Whichever one fires first "wins" and will call one of the callbacks. The second timeout has no effect since the Deferred is already complete (in a resolved or rejected state) from the first timeout action. Also set a timer-based progress notification function, and call a progress handler that adds "working..." to the document body. +```javascript +function asyncEvent() { + var dfd = jQuery.Deferred(); +​ + // Resolve after a random interval + setTimeout(function() { + dfd.resolve( "hurray" ); + }, Math.floor( 400 + Math.random() * 2000 ) ); +​ + // Reject after a random interval + setTimeout(function() { + dfd.reject( "sorry" ); + }, Math.floor( 400 + Math.random() * 2000 ) ); +​ + // Show a "working..." message every half-second + setTimeout(function working() { + if ( dfd.state() === "pending" ) { + dfd.notify( "working... " ); + setTimeout( working, 500 ); + } + }, 1 ); +​ + // Return the Promise so caller can't change the Deferred + return dfd.promise(); +} +​ +// Attach a done, fail, and progress handler for the asyncEvent +$.when( asyncEvent() ).then( + function( status ) { + alert( status + ", things are going well" ); + }, + function( status ) { + alert( status + ", you fail this time" ); + }, + function( status ) { + $( "body" ).append( status ); + } +); +``` + */ + promise(target: TTarget): this & TTarget; + /** + * Return a Deferred's Promise object. + * @see \`{@link https://api.jquery.com/deferred.promise/ }\` + * @since 1.5 + * @example ​ ````Use the target argument to promote an existing object to a Promise: +```javascript +// Existing object +var obj = { + hello: function( name ) { + alert( "Hello " + name ); + } + }, + // Create a Deferred + defer = $.Deferred(); +​ +// Set object as a promise +defer.promise( obj ); +​ +// Resolve the deferred +defer.resolve( "John" ); +​ +// Use the object as a Promise +obj.done(function( name ) { + obj.hello( name ); // Will alert "Hello John" +}).hello( "Karl" ); // Will alert "Hello Karl" +``` + */ + promise(): this; + /** + * Determine the current state of a Deferred object. + * @see \`{@link https://api.jquery.com/deferred.state/ }\` + * @since 1.7 + */ + state(): "pending" | "resolved" | "rejected"; + + // region pipe + // #region pipe + + /** + * Utility method to filter and/or chain Deferreds. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.pipe/ }\` + * @since 1.6 + * @since 1.7 + * @deprecated ​ Deprecated since 1.8. Use \`{@link then }\`. + * + * **Cause**: The `.pipe()` method on a `jQuery.Deferred` object was deprecated as of jQuery 1.8, when the `.then()` method was changed to perform the same function. + * + * **Solution**: In most cases it is sufficient to change all occurrences of `.pipe()` to `.then()`. Ensure that you aren't relying on context/state propagation (e.g., using `this`) or synchronous callback invocation, which were dropped from `.then()` for Promises/A+ interoperability as of jQuery 3.0. + * @example ​ ````Filter resolve value: +```javascript +var defer = $.Deferred(), + filtered = defer.pipe(function( value ) { + return value * 2; + }); +​ +defer.resolve( 5 ); +filtered.done(function( value ) { + alert( "Value is ( 2*5 = ) 10: " + value ); +}); +``` + * @example ​ ````Filter reject value: +```javascript +var defer = $.Deferred(), + filtered = defer.pipe( null, function( value ) { + return value * 3; + }); +​ +defer.reject( 6 ); +filtered.fail(function( value ) { + alert( "Value is ( 3*6 = ) 18: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.pipe(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + pipe< + ARD = never, + AJD = never, + AND = never, + BRD = never, + BJD = never, + BND = never, + CRD = never, + CJD = never, + CND = never, + RRD = never, + RJD = never, + RND = never, + ARF = never, + AJF = never, + ANF = never, + BRF = never, + BJF = never, + BNF = never, + CRF = never, + CJF = never, + CNF = never, + RRF = never, + RJF = never, + RNF = never, + ARP = never, + AJP = never, + ANP = never, + BRP = never, + BJP = never, + BNP = never, + CRP = never, + CJP = never, + CNP = never, + RRP = never, + RJP = never, + RNP = never, + >( + doneFilter: ( + t: TR, + u: UR, + v: VR, + ...s: SR[] + ) => PromiseBase | Thenable | ARD, + failFilter: ( + t: TJ, + u: UJ, + v: VJ, + ...s: SJ[] + ) => PromiseBase | Thenable | AJF, + progressFilter: ( + t: TN, + u: UN, + v: VN, + ...s: SN[] + ) => PromiseBase | Thenable | ANP, + ): PromiseBase< + ARD | ARF | ARP, + AJD | AJF | AJP, + AND | ANF | ANP, + BRD | BRF | BRP, + BJD | BJF | BJP, + BND | BNF | BNP, + CRD | CRF | CRP, + CJD | CJF | CJP, + CND | CNF | CNP, + RRD | RRF | RRP, + RJD | RJF | RJP, + RND | RNF | RNP + >; + /** + * Utility method to filter and/or chain Deferreds. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.pipe/ }\` + * @since 1.6 + * @since 1.7 + * @deprecated ​ Deprecated since 1.8. Use \`{@link then }\`. + * + * **Cause**: The `.pipe()` method on a `jQuery.Deferred` object was deprecated as of jQuery 1.8, when the `.then()` method was changed to perform the same function. + * + * **Solution**: In most cases it is sufficient to change all occurrences of `.pipe()` to `.then()`. Ensure that you aren't relying on context/state propagation (e.g., using `this`) or synchronous callback invocation, which were dropped from `.then()` for Promises/A+ interoperability as of jQuery 3.0. + * @example ​ ````Filter reject value: +```javascript +var defer = $.Deferred(), + filtered = defer.pipe( null, function( value ) { + return value * 3; + }); +​ +defer.reject( 6 ); +filtered.fail(function( value ) { + alert( "Value is ( 3*6 = ) 18: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.pipe(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + pipe< + ARF = never, + AJF = never, + ANF = never, + BRF = never, + BJF = never, + BNF = never, + CRF = never, + CJF = never, + CNF = never, + RRF = never, + RJF = never, + RNF = never, + ARP = never, + AJP = never, + ANP = never, + BRP = never, + BJP = never, + BNP = never, + CRP = never, + CJP = never, + CNP = never, + RRP = never, + RJP = never, + RNP = never, + >( + doneFilter: null, + failFilter: ( + t: TJ, + u: UJ, + v: VJ, + ...s: SJ[] + ) => PromiseBase | Thenable | AJF, + progressFilter: ( + t: TN, + u: UN, + v: VN, + ...s: SN[] + ) => PromiseBase | Thenable | ANP, + ): PromiseBase< + ARF | ARP, + AJF | AJP, + ANF | ANP, + BRF | BRP, + BJF | BJP, + BNF | BNP, + CRF | CRP, + CJF | CJP, + CNF | CNP, + RRF | RRP, + RJF | RJP, + RNF | RNP + >; + /** + * Utility method to filter and/or chain Deferreds. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.pipe/ }\` + * @since 1.6 + * @since 1.7 + * @deprecated ​ Deprecated since 1.8. Use \`{@link then }\`. + * + * **Cause**: The `.pipe()` method on a `jQuery.Deferred` object was deprecated as of jQuery 1.8, when the `.then()` method was changed to perform the same function. + * + * **Solution**: In most cases it is sufficient to change all occurrences of `.pipe()` to `.then()`. Ensure that you aren't relying on context/state propagation (e.g., using `this`) or synchronous callback invocation, which were dropped from `.then()` for Promises/A+ interoperability as of jQuery 3.0. + * @example ​ ````Filter resolve value: +```javascript +var defer = $.Deferred(), + filtered = defer.pipe(function( value ) { + return value * 2; + }); +​ +defer.resolve( 5 ); +filtered.done(function( value ) { + alert( "Value is ( 2*5 = ) 10: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.pipe(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + pipe< + ARD = never, + AJD = never, + AND = never, + BRD = never, + BJD = never, + BND = never, + CRD = never, + CJD = never, + CND = never, + RRD = never, + RJD = never, + RND = never, + ARP = never, + AJP = never, + ANP = never, + BRP = never, + BJP = never, + BNP = never, + CRP = never, + CJP = never, + CNP = never, + RRP = never, + RJP = never, + RNP = never, + >( + doneFilter: ( + t: TR, + u: UR, + v: VR, + ...s: SR[] + ) => PromiseBase | Thenable | ARD, + failFilter: null, + progressFilter: ( + t: TN, + u: UN, + v: VN, + ...s: SN[] + ) => PromiseBase | Thenable | ANP, + ): PromiseBase< + ARD | ARP, + AJD | AJP, + AND | ANP, + BRD | BRP, + BJD | BJP, + BND | BNP, + CRD | CRP, + CJD | CJP, + CND | CNP, + RRD | RRP, + RJD | RJP, + RND | RNP + >; + /** + * Utility method to filter and/or chain Deferreds. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.pipe/ }\` + * @since 1.6 + * @since 1.7 + * @deprecated ​ Deprecated since 1.8. Use \`{@link then }\`. + * + * **Cause**: The `.pipe()` method on a `jQuery.Deferred` object was deprecated as of jQuery 1.8, when the `.then()` method was changed to perform the same function. + * + * **Solution**: In most cases it is sufficient to change all occurrences of `.pipe()` to `.then()`. Ensure that you aren't relying on context/state propagation (e.g., using `this`) or synchronous callback invocation, which were dropped from `.then()` for Promises/A+ interoperability as of jQuery 3.0. + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.pipe(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + pipe< + ARP = never, + AJP = never, + ANP = never, + BRP = never, + BJP = never, + BNP = never, + CRP = never, + CJP = never, + CNP = never, + RRP = never, + RJP = never, + RNP = never, + >( + doneFilter: null, + failFilter: null, + progressFilter?: ( + t: TN, + u: UN, + v: VN, + ...s: SN[] + ) => PromiseBase | Thenable | ANP, + ): PromiseBase; + /** + * Utility method to filter and/or chain Deferreds. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.pipe/ }\` + * @since 1.6 + * @since 1.7 + * @deprecated ​ Deprecated since 1.8. Use \`{@link then }\`. + * + * **Cause**: The `.pipe()` method on a `jQuery.Deferred` object was deprecated as of jQuery 1.8, when the `.then()` method was changed to perform the same function. + * + * **Solution**: In most cases it is sufficient to change all occurrences of `.pipe()` to `.then()`. Ensure that you aren't relying on context/state propagation (e.g., using `this`) or synchronous callback invocation, which were dropped from `.then()` for Promises/A+ interoperability as of jQuery 3.0. + * @example ​ ````Filter resolve value: +```javascript +var defer = $.Deferred(), + filtered = defer.pipe(function( value ) { + return value * 2; + }); +​ +defer.resolve( 5 ); +filtered.done(function( value ) { + alert( "Value is ( 2*5 = ) 10: " + value ); +}); +``` + * @example ​ ````Filter reject value: +```javascript +var defer = $.Deferred(), + filtered = defer.pipe( null, function( value ) { + return value * 3; + }); +​ +defer.reject( 6 ); +filtered.fail(function( value ) { + alert( "Value is ( 3*6 = ) 18: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.pipe(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + pipe< + ARD = never, + AJD = never, + AND = never, + BRD = never, + BJD = never, + BND = never, + CRD = never, + CJD = never, + CND = never, + RRD = never, + RJD = never, + RND = never, + ARF = never, + AJF = never, + ANF = never, + BRF = never, + BJF = never, + BNF = never, + CRF = never, + CJF = never, + CNF = never, + RRF = never, + RJF = never, + RNF = never, + >( + doneFilter: ( + t: TR, + u: UR, + v: VR, + ...s: SR[] + ) => PromiseBase | Thenable | ARD, + failFilter: ( + t: TJ, + u: UJ, + v: VJ, + ...s: SJ[] + ) => PromiseBase | Thenable | AJF, + progressFilter?: null, + ): PromiseBase< + ARD | ARF, + AJD | AJF, + AND | ANF, + BRD | BRF, + BJD | BJF, + BND | BNF, + CRD | CRF, + CJD | CJF, + CND | CNF, + RRD | RRF, + RJD | RJF, + RND | RNF + >; + /** + * Utility method to filter and/or chain Deferreds. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.pipe/ }\` + * @since 1.6 + * @since 1.7 + * @deprecated ​ Deprecated since 1.8. Use \`{@link then }\`. + * + * **Cause**: The `.pipe()` method on a `jQuery.Deferred` object was deprecated as of jQuery 1.8, when the `.then()` method was changed to perform the same function. + * + * **Solution**: In most cases it is sufficient to change all occurrences of `.pipe()` to `.then()`. Ensure that you aren't relying on context/state propagation (e.g., using `this`) or synchronous callback invocation, which were dropped from `.then()` for Promises/A+ interoperability as of jQuery 3.0. + * @example ​ ````Filter reject value: +```javascript +var defer = $.Deferred(), + filtered = defer.pipe( null, function( value ) { + return value * 3; + }); +​ +defer.reject( 6 ); +filtered.fail(function( value ) { + alert( "Value is ( 3*6 = ) 18: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.pipe(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + pipe< + ARF = never, + AJF = never, + ANF = never, + BRF = never, + BJF = never, + BNF = never, + CRF = never, + CJF = never, + CNF = never, + RRF = never, + RJF = never, + RNF = never, + >( + doneFilter: null, + failFilter: ( + t: TJ, + u: UJ, + v: VJ, + ...s: SJ[] + ) => PromiseBase | Thenable | AJF, + progressFilter?: null, + ): PromiseBase; + /** + * Utility method to filter and/or chain Deferreds. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.pipe/ }\` + * @since 1.6 + * @since 1.7 + * @deprecated ​ Deprecated since 1.8. Use \`{@link then }\`. + * + * **Cause**: The `.pipe()` method on a `jQuery.Deferred` object was deprecated as of jQuery 1.8, when the `.then()` method was changed to perform the same function. + * + * **Solution**: In most cases it is sufficient to change all occurrences of `.pipe()` to `.then()`. Ensure that you aren't relying on context/state propagation (e.g., using `this`) or synchronous callback invocation, which were dropped from `.then()` for Promises/A+ interoperability as of jQuery 3.0. + * @example ​ ````Filter resolve value: +```javascript +var defer = $.Deferred(), + filtered = defer.pipe(function( value ) { + return value * 2; + }); +​ +defer.resolve( 5 ); +filtered.done(function( value ) { + alert( "Value is ( 2*5 = ) 10: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.pipe(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + pipe< + ARD = never, + AJD = never, + AND = never, + BRD = never, + BJD = never, + BND = never, + CRD = never, + CJD = never, + CND = never, + RRD = never, + RJD = never, + RND = never, + >( + doneFilter: ( + t: TR, + u: UR, + v: VR, + ...s: SR[] + ) => PromiseBase | Thenable | ARD, + failFilter?: null, + progressFilter?: null, + ): PromiseBase; + + // #endregion + + // region then + // #region then + + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.then/ }\` + * @since 1.8 + * @example ​ ````Since the jQuery.get method returns a jqXHR object, which is derived from a Deferred object, we can attach handlers using the .then method. +```javascript +$.get( "test.php" ).then( + function() { + alert( "$.get succeeded" ); + }, function() { + alert( "$.get failed!" ); + } +); +``` + * @example ​ ````Filter the resolve value: +```html + + + + + deferred.then demo + + + +​ + +

      +​ + +​ + + +``` + * @example ​ ````Filter reject value: +```javascript +var defer = $.Deferred(), + filtered = defer.then( null, function( value ) { + return value * 3; + }); +​ +defer.reject( 6 ); +filtered.fail(function( value ) { + alert( "Value is ( 3*6 = ) 18: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.then(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + then< + ARD = never, + AJD = never, + AND = never, + BRD = never, + BJD = never, + BND = never, + CRD = never, + CJD = never, + CND = never, + RRD = never, + RJD = never, + RND = never, + ARF = never, + AJF = never, + ANF = never, + BRF = never, + BJF = never, + BNF = never, + CRF = never, + CJF = never, + CNF = never, + RRF = never, + RJF = never, + RNF = never, + ARP = never, + AJP = never, + ANP = never, + BRP = never, + BJP = never, + BNP = never, + CRP = never, + CJP = never, + CNP = never, + RRP = never, + RJP = never, + RNP = never, + >( + doneFilter: ( + t: TR, + u: UR, + v: VR, + ...s: SR[] + ) => PromiseBase | Thenable | ARD, + failFilter: ( + t: TJ, + u: UJ, + v: VJ, + ...s: SJ[] + ) => PromiseBase | Thenable | ARF, + progressFilter: ( + t: TN, + u: UN, + v: VN, + ...s: SN[] + ) => PromiseBase | Thenable | ANP, + ): PromiseBase< + ARD | ARF | ARP, + AJD | AJF | AJP, + AND | ANF | ANP, + BRD | BRF | BRP, + BJD | BJF | BJP, + BND | BNF | BNP, + CRD | CRF | CRP, + CJD | CJF | CJP, + CND | CNF | CNP, + RRD | RRF | RRP, + RJD | RJF | RJP, + RND | RNF | RNP + >; + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.then/ }\` + * @since 1.8 + * @example ​ ````Filter reject value: +```javascript +var defer = $.Deferred(), + filtered = defer.then( null, function( value ) { + return value * 3; + }); +​ +defer.reject( 6 ); +filtered.fail(function( value ) { + alert( "Value is ( 3*6 = ) 18: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.then(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + then< + ARF = never, + AJF = never, + ANF = never, + BRF = never, + BJF = never, + BNF = never, + CRF = never, + CJF = never, + CNF = never, + RRF = never, + RJF = never, + RNF = never, + ARP = never, + AJP = never, + ANP = never, + BRP = never, + BJP = never, + BNP = never, + CRP = never, + CJP = never, + CNP = never, + RRP = never, + RJP = never, + RNP = never, + >( + doneFilter: null, + failFilter: ( + t: TJ, + u: UJ, + v: VJ, + ...s: SJ[] + ) => PromiseBase | Thenable | ARF, + progressFilter: ( + t: TN, + u: UN, + v: VN, + ...s: SN[] + ) => PromiseBase | Thenable | ANP, + ): PromiseBase< + ARF | ARP, + AJF | AJP, + ANF | ANP, + BRF | BRP, + BJF | BJP, + BNF | BNP, + CRF | CRP, + CJF | CJP, + CNF | CNP, + RRF | RRP, + RJF | RJP, + RNF | RNP + >; + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.then/ }\` + * @since 1.8 + * @example ​ ````Filter the resolve value: +```html + + + + + deferred.then demo + + + +​ + +

      +​ + +​ + + +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.then(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + then< + ARD = never, + AJD = never, + AND = never, + BRD = never, + BJD = never, + BND = never, + CRD = never, + CJD = never, + CND = never, + RRD = never, + RJD = never, + RND = never, + ARP = never, + AJP = never, + ANP = never, + BRP = never, + BJP = never, + BNP = never, + CRP = never, + CJP = never, + CNP = never, + RRP = never, + RJP = never, + RNP = never, + >( + doneFilter: ( + t: TR, + u: UR, + v: VR, + ...s: SR[] + ) => PromiseBase | Thenable | ARD, + failFilter: null, + progressFilter: ( + t: TN, + u: UN, + v: VN, + ...s: SN[] + ) => PromiseBase | Thenable | ANP, + ): PromiseBase< + ARD | ARP, + AJD | AJP, + AND | ANP, + BRD | BRP, + BJD | BJP, + BND | BNP, + CRD | CRP, + CJD | CJP, + CND | CNP, + RRD | RRP, + RJD | RJP, + RND | RNP + >; + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.then/ }\` + * @since 1.8 + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.then(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + then< + ARP = never, + AJP = never, + ANP = never, + BRP = never, + BJP = never, + BNP = never, + CRP = never, + CJP = never, + CNP = never, + RRP = never, + RJP = never, + RNP = never, + >( + doneFilter: null, + failFilter: null, + progressFilter?: ( + t: TN, + u: UN, + v: VN, + ...s: SN[] + ) => PromiseBase | Thenable | ANP, + ): PromiseBase; + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.then/ }\` + * @since 1.8 + * @example ​ ````Since the jQuery.get method returns a jqXHR object, which is derived from a Deferred object, we can attach handlers using the .then method. +```javascript +$.get( "test.php" ).then( + function() { + alert( "$.get succeeded" ); + }, function() { + alert( "$.get failed!" ); + } +); +``` + * @example ​ ````Filter the resolve value: +```html + + + + + deferred.then demo + + + +​ + +

      +​ + +​ + + +``` + * @example ​ ````Filter reject value: +```javascript +var defer = $.Deferred(), + filtered = defer.then( null, function( value ) { + return value * 3; + }); +​ +defer.reject( 6 ); +filtered.fail(function( value ) { + alert( "Value is ( 3*6 = ) 18: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.then(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + then< + ARD = never, + AJD = never, + AND = never, + BRD = never, + BJD = never, + BND = never, + CRD = never, + CJD = never, + CND = never, + RRD = never, + RJD = never, + RND = never, + ARF = never, + AJF = never, + ANF = never, + BRF = never, + BJF = never, + BNF = never, + CRF = never, + CJF = never, + CNF = never, + RRF = never, + RJF = never, + RNF = never, + >( + doneFilter: ( + t: TR, + u: UR, + v: VR, + ...s: SR[] + ) => PromiseBase | Thenable | ARD, + failFilter: ( + t: TJ, + u: UJ, + v: VJ, + ...s: SJ[] + ) => PromiseBase | Thenable | ARF, + progressFilter?: null, + ): PromiseBase< + ARD | ARF, + AJD | AJF, + AND | ANF, + BRD | BRF, + BJD | BJF, + BND | BNF, + CRD | CRF, + CJD | CJF, + CND | CNF, + RRD | RRF, + RJD | RJF, + RND | RNF + >; + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.then/ }\` + * @since 1.8 + * @example ​ ````Filter reject value: +```javascript +var defer = $.Deferred(), + filtered = defer.then( null, function( value ) { + return value * 3; + }); +​ +defer.reject( 6 ); +filtered.fail(function( value ) { + alert( "Value is ( 3*6 = ) 18: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.then(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + then< + ARF = never, + AJF = never, + ANF = never, + BRF = never, + BJF = never, + BNF = never, + CRF = never, + CJF = never, + CNF = never, + RRF = never, + RJF = never, + RNF = never, + >( + doneFilter: null, + failFilter: ( + t: TJ, + u: UJ, + v: VJ, + ...s: SJ[] + ) => PromiseBase | Thenable | ARF, + progressFilter?: null, + ): PromiseBase; + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.then/ }\` + * @since 1.8 + * @example ​ ````Filter the resolve value: +```html + + + + + deferred.then demo + + + +​ + +

      +​ + +​ + + +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.then(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + then< + ARD = never, + AJD = never, + AND = never, + BRD = never, + BJD = never, + BND = never, + CRD = never, + CJD = never, + CND = never, + RRD = never, + RJD = never, + RND = never, + >( + doneFilter: ( + t: TR, + u: UR, + v: VR, + ...s: SR[] + ) => PromiseBase | Thenable | ARD, + failFilter?: null, + progressFilter?: null, + ): PromiseBase; + + // #endregion + + /** + * Add handlers to be called when the Deferred object is rejected. + * @param failFilter A function that is called when the Deferred is rejected. + * @see \`{@link https://api.jquery.com/deferred.catch/ }\` + * @since 3.0 + * @example ​ ````Since the jQuery.get method returns a jqXHR object, which is derived from a Deferred object, we can rejection handlers using the .catch method. +```javascript +$.get( "test.php" ) + .then( function() { + alert( "$.get succeeded" ); + } ) + .catch( function() { + alert( "$.get failed!" ); + } ); +``` + */ + catch< + ARF = never, + AJF = never, + ANF = never, + BRF = never, + BJF = never, + BNF = never, + CRF = never, + CJF = never, + CNF = never, + RRF = never, + RJF = never, + RNF = never, + >( + failFilter?: + | (( + t: TJ, + u: UJ, + v: VJ, + ...s: SJ[] + ) => PromiseBase | Thenable | ARF) + | null, + ): PromiseBase; + } + + /** + * This object provides a subset of the methods of the Deferred object (then, done, fail, always, pipe, progress, state and promise) to prevent users from changing the state of the Deferred. + * @see \`{@link https://api.jquery.com/Types/#Promise }\` + */ + interface Promise3 + extends PromiseBase + {} + + /** + * This object provides a subset of the methods of the Deferred object (then, done, fail, always, pipe, progress, state and promise) to prevent users from changing the state of the Deferred. + * @see \`{@link https://api.jquery.com/Types/#Promise }\` + */ + interface Promise2 + extends PromiseBase + {} + + /** + * This object provides a subset of the methods of the Deferred object (then, done, fail, always, pipe, progress, state and promise) to prevent users from changing the state of the Deferred. + * @see \`{@link https://api.jquery.com/Types/#Promise }\` + */ + interface Promise extends PromiseBase {} + + interface DeferredStatic { + // https://jquery.com/upgrade-guide/3.0/#callback-exit + exceptionHook: any; + /** + * A factory function that returns a chainable utility object with methods to register multiple callbacks into callback queues, invoke callback queues, and relay the success or failure state of any synchronous or asynchronous function. + * @param beforeStart A function that is called just before the constructor returns. + * @see \`{@link https://api.jquery.com/jQuery.Deferred/ }\` + * @since 1.5 + */ + ( + beforeStart?: (this: Deferred, deferred: Deferred) => void, + ): Deferred; + } + + interface Deferred { + /** + * Call the progressCallbacks on a Deferred object with the given args. + * @param args Optional arguments that are passed to the progressCallbacks. + * @see \`{@link https://api.jquery.com/deferred.notify/ }\` + * @since 1.7 + */ + notify(...args: TN[]): this; + /** + * Call the progressCallbacks on a Deferred object with the given context and args. + * @param context Context passed to the progressCallbacks as the this object. + * @param args An optional array of arguments that are passed to the progressCallbacks. + * @see \`{@link https://api.jquery.com/deferred.notifyWith/ }\` + * @since 1.7 + */ + notifyWith(context: object, args?: ArrayLike): this; + /** + * Reject a Deferred object and call any failCallbacks with the given args. + * @param args Optional arguments that are passed to the failCallbacks. + * @see \`{@link https://api.jquery.com/deferred.reject/ }\` + * @since 1.5 + */ + reject(...args: TJ[]): this; + /** + * Reject a Deferred object and call any failCallbacks with the given context and args. + * @param context Context passed to the failCallbacks as the this object. + * @param args An optional array of arguments that are passed to the failCallbacks. + * @see \`{@link https://api.jquery.com/deferred.rejectWith/ }\` + * @since 1.5 + */ + rejectWith(context: object, args?: ArrayLike): this; + /** + * Resolve a Deferred object and call any doneCallbacks with the given args. + * @param args Optional arguments that are passed to the doneCallbacks. + * @see \`{@link https://api.jquery.com/deferred.resolve/ }\` + * @since 1.5 + */ + resolve(...args: TR[]): this; + /** + * Resolve a Deferred object and call any doneCallbacks with the given context and args. + * @param context Context passed to the doneCallbacks as the this object. + * @param args An optional array of arguments that are passed to the doneCallbacks. + * @see \`{@link https://api.jquery.com/deferred.resolveWith/ }\` + * @since 1.5 + */ + resolveWith(context: object, args?: ArrayLike): this; + + /** + * Add handlers to be called when the Deferred object is either resolved or rejected. + * @param alwaysCallback A function, or array of functions, that is called when the Deferred is resolved or rejected. + * @param alwaysCallbacks Optional additional functions, or arrays of functions, that are called when the Deferred is resolved or rejected. + * @see \`{@link https://api.jquery.com/deferred.always/ }\` + * @since 1.6 + * @example ​ ````Since the jQuery.get() method returns a jqXHR object, which is derived from a Deferred object, we can attach a callback for both success and error using the deferred.always() method. +```javascript +$.get( "test.php" ).always(function() { + alert( "$.get completed with success or error callback arguments" ); +}); +``` + */ + always( + alwaysCallback: TypeOrArray>, + ...alwaysCallbacks: Array>> + ): this; + /** + * Add handlers to be called when the Deferred object is resolved. + * @param doneCallback A function, or array of functions, that are called when the Deferred is resolved. + * @param doneCallbacks Optional additional functions, or arrays of functions, that are called when the Deferred is resolved. + * @see \`{@link https://api.jquery.com/deferred.done/ }\` + * @since 1.5 + * @example ​ ````Since the jQuery.get method returns a jqXHR object, which is derived from a Deferred object, we can attach a success callback using the .done() method. +```javascript +$.get( "test.php" ).done(function() { + alert( "$.get succeeded" ); +}); +``` + * @example ​ ````Resolve a Deferred object when the user clicks a button, triggering a number of callback functions: +```html + + + + + deferred.done demo + + + +​ + +

      Ready...

      +​ + +​ + + +``` + */ + done( + doneCallback: TypeOrArray>, + ...doneCallbacks: Array>> + ): this; + /** + * Add handlers to be called when the Deferred object is rejected. + * @param failCallback A function, or array of functions, that are called when the Deferred is rejected. + * @param failCallbacks Optional additional functions, or arrays of functions, that are called when the Deferred is rejected. + * @see \`{@link https://api.jquery.com/deferred.fail/ }\` + * @since 1.5 + * @example ​ ````Since the jQuery.get method returns a jqXHR object, which is derived from a Deferred, you can attach a success and failure callback using the deferred.done() and deferred.fail() methods. +```javascript +$.get( "test.php" ) + .done(function() { + alert( "$.get succeeded" ); + }) + .fail(function() { + alert( "$.get failed!" ); + }); +``` + */ + fail( + failCallback: TypeOrArray>, + ...failCallbacks: Array>> + ): this; + /** + * Add handlers to be called when the Deferred object generates progress notifications. + * @param progressCallback A function, or array of functions, to be called when the Deferred generates progress notifications. + * @param progressCallbacks Optional additional functions, or arrays of functions, to be called when the Deferred generates + * progress notifications. + * @see \`{@link https://api.jquery.com/deferred.progress/ }\` + * @since 1.7 + */ + progress( + progressCallback: TypeOrArray>, + ...progressCallbacks: Array>> + ): this; + /** + * Return a Deferred's Promise object. + * @param target Object onto which the promise methods have to be attached + * @see \`{@link https://api.jquery.com/deferred.promise/ }\` + * @since 1.5 + * @example ​ ````Use the target argument to promote an existing object to a Promise: +```javascript +// Existing object +var obj = { + hello: function( name ) { + alert( "Hello " + name ); + } + }, + // Create a Deferred + defer = $.Deferred(); +​ +// Set object as a promise +defer.promise( obj ); +​ +// Resolve the deferred +defer.resolve( "John" ); +​ +// Use the object as a Promise +obj.done(function( name ) { + obj.hello( name ); // Will alert "Hello John" +}).hello( "Karl" ); // Will alert "Hello Karl" +``` + */ + promise(target: TTarget): Promise & TTarget; + /** + * Return a Deferred's Promise object. + * @see \`{@link https://api.jquery.com/deferred.promise/ }\` + * @since 1.5 + * @example ​ ````Create a Deferred and set two timer-based functions to either resolve or reject the Deferred after a random interval. Whichever one fires first "wins" and will call one of the callbacks. The second timeout has no effect since the Deferred is already complete (in a resolved or rejected state) from the first timeout action. Also set a timer-based progress notification function, and call a progress handler that adds "working..." to the document body. +```javascript +function asyncEvent() { + var dfd = jQuery.Deferred(); +​ + // Resolve after a random interval + setTimeout(function() { + dfd.resolve( "hurray" ); + }, Math.floor( 400 + Math.random() * 2000 ) ); +​ + // Reject after a random interval + setTimeout(function() { + dfd.reject( "sorry" ); + }, Math.floor( 400 + Math.random() * 2000 ) ); +​ + // Show a "working..." message every half-second + setTimeout(function working() { + if ( dfd.state() === "pending" ) { + dfd.notify( "working... " ); + setTimeout( working, 500 ); + } + }, 1 ); +​ + // Return the Promise so caller can't change the Deferred + return dfd.promise(); +} +​ +// Attach a done, fail, and progress handler for the asyncEvent +$.when( asyncEvent() ).then( + function( status ) { + alert( status + ", things are going well" ); + }, + function( status ) { + alert( status + ", you fail this time" ); + }, + function( status ) { + $( "body" ).append( status ); + } +); +``` + */ + promise(): Promise; + /** + * Determine the current state of a Deferred object. + * @see \`{@link https://api.jquery.com/deferred.state/ }\` + * @since 1.7 + */ + state(): "pending" | "resolved" | "rejected"; + + // region pipe + // #region pipe + + /** + * Utility method to filter and/or chain Deferreds. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.pipe/ }\` + * @since 1.6 + * @since 1.7 + * @deprecated ​ Deprecated since 1.8. Use \`{@link then }\`. + * + * **Cause**: The `.pipe()` method on a `jQuery.Deferred` object was deprecated as of jQuery 1.8, when the `.then()` method was changed to perform the same function. + * + * **Solution**: In most cases it is sufficient to change all occurrences of `.pipe()` to `.then()`. Ensure that you aren't relying on context/state propagation (e.g., using `this`) or synchronous callback invocation, which were dropped from `.then()` for Promises/A+ interoperability as of jQuery 3.0. + * @example ​ ````Filter resolve value: +```javascript +var defer = $.Deferred(), + filtered = defer.pipe(function( value ) { + return value * 2; + }); +​ +defer.resolve( 5 ); +filtered.done(function( value ) { + alert( "Value is ( 2*5 = ) 10: " + value ); +}); +``` + * @example ​ ````Filter reject value: +```javascript +var defer = $.Deferred(), + filtered = defer.pipe( null, function( value ) { + return value * 3; + }); +​ +defer.reject( 6 ); +filtered.fail(function( value ) { + alert( "Value is ( 3*6 = ) 18: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.pipe(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + pipe< + ARD = never, + AJD = never, + AND = never, + BRD = never, + BJD = never, + BND = never, + CRD = never, + CJD = never, + CND = never, + RRD = never, + RJD = never, + RND = never, + ARF = never, + AJF = never, + ANF = never, + BRF = never, + BJF = never, + BNF = never, + CRF = never, + CJF = never, + CNF = never, + RRF = never, + RJF = never, + RNF = never, + ARP = never, + AJP = never, + ANP = never, + BRP = never, + BJP = never, + BNP = never, + CRP = never, + CJP = never, + CNP = never, + RRP = never, + RJP = never, + RNP = never, + >( + doneFilter: ( + ...t: TR[] + ) => PromiseBase | Thenable | ARD, + failFilter: ( + ...t: TJ[] + ) => PromiseBase | Thenable | AJF, + progressFilter: ( + ...t: TN[] + ) => PromiseBase | Thenable | ANP, + ): PromiseBase< + ARD | ARF | ARP, + AJD | AJF | AJP, + AND | ANF | ANP, + BRD | BRF | BRP, + BJD | BJF | BJP, + BND | BNF | BNP, + CRD | CRF | CRP, + CJD | CJF | CJP, + CND | CNF | CNP, + RRD | RRF | RRP, + RJD | RJF | RJP, + RND | RNF | RNP + >; + /** + * Utility method to filter and/or chain Deferreds. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.pipe/ }\` + * @since 1.6 + * @since 1.7 + * @deprecated ​ Deprecated since 1.8. Use \`{@link then }\`. + * + * **Cause**: The `.pipe()` method on a `jQuery.Deferred` object was deprecated as of jQuery 1.8, when the `.then()` method was changed to perform the same function. + * + * **Solution**: In most cases it is sufficient to change all occurrences of `.pipe()` to `.then()`. Ensure that you aren't relying on context/state propagation (e.g., using `this`) or synchronous callback invocation, which were dropped from `.then()` for Promises/A+ interoperability as of jQuery 3.0. + * @example ​ ````Filter reject value: +```javascript +var defer = $.Deferred(), + filtered = defer.pipe( null, function( value ) { + return value * 3; + }); +​ +defer.reject( 6 ); +filtered.fail(function( value ) { + alert( "Value is ( 3*6 = ) 18: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.pipe(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + pipe< + ARF = never, + AJF = never, + ANF = never, + BRF = never, + BJF = never, + BNF = never, + CRF = never, + CJF = never, + CNF = never, + RRF = never, + RJF = never, + RNF = never, + ARP = never, + AJP = never, + ANP = never, + BRP = never, + BJP = never, + BNP = never, + CRP = never, + CJP = never, + CNP = never, + RRP = never, + RJP = never, + RNP = never, + >( + doneFilter: null, + failFilter: ( + ...t: TJ[] + ) => PromiseBase | Thenable | AJF, + progressFilter: ( + ...t: TN[] + ) => PromiseBase | Thenable | ANP, + ): PromiseBase< + ARF | ARP, + AJF | AJP, + ANF | ANP, + BRF | BRP, + BJF | BJP, + BNF | BNP, + CRF | CRP, + CJF | CJP, + CNF | CNP, + RRF | RRP, + RJF | RJP, + RNF | RNP + >; + /** + * Utility method to filter and/or chain Deferreds. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.pipe/ }\` + * @since 1.6 + * @since 1.7 + * @deprecated ​ Deprecated since 1.8. Use \`{@link then }\`. + * + * **Cause**: The `.pipe()` method on a `jQuery.Deferred` object was deprecated as of jQuery 1.8, when the `.then()` method was changed to perform the same function. + * + * **Solution**: In most cases it is sufficient to change all occurrences of `.pipe()` to `.then()`. Ensure that you aren't relying on context/state propagation (e.g., using `this`) or synchronous callback invocation, which were dropped from `.then()` for Promises/A+ interoperability as of jQuery 3.0. + * @example ​ ````Filter resolve value: +```javascript +var defer = $.Deferred(), + filtered = defer.pipe(function( value ) { + return value * 2; + }); +​ +defer.resolve( 5 ); +filtered.done(function( value ) { + alert( "Value is ( 2*5 = ) 10: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.pipe(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + pipe< + ARD = never, + AJD = never, + AND = never, + BRD = never, + BJD = never, + BND = never, + CRD = never, + CJD = never, + CND = never, + RRD = never, + RJD = never, + RND = never, + ARP = never, + AJP = never, + ANP = never, + BRP = never, + BJP = never, + BNP = never, + CRP = never, + CJP = never, + CNP = never, + RRP = never, + RJP = never, + RNP = never, + >( + doneFilter: ( + ...t: TR[] + ) => PromiseBase | Thenable | ARD, + failFilter: null, + progressFilter: ( + ...t: TN[] + ) => PromiseBase | Thenable | ANP, + ): PromiseBase< + ARD | ARP, + AJD | AJP, + AND | ANP, + BRD | BRP, + BJD | BJP, + BND | BNP, + CRD | CRP, + CJD | CJP, + CND | CNP, + RRD | RRP, + RJD | RJP, + RND | RNP + >; + /** + * Utility method to filter and/or chain Deferreds. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.pipe/ }\` + * @since 1.6 + * @since 1.7 + * @deprecated ​ Deprecated since 1.8. Use \`{@link then }\`. + * + * **Cause**: The `.pipe()` method on a `jQuery.Deferred` object was deprecated as of jQuery 1.8, when the `.then()` method was changed to perform the same function. + * + * **Solution**: In most cases it is sufficient to change all occurrences of `.pipe()` to `.then()`. Ensure that you aren't relying on context/state propagation (e.g., using `this`) or synchronous callback invocation, which were dropped from `.then()` for Promises/A+ interoperability as of jQuery 3.0. + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.pipe(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + pipe< + ARP = never, + AJP = never, + ANP = never, + BRP = never, + BJP = never, + BNP = never, + CRP = never, + CJP = never, + CNP = never, + RRP = never, + RJP = never, + RNP = never, + >( + doneFilter: null, + failFilter: null, + progressFilter?: ( + ...t: TN[] + ) => PromiseBase | Thenable | ANP, + ): PromiseBase; + /** + * Utility method to filter and/or chain Deferreds. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.pipe/ }\` + * @since 1.6 + * @since 1.7 + * @deprecated ​ Deprecated since 1.8. Use \`{@link then }\`. + * + * **Cause**: The `.pipe()` method on a `jQuery.Deferred` object was deprecated as of jQuery 1.8, when the `.then()` method was changed to perform the same function. + * + * **Solution**: In most cases it is sufficient to change all occurrences of `.pipe()` to `.then()`. Ensure that you aren't relying on context/state propagation (e.g., using `this`) or synchronous callback invocation, which were dropped from `.then()` for Promises/A+ interoperability as of jQuery 3.0. + * @example ​ ````Filter resolve value: +```javascript +var defer = $.Deferred(), + filtered = defer.pipe(function( value ) { + return value * 2; + }); +​ +defer.resolve( 5 ); +filtered.done(function( value ) { + alert( "Value is ( 2*5 = ) 10: " + value ); +}); +``` + * @example ​ ````Filter reject value: +```javascript +var defer = $.Deferred(), + filtered = defer.pipe( null, function( value ) { + return value * 3; + }); +​ +defer.reject( 6 ); +filtered.fail(function( value ) { + alert( "Value is ( 3*6 = ) 18: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.pipe(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + pipe< + ARD = never, + AJD = never, + AND = never, + BRD = never, + BJD = never, + BND = never, + CRD = never, + CJD = never, + CND = never, + RRD = never, + RJD = never, + RND = never, + ARF = never, + AJF = never, + ANF = never, + BRF = never, + BJF = never, + BNF = never, + CRF = never, + CJF = never, + CNF = never, + RRF = never, + RJF = never, + RNF = never, + >( + doneFilter: ( + ...t: TR[] + ) => PromiseBase | Thenable | ARD, + failFilter: ( + ...t: TJ[] + ) => PromiseBase | Thenable | AJF, + progressFilter?: null, + ): PromiseBase< + ARD | ARF, + AJD | AJF, + AND | ANF, + BRD | BRF, + BJD | BJF, + BND | BNF, + CRD | CRF, + CJD | CJF, + CND | CNF, + RRD | RRF, + RJD | RJF, + RND | RNF + >; + /** + * Utility method to filter and/or chain Deferreds. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.pipe/ }\` + * @since 1.6 + * @since 1.7 + * @deprecated ​ Deprecated since 1.8. Use \`{@link then }\`. + * + * **Cause**: The `.pipe()` method on a `jQuery.Deferred` object was deprecated as of jQuery 1.8, when the `.then()` method was changed to perform the same function. + * + * **Solution**: In most cases it is sufficient to change all occurrences of `.pipe()` to `.then()`. Ensure that you aren't relying on context/state propagation (e.g., using `this`) or synchronous callback invocation, which were dropped from `.then()` for Promises/A+ interoperability as of jQuery 3.0. + * @example ​ ````Filter reject value: +```javascript +var defer = $.Deferred(), + filtered = defer.pipe( null, function( value ) { + return value * 3; + }); +​ +defer.reject( 6 ); +filtered.fail(function( value ) { + alert( "Value is ( 3*6 = ) 18: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.pipe(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + pipe< + ARF = never, + AJF = never, + ANF = never, + BRF = never, + BJF = never, + BNF = never, + CRF = never, + CJF = never, + CNF = never, + RRF = never, + RJF = never, + RNF = never, + >( + doneFilter: null, + failFilter: ( + ...t: TJ[] + ) => PromiseBase | Thenable | AJF, + progressFilter?: null, + ): PromiseBase; + /** + * Utility method to filter and/or chain Deferreds. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.pipe/ }\` + * @since 1.6 + * @since 1.7 + * @deprecated ​ Deprecated since 1.8. Use \`{@link then }\`. + * + * **Cause**: The `.pipe()` method on a `jQuery.Deferred` object was deprecated as of jQuery 1.8, when the `.then()` method was changed to perform the same function. + * + * **Solution**: In most cases it is sufficient to change all occurrences of `.pipe()` to `.then()`. Ensure that you aren't relying on context/state propagation (e.g., using `this`) or synchronous callback invocation, which were dropped from `.then()` for Promises/A+ interoperability as of jQuery 3.0. + * @example ​ ````Filter resolve value: +```javascript +var defer = $.Deferred(), + filtered = defer.pipe(function( value ) { + return value * 2; + }); +​ +defer.resolve( 5 ); +filtered.done(function( value ) { + alert( "Value is ( 2*5 = ) 10: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.pipe(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + pipe< + ARD = never, + AJD = never, + AND = never, + BRD = never, + BJD = never, + BND = never, + CRD = never, + CJD = never, + CND = never, + RRD = never, + RJD = never, + RND = never, + >( + doneFilter: ( + ...t: TR[] + ) => PromiseBase | Thenable | ARD, + failFilter?: null, + progressFilter?: null, + ): PromiseBase; + + // #endregion + + // region then + // #region then + + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * @param doneFilter A function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.then/ }\` + * @since 1.8 + * @example ​ ````Since the jQuery.get method returns a jqXHR object, which is derived from a Deferred object, we can attach handlers using the .then method. +```javascript +$.get( "test.php" ).then( + function() { + alert( "$.get succeeded" ); + }, function() { + alert( "$.get failed!" ); + } +); +``` + * @example ​ ````Filter the resolve value: +```html + + + + + deferred.then demo + + + +​ + +

      +​ + +​ + + +``` + * @example ​ ````Filter reject value: +```javascript +var defer = $.Deferred(), + filtered = defer.then( null, function( value ) { + return value * 3; + }); +​ +defer.reject( 6 ); +filtered.fail(function( value ) { + alert( "Value is ( 3*6 = ) 18: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.then(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + then< + ARD = never, + AJD = never, + AND = never, + BRD = never, + BJD = never, + BND = never, + CRD = never, + CJD = never, + CND = never, + RRD = never, + RJD = never, + RND = never, + ARF = never, + AJF = never, + ANF = never, + BRF = never, + BJF = never, + BNF = never, + CRF = never, + CJF = never, + CNF = never, + RRF = never, + RJF = never, + RNF = never, + ARP = never, + AJP = never, + ANP = never, + BRP = never, + BJP = never, + BNP = never, + CRP = never, + CJP = never, + CNP = never, + RRP = never, + RJP = never, + RNP = never, + >( + doneFilter: ( + ...t: TR[] + ) => PromiseBase | Thenable | ARD, + failFilter: ( + ...t: TJ[] + ) => PromiseBase | Thenable | ARF, + progressFilter: ( + ...t: TN[] + ) => PromiseBase | Thenable | ANP, + ): PromiseBase< + ARD | ARF | ARP, + AJD | AJF | AJP, + AND | ANF | ANP, + BRD | BRF | BRP, + BJD | BJF | BJP, + BND | BNF | BNP, + CRD | CRF | CRP, + CJD | CJF | CJP, + CND | CNF | CNP, + RRD | RRF | RRP, + RJD | RJF | RJP, + RND | RNF | RNP + >; + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * @param doneFilter A function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.then/ }\` + * @since 1.8 + * @example ​ ````Filter reject value: +```javascript +var defer = $.Deferred(), + filtered = defer.then( null, function( value ) { + return value * 3; + }); +​ +defer.reject( 6 ); +filtered.fail(function( value ) { + alert( "Value is ( 3*6 = ) 18: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.then(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + then< + ARF = never, + AJF = never, + ANF = never, + BRF = never, + BJF = never, + BNF = never, + CRF = never, + CJF = never, + CNF = never, + RRF = never, + RJF = never, + RNF = never, + ARP = never, + AJP = never, + ANP = never, + BRP = never, + BJP = never, + BNP = never, + CRP = never, + CJP = never, + CNP = never, + RRP = never, + RJP = never, + RNP = never, + >( + doneFilter: null, + failFilter: ( + ...t: TJ[] + ) => PromiseBase | Thenable | ARF, + progressFilter: ( + ...t: TN[] + ) => PromiseBase | Thenable | ANP, + ): PromiseBase< + ARF | ARP, + AJF | AJP, + ANF | ANP, + BRF | BRP, + BJF | BJP, + BNF | BNP, + CRF | CRP, + CJF | CJP, + CNF | CNP, + RRF | RRP, + RJF | RJP, + RNF | RNP + >; + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * @param doneFilter A function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.then/ }\` + * @since 1.8 + * @example ​ ````Filter the resolve value: +```html + + + + + deferred.then demo + + + +​ + +

      +​ + +​ + + +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.then(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + then< + ARD = never, + AJD = never, + AND = never, + BRD = never, + BJD = never, + BND = never, + CRD = never, + CJD = never, + CND = never, + RRD = never, + RJD = never, + RND = never, + ARP = never, + AJP = never, + ANP = never, + BRP = never, + BJP = never, + BNP = never, + CRP = never, + CJP = never, + CNP = never, + RRP = never, + RJP = never, + RNP = never, + >( + doneFilter: ( + ...t: TR[] + ) => PromiseBase | Thenable | ARD, + failFilter: null, + progressFilter: ( + ...t: TN[] + ) => PromiseBase | Thenable | ANP, + ): PromiseBase< + ARD | ARP, + AJD | AJP, + AND | ANP, + BRD | BRP, + BJD | BJP, + BND | BNP, + CRD | CRP, + CJD | CJP, + CND | CNP, + RRD | RRP, + RJD | RJP, + RND | RNP + >; + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * @param doneFilter A function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.then/ }\` + * @since 1.8 + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.then(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + then< + ARP = never, + AJP = never, + ANP = never, + BRP = never, + BJP = never, + BNP = never, + CRP = never, + CJP = never, + CNP = never, + RRP = never, + RJP = never, + RNP = never, + >( + doneFilter: null, + failFilter: null, + progressFilter?: ( + ...t: TN[] + ) => PromiseBase | Thenable | ANP, + ): PromiseBase; + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.then/ }\` + * @since 1.8 + * @example ​ ````Since the jQuery.get method returns a jqXHR object, which is derived from a Deferred object, we can attach handlers using the .then method. +```javascript +$.get( "test.php" ).then( + function() { + alert( "$.get succeeded" ); + }, function() { + alert( "$.get failed!" ); + } +); +``` + * @example ​ ````Filter the resolve value: +```html + + + + + deferred.then demo + + + +​ + +

      +​ + +​ + + +``` + * @example ​ ````Filter reject value: +```javascript +var defer = $.Deferred(), + filtered = defer.then( null, function( value ) { + return value * 3; + }); +​ +defer.reject( 6 ); +filtered.fail(function( value ) { + alert( "Value is ( 3*6 = ) 18: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.then(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + then< + ARD = never, + AJD = never, + AND = never, + BRD = never, + BJD = never, + BND = never, + CRD = never, + CJD = never, + CND = never, + RRD = never, + RJD = never, + RND = never, + ARF = never, + AJF = never, + ANF = never, + BRF = never, + BJF = never, + BNF = never, + CRF = never, + CJF = never, + CNF = never, + RRF = never, + RJF = never, + RNF = never, + >( + doneFilter: ( + ...t: TR[] + ) => PromiseBase | Thenable | ARD, + failFilter: ( + ...t: TJ[] + ) => PromiseBase | Thenable | ARF, + progressFilter?: null, + ): PromiseBase< + ARD | ARF, + AJD | AJF, + AND | ANF, + BRD | BRF, + BJD | BJF, + BND | BNF, + CRD | CRF, + CJD | CJF, + CND | CNF, + RRD | RRF, + RJD | RJF, + RND | RNF + >; + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.then/ }\` + * @since 1.8 + * @example ​ ````Filter reject value: +```javascript +var defer = $.Deferred(), + filtered = defer.then( null, function( value ) { + return value * 3; + }); +​ +defer.reject( 6 ); +filtered.fail(function( value ) { + alert( "Value is ( 3*6 = ) 18: " + value ); +}); +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.then(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + then< + ARF = never, + AJF = never, + ANF = never, + BRF = never, + BJF = never, + BNF = never, + CRF = never, + CJF = never, + CNF = never, + RRF = never, + RJF = never, + RNF = never, + >( + doneFilter: null, + failFilter: ( + ...t: TJ[] + ) => PromiseBase | Thenable | ARF, + progressFilter?: null, + ): PromiseBase; + /** + * Add handlers to be called when the Deferred object is resolved, rejected, or still in progress. + * @param doneFilter An optional function that is called when the Deferred is resolved. + * @param failFilter An optional function that is called when the Deferred is rejected. + * @param progressFilter An optional function that is called when progress notifications are sent to the Deferred. + * @see \`{@link https://api.jquery.com/deferred.then/ }\` + * @since 1.8 + * @example ​ ````Filter the resolve value: +```html + + + + + deferred.then demo + + + +​ + +

      +​ + +​ + + +``` + * @example ​ ````Chain tasks: +```javascript +var request = $.ajax( url, { dataType: "json" } ), + chained = request.then(function( data ) { + return $.ajax( url2, { data: { user: data.userId } } ); + }); +​ +chained.done(function( data ) { + // data retrieved from url2 as provided by the first request +}); +``` + */ + then< + ARD = never, + AJD = never, + AND = never, + BRD = never, + BJD = never, + BND = never, + CRD = never, + CJD = never, + CND = never, + RRD = never, + RJD = never, + RND = never, + >( + doneFilter: ( + ...t: TR[] + ) => PromiseBase | Thenable | ARD, + failFilter?: null, + progressFilter?: null, + ): PromiseBase; + + // #endregion + + /** + * Add handlers to be called when the Deferred object is rejected. + * @param failFilter A function that is called when the Deferred is rejected. + * @see \`{@link https://api.jquery.com/deferred.catch/ }\` + * @since 3.0 + * @example ​ ````Since the jQuery.get method returns a jqXHR object, which is derived from a Deferred object, we can rejection handlers using the .catch method. +```javascript +$.get( "test.php" ) + .then( function() { + alert( "$.get succeeded" ); + } ) + .catch( function() { + alert( "$.get failed!" ); + } ); +``` + */ + catch< + ARF = never, + AJF = never, + ANF = never, + BRF = never, + BJF = never, + BNF = never, + CRF = never, + CJF = never, + CNF = never, + RRF = never, + RJF = never, + RNF = never, + >( + failFilter?: + | (( + ...t: TJ[] + ) => PromiseBase | Thenable | ARF) + | null, + ): PromiseBase; + } + + namespace Deferred { + type CallbackBase = (t: T, u: U, v: V, ...r: R[]) => void; + + interface Callback3 extends CallbackBase {} + + type Callback = (...args: T[]) => void; + + /** + * @deprecated ​ Deprecated. Use \`{@link Callback }\`. + */ + interface DoneCallback extends Callback {} + + /** + * @deprecated ​ Deprecated. Use \`{@link Callback }\`. + */ + interface FailCallback extends Callback {} + + /** + * @deprecated ​ Deprecated. Use \`{@link Callback }\`. + */ + interface AlwaysCallback extends Callback {} + + /** + * @deprecated ​ Deprecated. Use \`{@link Callback }\`. + */ + interface ProgressCallback extends Callback {} + } + + // #endregion + + // region Effects + // #region Effects + + type Duration = number | "fast" | "slow"; + + /** + * @see \`{@link https://api.jquery.com/animate/#animate-properties-options }\` + */ + interface EffectsOptions extends PlainObject { + /** + * A function to be called when the animation on an element completes or stops without completing (its Promise object is either resolved or rejected). + */ + always?(this: TElement, animation: Animation, jumpedToEnd: boolean): void; + /** + * A function that is called once the animation on an element is complete. + */ + complete?(this: TElement): void; + /** + * A function to be called when the animation on an element completes (its Promise object is resolved). + */ + done?(this: TElement, animation: Animation, jumpedToEnd: boolean): void; + /** + * A string or number determining how long the animation will run. + */ + duration?: Duration | undefined; + /** + * A string indicating which easing function to use for the transition. + */ + easing?: string | undefined; + /** + * A function to be called when the animation on an element fails to complete (its Promise object is rejected). + */ + fail?(this: TElement, animation: Animation, jumpedToEnd: boolean): void; + /** + * A function to be called after each step of the animation, only once per animated element regardless of the number of animated properties. + */ + progress?(this: TElement, animation: Animation, progress: number, remainingMs: number): void; + /** + * A Boolean indicating whether to place the animation in the effects queue. If false, the animation will begin immediately. As of jQuery 1.7, the queue option can also accept a string, in which case the animation is added to the queue represented by that string. When a custom queue name is used the animation does not automatically start; you must call .dequeue("queuename") to start it. + */ + queue?: boolean | string | undefined; + /** + * An object containing one or more of the CSS properties defined by the properties argument and their corresponding easing functions. + */ + specialEasing?: PlainObject | undefined; + /** + * A function to call when the animation on an element begins. + */ + start?(this: TElement, animation: Animation): void; + /** + * A function to be called for each animated property of each animated element. This function provides an opportunity to modify the Tween object to change the value of the property before it is set. + */ + step?(this: TElement, now: number, tween: Tween): void; + } + + // region Animation + // #region Animation + + /** + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#animation-factory }\` + * @since 1.8 + */ + interface AnimationStatic { + /** + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#animation-factory }\` + * @since 1.8 + */ + (element: TElement, props: PlainObject, opts: EffectsOptions): Animation; + /** + * During the initial setup, `jQuery.Animation` will call any callbacks that have been registered through `jQuery.Animation.prefilter( function( element, props, opts ) )`. + * @param callback The prefilter will have `this` set to an animation object, and you can modify any of the `props` or + * `opts` however you need. The prefilter _may_ return its own promise which also implements `stop()`, + * in which case, processing of prefilters stops. If the prefilter is not trying to override the animation + * entirely, it should return `undefined` or some other falsy value. + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#prefilters }\` + * @since 1.8 + */ + prefilter( + callback: ( + this: Animation, + element: TElement, + props: PlainObject, + opts: EffectsOptions, + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + ) => Animation | _Falsy | void, + prepend?: boolean, + ): void; + /** + * A "Tweener" is a function responsible for creating a tween object, and you might want to override these if you want to implement complex values ( like a clip/transform array matrix ) in a single property. + * + * You can override the default process for creating a tween in order to provide your own tween object by using `jQuery.Animation.tweener( props, callback( prop, value ) )`. + * @param props A space separated list of properties to be passed to your tweener, or `"*"` if it should be called + * for all properties. + * @param callback The callback will be called with `this` being an `Animation` object. The tweener function will + * generally start with `var tween = this.createTween( prop, value );`, but doesn't nessecarily need to + * use the `jQuery.Tween()` factory. + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tweeners }\` + * @since 1.8 + */ + tweener(props: string, callback: Tweener): void; + } + + /** + * The promise will be resolved when the animation reaches its end, and rejected when terminated early. The context of callbacks attached to the promise will be the element, and the arguments will be the `Animation` object and a boolean `jumpedToEnd` which when true means the animation was stopped with `gotoEnd`, when `undefined` the animation completed naturally. + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#animation-factory }\` + * @since 1.8 + */ + interface Animation extends + Promise3< + Animation, + Animation, + Animation, + true | undefined, + false, + number, + never, + never, + number + > + { + /** + * The duration specified in ms + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#animation-factory }\` + * @since 1.8 + */ + duration: number; + /** + * The element being animatied + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#animation-factory }\` + * @since 1.8 + */ + elem: TElement; + /** + * The final value of each property animating + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#animation-factory }\` + * @since 1.8 + */ + props: PlainObject; + /** + * The animation options + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#animation-factory }\` + * @since 1.8 + */ + opts: EffectsOptions; + /** + * The original properties before being filtered + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#animation-factory }\` + * @since 1.8 + */ + originalProps: PlainObject; + /** + * The original options before being filtered + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#animation-factory }\` + * @since 1.8 + */ + originalOpts: EffectsOptions; + /** + * The numeric value of `new Date()` when the animation began + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#animation-factory }\` + * @since 1.8 + */ + startTime: number; + /** + * The animations tweens. + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#animation-factory }\` + * @since 1.8 + */ + tweens: Array>; + /** + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#animation-factory }\` + * @since 1.8 + */ + createTween(propName: string, finalValue: number): Tween; + /** + * Stops the animation early, optionally going to the end. + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#animation-factory }\` + * @since 1.8 + */ + stop(gotoEnd: boolean): this; + } + + /** + * A "Tweener" is a function responsible for creating a tween object, and you might want to override these if you want to implement complex values ( like a clip/transform array matrix ) in a single property. + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tweeners }\` + * @since 1.8 + */ + type Tweener = (this: Animation, propName: string, finalValue: number) => Tween; + + /** + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tweens }\` + * @since 1.8 + */ + interface TweenStatic { + /** + * `jQuery.Tween.propHooks[ prop ]` is a hook point that replaces `jQuery.fx.step[ prop ]` (which is being deprecated.) These hooks are used by the tween to get and set values on elements. + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tween-hooks }\` + * @since 1.8 + * @example +```javascript +jQuery.Tween.propHooks[ property ] = { + get: function( tween ) { + // get tween.prop from tween.elem and return it + }, + set: function( tween ) { + // set tween.prop on tween.elem to tween.now + tween.unit + } +} +``` + */ + propHooks: PropHooks; + /** + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tweens }\` + * @since 1.8 + */ + ( + elem: TElement, + options: EffectsOptions, + prop: string, + end: number, + easing?: string, + unit?: string, + ): Tween; + } + + /** + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tweens }\` + * @since 1.8 + */ + // This should be a class but doesn't work correctly under the JQuery namespace. Tween should be an inner class of jQuery. + interface Tween { + /** + * The easing used + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tweens }\` + * @since 1.8 + */ + easing: string; + /** + * The element being animated + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tweens }\` + * @since 1.8 + */ + elem: TElement; + /** + * The ending value of the tween + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tweens }\` + * @since 1.8 + */ + end: number; + /** + * The current value of the tween + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tweens }\` + * @since 1.8 + */ + now: number; + /** + * A reference to the animation options + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tweens }\` + * @since 1.8 + */ + options: EffectsOptions; + // Undocumented. Is this intended to be public? + pos?: number | undefined; + /** + * The property being animated + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tweens }\` + * @since 1.8 + */ + prop: string; + /** + * The starting value of the tween + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tweens }\` + * @since 1.8 + */ + start: number; + /** + * The CSS unit for the tween + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tweens }\` + * @since 1.8 + */ + unit: string; + /** + * Reads the current value for property from the element + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tweens }\` + * @since 1.8 + */ + cur(): any; + /** + * Updates the value for the property on the animated elemd. + * @param progress A number from 0 to 1. + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tweens }\` + * @since 1.8 + */ + run(progress: number): this; + } + + /** + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tween-hooks }\` + * @since 1.8 + */ + // Workaround for TypeScript 2.3 which does not have support for weak types handling. + type PropHook = { + /** + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tween-hooks }\` + * @since 1.8 + */ + get(tween: Tween): any; + } | { + /** + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tween-hooks }\` + * @since 1.8 + */ + set(tween: Tween): void; + } | { + [key: string]: never; + }; + + /** + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#tween-hooks }\` + * @since 1.8 + */ + interface PropHooks { + [property: string]: PropHook; + } + + // #endregion + + // region Easing + // #region Easing + + type EasingMethod = (percent: number) => number; + + interface Easings { + [name: string]: EasingMethod; + } + + // #endregion + + // region Effects (fx) + // #region Effects (fx) + + interface Effects { + /** + * The rate (in milliseconds) at which animations fire. + * @see \`{@link https://api.jquery.com/jQuery.fx.interval/ }\` + * @since 1.4.3 + * @deprecated ​ Deprecated since 3.0. See \`{@link https://api.jquery.com/jQuery.fx.interval/ }\`. + * + * **Cause**: As of jQuery 3.0 the `jQuery.fx.interval` property can be used to change the animation interval only on browsers that do not support the `window.requestAnimationFrame()` method. That is currently only Internet Explorer 9 and the Android Browser. Once support is dropped for these browsers, the property will serve no purpose and it will be removed. + * + * **Solution**: Find and remove code that changes or uses `jQuery.fx.interval`. If the value is being used by code in your page or a plugin, the code may be making assumptions that are no longer valid. The default value of `jQuery.fx.interval` is `13` (milliseconds), which could be used instead of accessing this property. + * @example ​ ````Cause all animations to run with less frames. +```html + + + + + jQuery.fx.interval demo + + + + +​ +

      +
      +​ + + + +``` + */ + interval: number; + /** + * Globally disable all animations. + * @see \`{@link https://api.jquery.com/jQuery.fx.off/ }\` + * @since 1.3 + * @example ​ ````Toggle animation on and off +```html + + + + + jQuery.fx.off demo + + + + +​ + + +
      +​ + + + +``` + */ + off: boolean; + /** + * @deprecated ​ Deprecated since 1.8. Use \`{@link Tween.propHooks jQuery.Tween.propHooks}\`. + * + * `jQuery.fx.step` functions are being replaced by `jQuery.Tween.propHooks` and may eventually be removed, but are still supported via the default tween propHook. + */ + step: PlainObject>; + /** + * _overridable_ Clears up the `setInterval` + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#plugging-in-a-different-timer-loop }\` + * @since 1.8 + */ + stop(): void; + /** + * Calls `.run()` on each object in the `jQuery.timers` array, removing it from the array if `.run()` returns a falsy value. Calls `jQuery.fx.stop()` whenever there are no timers remaining. + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#plugging-in-a-different-timer-loop }\` + * @since 1.8 + */ + tick(): void; + /** + * _overridable_ Creates a `setInterval` if one doesn't already exist, and pushes `tickFunction` to the `jQuery.timers` array. `tickFunction` should also have `anim`, `elem`, and `queue` properties that reference the animation object, animated element, and queue option to facilitate `jQuery.fn.stop()` + * + * By overriding `fx.timer` and `fx.stop` you should be able to implement any animation tick behaviour you desire. (like using `requestAnimationFrame` instead of `setTimeout`.) + * + * There is an example of overriding the timer loop in \`{@link https://github.com/gnarf37/jquery-requestAnimationFrame jquery.requestAnimationFrame}\` + * @see \`{@link https://gist.github.com/gnarf/54829d408993526fe475#plugging-in-a-different-timer-loop }\` + * @since 1.8 + */ + timer(tickFunction: TickFunction): void; + } + + /** + * @deprecated ​ Deprecated since 1.8. Use \`{@link Tween.propHooks jQuery.Tween.propHooks}\`. + * + * `jQuery.fx.step` functions are being replaced by `jQuery.Tween.propHooks` and may eventually be removed, but are still supported via the default tween propHook. + */ + type AnimationHook = (fx: Tween) => void; + + interface TickFunction { + anim: Animation; + elem: TElement; + queue: boolean | string; + (): any; + } + + // #endregion + + // region Queue + // #region Queue + + // TODO: Is the first element always a string or is that specific to the 'fx' queue? + type Queue = { 0: string } & Array>; + + type QueueFunction = (this: TElement, next: () => void) => void; + + // #endregion + + // region Speed + // #region Speed + + // Workaround for TypeScript 2.3 which does not have support for weak types handling. + type SpeedSettings = { + /** + * A string or number determining how long the animation will run. + */ + duration: Duration; + } | { + /** + * A string indicating which easing function to use for the transition. + */ + easing: string; + } | { + /** + * A function to call once the animation is complete. + */ + complete(this: TElement): void; + } | { + [key: string]: never; + }; + + // #endregion + + // #endregion + + // region Events + // #region Events + + // region Event + // #region Event + + // This should be a class but doesn't work correctly under the JQuery namespace. Event should be an inner class of jQuery. + + /** + * jQuery's event system normalizes the event object according to W3C standards. The event object is guaranteed to be passed to the event handler (no checks for window.event required). It normalizes the target, relatedTarget, which, metaKey and pageX/Y properties and provides both stopPropagation() and preventDefault() methods. + * + * Those properties are all documented, and accompanied by examples, on the \`{@link http://api.jquery.com/category/events/event-object/ Event object}\` page. + * + * The standard events in the Document Object Model are: `blur`, `focus`, `load`, `resize`, `scroll`, `unload`, `beforeunload`, `click`, `dblclick`, `mousedown`, `mouseup`, `mousemove`, `mouseover`, `mouseout`, `mouseenter`, `mouseleave`, `change`, `select`, `submit`, `keydown`, `keypress`, and `keyup`. Since the DOM event names have predefined meanings for some elements, using them for other purposes is not recommended. jQuery's event model can trigger an event by any name on an element, and it is propagated up the DOM tree to which that element belongs, if any. + * @see \`{@link https://api.jquery.com/category/events/event-object/ }\` + */ + interface EventStatic { + /** + * The jQuery.Event constructor is exposed and can be used when calling trigger. The new operator is optional. + * + * Check \`{@link https://api.jquery.com/trigger/ trigger}\`'s documentation to see how to combine it with your own event object. + * @see \`{@link https://api.jquery.com/category/events/event-object/ }\` + * @since 1.6 + * @example +```javascript +//Create a new jQuery.Event object without the "new" operator. +var e = jQuery.Event( "click" ); +​ +// trigger an artificial click event +jQuery( "body" ).trigger( e ); +``` + * @example +```javascript +// Create a new jQuery.Event object with specified event properties. +var e = jQuery.Event( "keydown", { keyCode: 64 } ); +​ +// trigger an artificial keydown event with keyCode 64 +jQuery( "body" ).trigger( e ); +``` + */ + (event: string, properties?: T): Event & T; + /** + * The jQuery.Event constructor is exposed and can be used when calling trigger. The new operator is optional. + * + * Check \`{@link https://api.jquery.com/trigger/ trigger}\`'s documentation to see how to combine it with your own event object. + * @see \`{@link https://api.jquery.com/category/events/event-object/ }\` + * @since 1.6 + * @example +```javascript +//Create a new jQuery.Event object without the "new" operator. +var e = jQuery.Event( "click" ); +​ +// trigger an artificial click event +jQuery( "body" ).trigger( e ); +``` + * @example +```javascript +// Create a new jQuery.Event object with specified event properties. +var e = jQuery.Event( "keydown", { keyCode: 64 } ); +​ +// trigger an artificial keydown event with keyCode 64 +jQuery( "body" ).trigger( e ); +``` + */ + new(event: string, properties?: T): Event & T; + } + + /** + * jQuery's event system normalizes the event object according to W3C standards. The event object is guaranteed to be passed to the event handler (no checks for window.event required). It normalizes the target, relatedTarget, which, metaKey and pageX/Y properties and provides both stopPropagation() and preventDefault() methods. + * + * Those properties are all documented, and accompanied by examples, on the \`{@link http://api.jquery.com/category/events/event-object/ Event object}\` page. + * + * The standard events in the Document Object Model are: `blur`, `focus`, `load`, `resize`, `scroll`, `unload`, `beforeunload`, `click`, `dblclick`, `mousedown`, `mouseup`, `mousemove`, `mouseover`, `mouseout`, `mouseenter`, `mouseleave`, `change`, `select`, `submit`, `keydown`, `keypress`, and `keyup`. Since the DOM event names have predefined meanings for some elements, using them for other purposes is not recommended. jQuery's event model can trigger an event by any name on an element, and it is propagated up the DOM tree to which that element belongs, if any. + * @see \`{@link https://api.jquery.com/category/events/event-object/ }\` + * @see \`{@link TriggeredEvent }\` + */ + interface Event { + // region Copied properties + // #region Copied properties + + // Event + + bubbles: boolean | undefined; + cancelable: boolean | undefined; + eventPhase: number | undefined; + + // UIEvent + + detail: number | undefined; + view: Window | undefined; + + // MouseEvent + + button: number | undefined; + buttons: number | undefined; + clientX: number | undefined; + clientY: number | undefined; + offsetX: number | undefined; + offsetY: number | undefined; + /** + * The mouse position relative to the left edge of the document. + * @see \`{@link https://api.jquery.com/event.pageX/ }\` + * @since 1.0.4 + * @example ​ ````Show the mouse position relative to the left and top edges of the document (within this iframe). +```html + + + + + event.pageX demo + + + + +​ +
      +​ + +​ + + +``` + */ + pageX: number | undefined; + /** + * The mouse position relative to the top edge of the document. + * @see \`{@link https://api.jquery.com/event.pageY/ }\` + * @since 1.0.4 + * @example ​ ````Show the mouse position relative to the left and top edges of the document (within this iframe). +```html + + + + + event.pageY demo + + + + +​ +
      +​ + +​ + + +``` + */ + pageY: number | undefined; + screenX: number | undefined; + screenY: number | undefined; + /** @deprecated */ + toElement: Element | undefined; + + // PointerEvent + + pointerId: number | undefined; + pointerType: string | undefined; + + // KeyboardEvent + + /** @deprecated */ + char: string | undefined; + /** @deprecated */ + charCode: number | undefined; + key: string | undefined; + /** @deprecated */ + keyCode: number | undefined; + + // TouchEvent + + changedTouches: TouchList | undefined; + targetTouches: TouchList | undefined; + touches: TouchList | undefined; + + // MouseEvent, KeyboardEvent + + /** + * For key or mouse events, this property indicates the specific key or button that was pressed. + * @see \`{@link https://api.jquery.com/event.which/ }\` + * @since 1.1.3 + * @example ​ ````Log which key was depressed. +```html + + + + + event.which demo + + + +​ + +
      +​ + +​ + + +``` + * @example ​ ````Log which mouse button was depressed. +```html + + + + + event.which demo + + + +​ + +
      +​ + +​ + + +``` + */ + which: number | undefined; + + // MouseEvent, KeyboardEvent, TouchEvent + + altKey: boolean | undefined; + ctrlKey: boolean | undefined; + /** + * Indicates whether the META key was pressed when the event fired. + * @see \`{@link https://api.jquery.com/event.metaKey/ }\` + * @since 1.0.4 + * @example ​ ````Determine whether the META key was pressed when the event fired. +```html + + + + + event.metaKey demo + + + + +​ + +
      +​ + +​ + + +``` + */ + metaKey: boolean | undefined; + shiftKey: boolean | undefined; + + // #endregion + + /** + * The difference in milliseconds between the time the browser created the event and January 1, 1970. + * @see \`{@link https://api.jquery.com/event.timeStamp/ }\` + * @since 1.2.6 + * @example ​ ````Display the time since the click handler last executed. +```html + + + + + event.timeStamp demo + + + + +​ +
      Click.
      +​ + +​ + + +``` + */ + timeStamp: number; + /** + * Describes the nature of the event. + * @see \`{@link https://api.jquery.com/event.type/ }\` + * @since 1.0 + * @example ​ ````On all anchor clicks, alert the event type. +```javascript +$( "a" ).click(function( event ) { + alert( event.type ); // "click" +}); +``` + */ + type: string; + /** + * Returns whether event.preventDefault() was ever called on this event object. + * @see \`{@link https://api.jquery.com/event.isDefaultPrevented/ }\` + * @since 1.3 + * @example ​ ````Checks whether event.preventDefault() was called. +```javascript +$( "a" ).click(function( event ) { + alert( event.isDefaultPrevented() ); // false + event.preventDefault(); + alert( event.isDefaultPrevented() ); // true +}); +``` + */ + isDefaultPrevented(): boolean; + /** + * Returns whether event.stopImmediatePropagation() was ever called on this event object. + * @see \`{@link https://api.jquery.com/event.isImmediatePropagationStopped/ }\` + * @since 1.3 + * @example ​ ````Checks whether event.stopImmediatePropagation() was called. +```html + + + + + event.isImmediatePropagationStopped demo + + + +​ + +
      + ​ + +​ + + +``` + */ + isImmediatePropagationStopped(): boolean; + /** + * Returns whether event.stopPropagation() was ever called on this event object. + * @see \`{@link https://api.jquery.com/event.isPropagationStopped/ }\` + * @since 1.3 + * @example ​ ````Checks whether event.stopPropagation() was called +```html + + + + + event.isPropagationStopped demo + + + +​ + +
      + ​ + +​ + + +``` + */ + isPropagationStopped(): boolean; + /** + * If this method is called, the default action of the event will not be triggered. + * @see \`{@link https://api.jquery.com/event.preventDefault/ }\` + * @since 1.0 + * @example ​ ````Cancel the default action (navigation) of the click. +```html + + + + + event.preventDefault demo + + + +​ +default click action is prevented +
      +​ + +​ + + +``` + */ + preventDefault(): void; + /** + * Keeps the rest of the handlers from being executed and prevents the event from bubbling up the DOM tree. + * @see \`{@link https://api.jquery.com/event.stopImmediatePropagation/ }\` + * @since 1.3 + * @example ​ ````Prevents other event handlers from being called. +```html + + + + + event.stopImmediatePropagation demo + + + + +​ +

      paragraph

      +
      division
      +​ + +​ + + +``` + */ + stopImmediatePropagation(): void; + /** + * Prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event. + * @see \`{@link https://api.jquery.com/event.stopPropagation/ }\` + * @since 1.0 + * @example ​ ````Kill the bubbling on the click event. +```javascript +$( "p" ).click(function( event ) { + event.stopPropagation(); + // Do something +}); +``` + */ + stopPropagation(): void; + } + + // #endregion + + /** + * Base type for jQuery events that have been triggered (including events triggered on plain objects). + */ + interface TriggeredEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends Event { + /** + * The current DOM element within the event bubbling phase. + * @see \`{@link https://api.jquery.com/event.currentTarget/ }\` + * @since 1.3 + * @example ​ ````Alert that currentTarget matches the `this` keyword. +```javascript +$( "p" ).click(function( event ) { + alert( event.currentTarget === this ); // true +}); +``` + */ + currentTarget: TCurrentTarget; + /** + * The element where the currently-called jQuery event handler was attached. + * @see \`{@link https://api.jquery.com/event.delegateTarget/ }\` + * @since 1.7 + * @example ​ ````When a button in any box class is clicked, change the box's background color to red. +```javascript +$( ".box" ).on( "click", "button", function( event ) { + $( event.delegateTarget ).css( "background-color", "red" ); +}); +``` + */ + delegateTarget: TDelegateTarget; + /** + * The DOM element that initiated the event. + * @see \`{@link https://api.jquery.com/event.target/ }\` + * @since 1.0 + * @example ​ ````Display the tag's name on click +```html + + + + + event.target demo + + + + +​ +
      +
      +

      + click +

      +
      +​ + +​ + + +``` + * @example ​ ````Implements a simple event delegation: The click handler is added to an unordered list, and the children of its li children are hidden. Clicking one of the li children toggles (see toggle()) their children. +```html + + + + + event.target demo + + + +​ +
        +
      • item 1 +
          +
        • sub item 1-a
        • +
        • sub item 1-b
        • +
        +
      • +
      • item 2 +
          +
        • sub item 2-a
        • +
        • sub item 2-b
        • +
        +
      • +
      +​ + +​ + + +``` + */ + target: TTarget; + + /** + * An optional object of data passed to an event method when the current executing handler is bound. + * @see \`{@link https://api.jquery.com/event.data/ }\` + * @since 1.1 + * @example ​ ````Within a for loop, pass the value of i to the .on() method so that the current iteration's value is preserved. +```html + + + + + event.data demo + + + +​ + + + + + +​ +
      +​ + +​ + + +``` + */ + data: TData; + + /** + * The namespace specified when the event was triggered. + * @see \`{@link https://api.jquery.com/event.namespace/ }\` + * @since 1.4.3 + * @example ​ ````Determine the event namespace used. +```html + + + + + event.namespace demo + + + +​ + +

      +​ + +​ + + +``` + */ + namespace?: string | undefined; + originalEvent?: _Event | undefined; + /** + * The last value returned by an event handler that was triggered by this event, unless the value was undefined. + * @see \`{@link https://api.jquery.com/event.result/ }\` + * @since 1.3 + * @example ​ ````Display previous handler's return value +```html + + + + + event.result demo + + + +​ + +

      +​ + +​ + + +``` + */ + result?: any; + } + + // region Event + // #region Event + + interface EventBase< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends TriggeredEvent { + /** + * The other DOM element involved in the event, if any. + * @see \`{@link https://api.jquery.com/event.relatedTarget/ }\` + * @since 1.1.4 + * @example ​ ````On mouseout of anchors, alert the element type being entered. +```javascript +$( "a" ).mouseout(function( event ) { + alert( event.relatedTarget.nodeName ); // "DIV" +}); +``` + */ + relatedTarget?: undefined; + + // Event + + bubbles: boolean; + cancelable: boolean; + eventPhase: number; + + // UIEvent + + detail: undefined; + view: undefined; + + // MouseEvent + + button: undefined; + buttons: undefined; + clientX: undefined; + clientY: undefined; + offsetX: undefined; + offsetY: undefined; + /** + * The mouse position relative to the left edge of the document. + * @see \`{@link https://api.jquery.com/event.pageX/ }\` + * @since 1.0.4 + * @example ​ ````Show the mouse position relative to the left and top edges of the document (within this iframe). +```html + + + + + event.pageX demo + + + + +​ +
      +​ + +​ + + +``` + */ + pageX: undefined; + /** + * The mouse position relative to the top edge of the document. + * @see \`{@link https://api.jquery.com/event.pageY/ }\` + * @since 1.0.4 + * @example ​ ````Show the mouse position relative to the left and top edges of the document (within this iframe). +```html + + + + + event.pageY demo + + + + +​ +
      +​ + +​ + + +``` + */ + pageY: undefined; + screenX: undefined; + screenY: undefined; + /** @deprecated */ + toElement: undefined; + + // PointerEvent + + pointerId: undefined; + pointerType: undefined; + + // KeyboardEvent + + /** @deprecated */ + char: undefined; + /** @deprecated */ + charCode: undefined; + key: undefined; + /** @deprecated */ + keyCode: undefined; + + // TouchEvent + + changedTouches: undefined; + targetTouches: undefined; + touches: undefined; + + // MouseEvent, KeyboardEvent + + /** + * For key or mouse events, this property indicates the specific key or button that was pressed. + * @see \`{@link https://api.jquery.com/event.which/ }\` + * @since 1.1.3 + * @example ​ ````Log which key was depressed. +```html + + + + + event.which demo + + + +​ + +
      +​ + +​ + + +``` + * @example ​ ````Log which mouse button was depressed. +```html + + + + + event.which demo + + + +​ + +
      +​ + +​ + + +``` + */ + which: undefined; + + // MouseEvent, KeyboardEvent, TouchEvent + + altKey: undefined; + ctrlKey: undefined; + /** + * Indicates whether the META key was pressed when the event fired. + * @see \`{@link https://api.jquery.com/event.metaKey/ }\` + * @since 1.0.4 + * @example ​ ````Determine whether the META key was pressed when the event fired. +```html + + + + + event.metaKey demo + + + + +​ + +
      +​ + +​ + + +``` + */ + metaKey: undefined; + shiftKey: undefined; + + originalEvent?: _Event | undefined; + } + + interface ChangeEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends EventBase { + type: "change"; + } + + interface ResizeEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends EventBase { + type: "resize"; + } + + interface ScrollEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends EventBase { + type: "scroll"; + } + + interface SelectEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends EventBase { + type: "select"; + } + + interface SubmitEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends EventBase { + type: "submit"; + } + + // #endregion + + // region UIEvent + // #region UIEvent + + interface UIEventBase< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends TriggeredEvent { + // Event + + bubbles: boolean; + cancelable: boolean; + eventPhase: number; + + // UIEvent + + detail: number; + view: Window; + + originalEvent?: _UIEvent | undefined; + } + + // region MouseEvent + // #region MouseEvent + + interface MouseEventBase< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends UIEventBase { + /** + * The other DOM element involved in the event, if any. + * @see \`{@link https://api.jquery.com/event.relatedTarget/ }\` + * @since 1.1.4 + * @example ​ ````On mouseout of anchors, alert the element type being entered. +```javascript +$( "a" ).mouseout(function( event ) { + alert( event.relatedTarget.nodeName ); // "DIV" +}); +``` + */ + relatedTarget?: EventTarget | null | undefined; + + // MouseEvent + + button: number; + buttons: number; + clientX: number; + clientY: number; + offsetX: number; + offsetY: number; + /** + * The mouse position relative to the left edge of the document. + * @see \`{@link https://api.jquery.com/event.pageX/ }\` + * @since 1.0.4 + * @example ​ ````Show the mouse position relative to the left and top edges of the document (within this iframe). +```html + + + + + event.pageX demo + + + + +​ +
      +​ + +​ + + +``` + */ + pageX: number; + /** + * The mouse position relative to the top edge of the document. + * @see \`{@link https://api.jquery.com/event.pageY/ }\` + * @since 1.0.4 + * @example ​ ````Show the mouse position relative to the left and top edges of the document (within this iframe). +```html + + + + + event.pageY demo + + + + +​ +
      +​ + +​ + + +``` + */ + pageY: number; + screenX: number; + screenY: number; + /** @deprecated */ + toElement: Element; + + // PointerEvent + + pointerId: undefined; + pointerType: undefined; + + // KeyboardEvent + + /** @deprecated */ + char: undefined; + /** @deprecated */ + charCode: undefined; + key: undefined; + /** @deprecated */ + keyCode: undefined; + + // TouchEvent + + changedTouches: undefined; + targetTouches: undefined; + touches: undefined; + + // MouseEvent, KeyboardEvent + + /** + * For key or mouse events, this property indicates the specific key or button that was pressed. + * @see \`{@link https://api.jquery.com/event.which/ }\` + * @since 1.1.3 + * @example ​ ````Log which key was depressed. +```html + + + + + event.which demo + + + +​ + +
      +​ + +​ + + +``` + * @example ​ ````Log which mouse button was depressed. +```html + + + + + event.which demo + + + +​ + +
      +​ + +​ + + +``` + */ + which: number; + + // MouseEvent, KeyboardEvent, TouchEvent + + altKey: boolean; + ctrlKey: boolean; + /** + * Indicates whether the META key was pressed when the event fired. + * @see \`{@link https://api.jquery.com/event.metaKey/ }\` + * @since 1.0.4 + * @example ​ ````Determine whether the META key was pressed when the event fired. +```html + + + + + event.metaKey demo + + + + +​ + +
      +​ + +​ + + +``` + */ + metaKey: boolean; + shiftKey: boolean; + + originalEvent?: _MouseEvent | undefined; + } + + interface ClickEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends MouseEventBase { + /** + * The other DOM element involved in the event, if any. + * @see \`{@link https://api.jquery.com/event.relatedTarget/ }\` + * @since 1.1.4 + * @example ​ ````On mouseout of anchors, alert the element type being entered. + ```javascript + $( "a" ).mouseout(function( event ) { + alert( event.relatedTarget.nodeName ); // "DIV" + }); + ``` + */ + relatedTarget?: null | undefined; + + type: "click"; + } + + interface ContextMenuEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends MouseEventBase { + /** + * The other DOM element involved in the event, if any. + * @see \`{@link https://api.jquery.com/event.relatedTarget/ }\` + * @since 1.1.4 + * @example ​ ````On mouseout of anchors, alert the element type being entered. + ```javascript + $( "a" ).mouseout(function( event ) { + alert( event.relatedTarget.nodeName ); // "DIV" + }); + ``` + */ + relatedTarget?: null | undefined; + + type: "contextmenu"; + } + + interface DoubleClickEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends MouseEventBase { + /** + * The other DOM element involved in the event, if any. + * @see \`{@link https://api.jquery.com/event.relatedTarget/ }\` + * @since 1.1.4 + * @example ​ ````On mouseout of anchors, alert the element type being entered. + ```javascript + $( "a" ).mouseout(function( event ) { + alert( event.relatedTarget.nodeName ); // "DIV" + }); + ``` + */ + relatedTarget?: null | undefined; + + type: "dblclick"; + } + + interface MouseDownEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends MouseEventBase { + /** + * The other DOM element involved in the event, if any. + * @see \`{@link https://api.jquery.com/event.relatedTarget/ }\` + * @since 1.1.4 + * @example ​ ````On mouseout of anchors, alert the element type being entered. + ```javascript + $( "a" ).mouseout(function( event ) { + alert( event.relatedTarget.nodeName ); // "DIV" + }); + ``` + */ + relatedTarget?: null | undefined; + + type: "mousedown"; + } + + interface MouseEnterEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends MouseEventBase { + // Special handling by jQuery. + type: "mouseover"; + } + + interface MouseLeaveEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends MouseEventBase { + // Special handling by jQuery. + type: "mouseout"; + } + + interface MouseMoveEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends MouseEventBase { + /** + * The other DOM element involved in the event, if any. + * @see \`{@link https://api.jquery.com/event.relatedTarget/ }\` + * @since 1.1.4 + * @example ​ ````On mouseout of anchors, alert the element type being entered. + ```javascript + $( "a" ).mouseout(function( event ) { + alert( event.relatedTarget.nodeName ); // "DIV" + }); + ``` + */ + relatedTarget?: null | undefined; + + type: "mousemove"; + } + + interface MouseOutEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends MouseEventBase { + type: "mouseout"; + } + + interface MouseOverEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends MouseEventBase { + type: "mouseover"; + } + + interface MouseUpEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends MouseEventBase { + /** + * The other DOM element involved in the event, if any. + * @see \`{@link https://api.jquery.com/event.relatedTarget/ }\` + * @since 1.1.4 + * @example ​ ````On mouseout of anchors, alert the element type being entered. + ```javascript + $( "a" ).mouseout(function( event ) { + alert( event.relatedTarget.nodeName ); // "DIV" + }); + ``` + */ + relatedTarget?: null | undefined; + + type: "mouseup"; + } + + // region DragEvent + // #region DragEvent + + interface DragEventBase< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends UIEventBase { + originalEvent?: _DragEvent | undefined; + } + + interface DragEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends DragEventBase { + type: "drag"; + } + + interface DragEndEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends DragEventBase { + type: "dragend"; + } + + interface DragEnterEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends DragEventBase { + type: "dragenter"; + } + + interface DragExitEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends DragEventBase { + type: "dragexit"; + } + + interface DragLeaveEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends DragEventBase { + type: "dragleave"; + } + + interface DragOverEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends DragEventBase { + type: "dragover"; + } + + interface DragStartEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends DragEventBase { + type: "dragstart"; + } + + interface DropEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends DragEventBase { + type: "drop"; + } + + // #endregion + + // #endregion + + // region KeyboardEvent + // #region KeyboardEvent + + interface KeyboardEventBase< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends UIEventBase { + /** + * The other DOM element involved in the event, if any. + * @see \`{@link https://api.jquery.com/event.relatedTarget/ }\` + * @since 1.1.4 + * @example ​ ````On mouseout of anchors, alert the element type being entered. +```javascript +$( "a" ).mouseout(function( event ) { + alert( event.relatedTarget.nodeName ); // "DIV" +}); +``` + */ + relatedTarget?: undefined; + + // MouseEvent + + button: undefined; + buttons: undefined; + clientX: undefined; + clientY: undefined; + offsetX: undefined; + offsetY: undefined; + /** + * The mouse position relative to the left edge of the document. + * @see \`{@link https://api.jquery.com/event.pageX/ }\` + * @since 1.0.4 + * @example ​ ````Show the mouse position relative to the left and top edges of the document (within this iframe). +```html + + + + + event.pageX demo + + + + +​ +
      +​ + +​ + + +``` + */ + pageX: undefined; + /** + * The mouse position relative to the top edge of the document. + * @see \`{@link https://api.jquery.com/event.pageY/ }\` + * @since 1.0.4 + * @example ​ ````Show the mouse position relative to the left and top edges of the document (within this iframe). +```html + + + + + event.pageY demo + + + + +​ +
      +​ + +​ + + +``` + */ + pageY: undefined; + screenX: undefined; + screenY: undefined; + /** @deprecated */ + toElement: undefined; + + // PointerEvent + + pointerId: undefined; + pointerType: undefined; + + // KeyboardEvent + + /** @deprecated */ + char: string | undefined; + /** @deprecated */ + charCode: number; + code: string; + key: string; + /** @deprecated */ + keyCode: number; + + // TouchEvent + + changedTouches: undefined; + targetTouches: undefined; + touches: undefined; + + // MouseEvent, KeyboardEvent + + /** + * For key or mouse events, this property indicates the specific key or button that was pressed. + * @see \`{@link https://api.jquery.com/event.which/ }\` + * @since 1.1.3 + * @example ​ ````Log which key was depressed. +```html + + + + + event.which demo + + + +​ + +
      +​ + +​ + + +``` + * @example ​ ````Log which mouse button was depressed. +```html + + + + + event.which demo + + + +​ + +
      +​ + +​ + + +``` + */ + which: number; + + // MouseEvent, KeyboardEvent, TouchEvent + + altKey: boolean; + ctrlKey: boolean; + /** + * Indicates whether the META key was pressed when the event fired. + * @see \`{@link https://api.jquery.com/event.metaKey/ }\` + * @since 1.0.4 + * @example ​ ````Determine whether the META key was pressed when the event fired. +```html + + + + + event.metaKey demo + + + + +​ + +
      +​ + +​ + + +``` + */ + metaKey: boolean; + shiftKey: boolean; + + originalEvent?: _KeyboardEvent | undefined; + } + + interface KeyDownEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends KeyboardEventBase { + type: "keydown"; + } + + interface KeyPressEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends KeyboardEventBase { + type: "keypress"; + } + + interface KeyUpEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends KeyboardEventBase { + type: "keyup"; + } + + // #endregion + + // region TouchEvent + // #region TouchEvent + + interface TouchEventBase< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends UIEventBase { + /** + * The other DOM element involved in the event, if any. + * @see \`{@link https://api.jquery.com/event.relatedTarget/ }\` + * @since 1.1.4 + * @example ​ ````On mouseout of anchors, alert the element type being entered. +```javascript +$( "a" ).mouseout(function( event ) { + alert( event.relatedTarget.nodeName ); // "DIV" +}); +``` + */ + relatedTarget?: undefined; + + // MouseEvent + + button: undefined; + buttons: undefined; + clientX: undefined; + clientY: undefined; + offsetX: undefined; + offsetY: undefined; + /** + * The mouse position relative to the left edge of the document. + * @see \`{@link https://api.jquery.com/event.pageX/ }\` + * @since 1.0.4 + * @example ​ ````Show the mouse position relative to the left and top edges of the document (within this iframe). +```html + + + + + event.pageX demo + + + + +​ +
      +​ + +​ + + +``` + */ + pageX: undefined; + /** + * The mouse position relative to the top edge of the document. + * @see \`{@link https://api.jquery.com/event.pageY/ }\` + * @since 1.0.4 + * @example ​ ````Show the mouse position relative to the left and top edges of the document (within this iframe). +```html + + + + + event.pageY demo + + + + +​ +
      +​ + +​ + + +``` + */ + pageY: undefined; + screenX: undefined; + screenY: undefined; + /** @deprecated */ + toElement: undefined; + + // PointerEvent + + pointerId: undefined; + pointerType: undefined; + + // KeyboardEvent + + /** @deprecated */ + char: undefined; + /** @deprecated */ + charCode: undefined; + key: undefined; + /** @deprecated */ + keyCode: undefined; + + // TouchEvent + + changedTouches: TouchList; + targetTouches: TouchList; + touches: TouchList; + + // MouseEvent, KeyboardEvent + + /** + * For key or mouse events, this property indicates the specific key or button that was pressed. + * @see \`{@link https://api.jquery.com/event.which/ }\` + * @since 1.1.3 + * @example ​ ````Log which key was depressed. +```html + + + + + event.which demo + + + +​ + +
      +​ + +​ + + +``` + * @example ​ ````Log which mouse button was depressed. +```html + + + + + event.which demo + + + +​ + +
      +​ + +​ + + +``` + */ + which: undefined; + + // MouseEvent, KeyboardEvent, TouchEvent + + altKey: boolean; + ctrlKey: boolean; + /** + * Indicates whether the META key was pressed when the event fired. + * @see \`{@link https://api.jquery.com/event.metaKey/ }\` + * @since 1.0.4 + * @example ​ ````Determine whether the META key was pressed when the event fired. +```html + + + + + event.metaKey demo + + + + +​ + +
      +​ + +​ + + +``` + */ + metaKey: boolean; + shiftKey: boolean; + + originalEvent?: _TouchEvent | undefined; + } + + interface TouchCancelEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends TouchEventBase { + type: "touchcancel"; + } + + interface TouchEndEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends TouchEventBase { + type: "touchend"; + } + + interface TouchMoveEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends TouchEventBase { + type: "touchmove"; + } + + interface TouchStartEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends TouchEventBase { + type: "touchstart"; + } + + // #endregion + + // region FocusEvent + // #region FocusEvent + + interface FocusEventBase< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends UIEventBase { + /** + * The other DOM element involved in the event, if any. + * @see \`{@link https://api.jquery.com/event.relatedTarget/ }\` + * @since 1.1.4 + * @example ​ ````On mouseout of anchors, alert the element type being entered. +```javascript +$( "a" ).mouseout(function( event ) { + alert( event.relatedTarget.nodeName ); // "DIV" +}); +``` + */ + relatedTarget?: EventTarget | null | undefined; + + // MouseEvent + + button: undefined; + buttons: undefined; + clientX: undefined; + clientY: undefined; + offsetX: undefined; + offsetY: undefined; + /** + * The mouse position relative to the left edge of the document. + * @see \`{@link https://api.jquery.com/event.pageX/ }\` + * @since 1.0.4 + * @example ​ ````Show the mouse position relative to the left and top edges of the document (within this iframe). +```html + + + + + event.pageX demo + + + + +​ +
      +​ + +​ + + +``` + */ + pageX: undefined; + /** + * The mouse position relative to the top edge of the document. + * @see \`{@link https://api.jquery.com/event.pageY/ }\` + * @since 1.0.4 + * @example ​ ````Show the mouse position relative to the left and top edges of the document (within this iframe). +```html + + + + + event.pageY demo + + + + +​ +
      +​ + +​ + + +``` + */ + pageY: undefined; + screenX: undefined; + screenY: undefined; + /** @deprecated */ + toElement: undefined; + + // PointerEvent + + pointerId: undefined; + pointerType: undefined; + + // KeyboardEvent + + /** @deprecated */ + char: undefined; + /** @deprecated */ + charCode: undefined; + key: undefined; + /** @deprecated */ + keyCode: undefined; + + // TouchEvent + + changedTouches: undefined; + targetTouches: undefined; + touches: undefined; + + // MouseEvent, KeyboardEvent + + /** + * For key or mouse events, this property indicates the specific key or button that was pressed. + * @see \`{@link https://api.jquery.com/event.which/ }\` + * @since 1.1.3 + * @example ​ ````Log which key was depressed. +```html + + + + + event.which demo + + + +​ + +
      +​ + +​ + + +``` + * @example ​ ````Log which mouse button was depressed. +```html + + + + + event.which demo + + + +​ + +
      +​ + +​ + + +``` + */ + which: undefined; + + // MouseEvent, KeyboardEvent, TouchEvent + + altKey: undefined; + ctrlKey: undefined; + /** + * Indicates whether the META key was pressed when the event fired. + * @see \`{@link https://api.jquery.com/event.metaKey/ }\` + * @since 1.0.4 + * @example ​ ````Determine whether the META key was pressed when the event fired. +```html + + + + + event.metaKey demo + + + + +​ + +
      +​ + +​ + + +``` + */ + metaKey: undefined; + shiftKey: undefined; + + originalEvent?: _FocusEvent | undefined; + } + + interface BlurEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends FocusEventBase { + type: "blur"; + } + + interface FocusEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends FocusEventBase { + type: "focus"; + } + + interface FocusInEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends FocusEventBase { + type: "focusin"; + } + + interface FocusOutEvent< + TDelegateTarget = any, + TData = any, + TCurrentTarget = any, + TTarget = any, + > extends FocusEventBase { + type: "focusout"; + } + + // #endregion + + // #endregion + + interface TypeToTriggeredEventMap< + TDelegateTarget, + TData, + TCurrentTarget, + TTarget, + > { + // Event + + change: ChangeEvent; + resize: ResizeEvent; + scroll: ScrollEvent; + select: SelectEvent; + submit: SubmitEvent; + + // UIEvent + + // MouseEvent + + click: ClickEvent; + contextmenu: ContextMenuEvent; + dblclick: DoubleClickEvent; + mousedown: MouseDownEvent; + mouseenter: MouseEnterEvent; + mouseleave: MouseLeaveEvent; + mousemove: MouseMoveEvent; + mouseout: MouseOutEvent; + mouseover: MouseOverEvent; + mouseup: MouseUpEvent; + + // DragEvent + + drag: DragEvent; + dragend: DragEndEvent; + dragenter: DragEnterEvent; + dragexit: DragExitEvent; + dragleave: DragLeaveEvent; + dragover: DragOverEvent; + dragstart: DragStartEvent; + drop: DropEvent; + + // KeyboardEvent + + keydown: KeyDownEvent; + keypress: KeyPressEvent; + keyup: KeyUpEvent; + + // TouchEvent + + touchcancel: TouchCancelEvent; + touchend: TouchEndEvent; + touchmove: TouchMoveEvent; + touchstart: TouchStartEvent; + + // FocusEvent + + blur: BlurEvent; + focus: FocusEvent; + focusin: FocusInEvent; + focusout: FocusOutEvent; + + [type: string]: TriggeredEvent; + } + + // Extra parameters can be passed from trigger() + type EventHandlerBase = (this: TContext, t: T, ...args: any[]) => any; + + type EventHandler< + TCurrentTarget, + TData = undefined, + > = EventHandlerBase>; + + type TypeEventHandler< + TDelegateTarget, + TData, + TCurrentTarget, + TTarget, + TType extends keyof TypeToTriggeredEventMap, + > = EventHandlerBase< + TCurrentTarget, + TypeToTriggeredEventMap[TType] + >; + + interface TypeEventHandlers< + TDelegateTarget, + TData, + TCurrentTarget, + TTarget, + > extends _TypeEventHandlers { + // No idea why it's necessary to include `object` in the union but otherwise TypeScript complains that + // derived types of Event are not assignable to Event. + [type: string]: + | TypeEventHandler + | false + | undefined + | object; + } + + type _TypeEventHandlers< + TDelegateTarget, + TData, + TCurrentTarget, + TTarget, + > = { + [TType in keyof TypeToTriggeredEventMap]?: + | TypeEventHandler + | false + | object; + }; + + // region Event extensions + // #region Event extensions + + interface EventExtensions { + /** + * The jQuery special event hooks are a set of per-event-name functions and properties that allow code to control the behavior of event processing within jQuery. The mechanism is similar to `fixHooks` in that the special event information is stored in `jQuery.event.special.NAME`, where `NAME` is the name of the special event. Event names are case sensitive. + * + * As with `fixHooks`, the special event hooks design assumes it will be very rare that two unrelated pieces of code want to process the same event name. Special event authors who need to modify events with existing hooks will need to take precautions to avoid introducing unwanted side-effects by clobbering those hooks. + * @see \`{@link https://learn.jquery.com/events/event-extensions/#special-event-hooks }\` + */ + special: SpecialEventHooks; + } + + // region Special event hooks + // #region Special event hooks + + /** + * The jQuery special event hooks are a set of per-event-name functions and properties that allow code to control the behavior of event processing within jQuery. The mechanism is similar to `fixHooks` in that the special event information is stored in `jQuery.event.special.NAME`, where `NAME` is the name of the special event. Event names are case sensitive. + * + * As with `fixHooks`, the special event hooks design assumes it will be very rare that two unrelated pieces of code want to process the same event name. Special event authors who need to modify events with existing hooks will need to take precautions to avoid introducing unwanted side-effects by clobbering those hooks. + * @see \`{@link https://learn.jquery.com/events/event-extensions/#special-event-hooks }\` + */ + // Workaround for TypeScript 2.3 which does not have support for weak types handling. + type SpecialEventHook = { + /** + * Indicates whether this event type should be bubbled when the `.trigger()` method is called; by default it is `false`, meaning that a triggered event will bubble to the element's parents up to the document (if attached to a document) and then to the window. Note that defining `noBubble` on an event will effectively prevent that event from being used for delegated events with `.trigger()`. + * @see \`{@link https://learn.jquery.com/events/event-extensions/#nobubble-boolean }\` + */ + noBubble: boolean; + } | { + /** + * When defined, these string properties specify that a special event should be handled like another event type until the event is delivered. The `bindType` is used if the event is attached directly, and the `delegateType` is used for delegated events. These types are generally DOM event types, and _should not_ be a special event themselves. + * @see \`{@link https://learn.jquery.com/events/event-extensions/#bindtype-string-delegatetype-string }\` + */ + bindType: string; + } | { + /** + * When defined, these string properties specify that a special event should be handled like another event type until the event is delivered. The `bindType` is used if the event is attached directly, and the `delegateType` is used for delegated events. These types are generally DOM event types, and _should not_ be a special event themselves. + * @see \`{@link https://learn.jquery.com/events/event-extensions/#bindtype-string-delegatetype-string }\` + */ + delegateType: string; + } | { + /** + * The setup hook is called the first time an event of a particular type is attached to an element; this provides the hook an opportunity to do processing that will apply to all events of this type on this element. The `this` keyword will be a reference to the element where the event is being attached and `eventHandle` is jQuery's event handler function. In most cases the `namespaces` argument should not be used, since it only represents the namespaces of the _first_ event being attached; subsequent events may not have this same namespaces. + * + * This hook can perform whatever processing it desires, including attaching its own event handlers to the element or to other elements and recording setup information on the element using the `jQuery.data()` method. If the setup hook wants jQuery to add a browser event (via `addEventListener` or `attachEvent`, depending on browser) it should return `false`. In all other cases, jQuery will not add the browser event, but will continue all its other bookkeeping for the event. This would be appropriate, for example, if the event was never fired by the browser but invoked by `.trigger()`. To attach the jQuery event handler in the setup hook, use the `eventHandle` argument. + * @see \`{@link https://learn.jquery.com/events/event-extensions/#setup-function-data-object-namespaces-eventhandle-function }\` + */ + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + setup(this: TTarget, data: TData, namespaces: string, eventHandle: EventHandler): void | false; + } | { + /** + * The teardown hook is called when the final event of a particular type is removed from an element. The `this` keyword will be a reference to the element where the event is being cleaned up. This hook should return `false` if it wants jQuery to remove the event from the browser's event system (via `removeEventListener` or `detachEvent`). In most cases, the setup and teardown hooks should return the same value. + * + * If the setup hook attached event handlers or added data to an element through a mechanism such as `jQuery.data()`, the teardown hook should reverse the process and remove them. jQuery will generally remove the data and events when an element is totally removed from the document, but failing to remove data or events on teardown will cause a memory leak if the element stays in the document. + * @see \`{@link https://learn.jquery.com/events/event-extensions/#teardown-function }\` + */ + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + teardown(this: TTarget): void | false; + } | { + /** + * Each time an event handler is added to an element through an API such as `.on()`, jQuery calls this hook. The `this` keyword will be the element to which the event handler is being added, and the `handleObj` argument is as described in the section above. The return value of this hook is ignored. + * @see \`{@link https://learn.jquery.com/events/event-extensions/#add-function-handleobj }\` + */ + add(this: TTarget, handleObj: HandleObject): void; + } | { + /** + * When an event handler is removed from an element using an API such as `.off()`, this hook is called. The `this` keyword will be the element where the handler is being removed, and the `handleObj` argument is as described in the section above. The return value of this hook is ignored. + * @see \`{@link https://learn.jquery.com/events/event-extensions/#remove-function-handleobj }\` + */ + remove(this: TTarget, handleObj: HandleObject): void; + } | { + /** + * Called when the `.trigger()` or `.triggerHandler()` methods are used to trigger an event for the special type from code, as opposed to events that originate from within the browser. The `this` keyword will be the element being triggered, and the event argument will be a `jQuery.Event` object constructed from the caller's input. At minimum, the event type, data, namespace, and target properties are set on the event. The data argument represents additional data passed by `.trigger()` if present. + * + * The trigger hook is called early in the process of triggering an event, just after the `jQuery.Event` object is constructed and before any handlers have been called. It can process the triggered event in any way, for example by calling `event.stopPropagation()` or `event.preventDefault()` before returning. If the hook returns `false`, jQuery does not perform any further event triggering actions and returns immediately. Otherwise, it performs the normal trigger processing, calling any event handlers for the element and bubbling the event (unless propagation is stopped in advance or `noBubble` was specified for the special event) to call event handlers attached to parent elements. + * @see \`{@link https://learn.jquery.com/events/event-extensions/#trigger-function-event-jquery-event-data-object }\` + */ + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + trigger(this: TTarget, event: Event, data: TData): void | false; + } | { + /** + * When the `.trigger()` method finishes running all the event handlers for an event, it also looks for and runs any method on the target object by the same name unless of the handlers called `event.preventDefault()`. So, `.trigger( "submit" )` will execute the `submit()` method on the element if one exists. When a `_default` hook is specified, the hook is called just prior to checking for and executing the element's default method. If this hook returns the value `false` the element's default method will be called; otherwise it is not. + * @see \`{@link https://learn.jquery.com/events/event-extensions/#_default-function-event-jquery-event-data-object }\` + */ + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + _default(event: TriggeredEvent, data: TData): void | false; + } | { + /** + * jQuery calls a handle hook when the event has occurred and jQuery would normally call the user's event handler specified by `.on()` or another event binding method. If the hook exists, jQuery calls it _instead_ of that event handler, passing it the event and any data passed from `.trigger()` if it was not a native event. The `this` keyword is the DOM element being handled, and `event.handleObj` property has the detailed event information. + * + * Based in the information it has, the handle hook should decide whether to call the original handler function which is in `event.handleObj.handler`. It can modify information in the event object before calling the original handler, but _must restore_ that data before returning or subsequent unrelated event handlers may act unpredictably. In most cases, the handle hook should return the result of the original handler, but that is at the discretion of the hook. The handle hook is unique in that it is the only special event function hook that is called under its original special event name when the type is mapped using `bindType` and `delegateType`. For that reason, it is almost always an error to have anything other than a handle hook present if the special event defines a `bindType` and `delegateType`, since those other hooks will never be called. + * @see \`{@link https://learn.jquery.com/events/event-extensions/#handle-function-event-jquery-event-data-object }\` + */ + handle( + this: TTarget, + event: TriggeredEvent & { handleObj: HandleObject }, + ...data: TData[] + ): void; + } | { + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + preDispatch(this: TTarget, event: Event): false | void; + } | { + postDispatch(this: TTarget, event: Event): void; + } | { + [key: string]: any; + }; + + interface SpecialEventHooks { + [event: string]: SpecialEventHook; + } + + /** + * Many of the special event hook functions below are passed a `handleObj` object that provides more information about the event, how it was attached, and its current state. This object and its contents should be treated as read-only data, and only the properties below are documented for use by special event handlers. + * @see \`{@link https://learn.jquery.com/events/event-extensions/#the-handleobj-object }\` + */ + interface HandleObject { + /** + * The type of event, such as `"click"`. When special event mapping is used via `bindType` or `delegateType`, this will be the mapped type. + */ + readonly type: string; + /** + * The original type name regardless of whether it was mapped via `bindType` or `delegateType`. So when a "pushy" event is mapped to "click" its `origType` would be "pushy". + */ + readonly origType: string; + /** + * Namespace(s), if any, provided when the event was attached, such as `"myPlugin"`. When multiple namespaces are given, they are separated by periods and sorted in ascending alphabetical order. If no namespaces are provided, this property is an empty string. + */ + readonly namespace: string; + /** + * For delegated events, this is the selector used to filter descendant elements and determine if the handler should be called. For directly bound events, this property is `null`. + */ + readonly selector: string | undefined | null; + /** + * The data, if any, passed to jQuery during event binding, e.g. `{ myData: 42 }`. If the data argument was omitted or `undefined`, this property is `undefined` as well. + */ + readonly data: TData; + /** + * Event handler function passed to jQuery during event binding. If `false` was passed during event binding, the handler refers to a single shared function that simply returns `false`. + */ + readonly handler: EventHandler; + } + + // #endregion + + // #endregion + + // #endregion + + interface NameValuePair { + name: string; + value: string; + } + + // region Coordinates + // #region Coordinates + + interface Coordinates { + left: number; + top: number; + } + + // Workaround for TypeScript 2.3 which does not have support for weak types handling. + type CoordinatesPartial = + | Pick + | Pick + | { [key: string]: never }; + + // #endregion + + // region Val hooks + // #region Val hooks + + // Workaround for TypeScript 2.3 which does not have support for weak types handling. + type ValHook = { + get(elem: TElement): any; + } | { + set(elem: TElement, value: any): any; + } | { + [key: string]: never; + }; + + interface ValHooks { + // Set to HTMLElement to minimize breaks but should probably be Element. + [nodeName: string]: ValHook; + } + + // #endregion + + type _Falsy = false | null | undefined | 0 | "" | typeof document.all; +} + +declare const jQuery: JQueryStatic; +declare const $: JQueryStatic; + +type _Event = Event; +type _UIEvent = UIEvent; +type _MouseEvent = MouseEvent; +type _DragEvent = DragEvent; +type _KeyboardEvent = KeyboardEvent; +type _TouchEvent = TouchEvent; +type _FocusEvent = FocusEvent; + +// region ES5 compatibility +// #region ES5 compatibility + +// Forward declaration of `Iterable`. +// eslint-disable-next-line @typescript-eslint/no-empty-interface +interface Iterable {} + +interface SymbolConstructor { + /** + * A String value that is used in the creation of the default string description of an object. + * Called by the built-in method Object.prototype.toString. + */ + readonly toStringTag: symbol; +} + +declare var Symbol: SymbolConstructor; + +// #endregion diff --git a/node_modules/@types/jquery/package.json b/node_modules/@types/jquery/package.json new file mode 100644 index 0000000..9e33abc --- /dev/null +++ b/node_modules/@types/jquery/package.json @@ -0,0 +1,132 @@ +{ + "name": "@types/jquery", + "version": "3.5.31", + "description": "TypeScript definitions for jquery", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jquery", + "license": "MIT", + "contributors": [ + { + "name": "Leonard Thieu", + "githubUsername": "leonard-thieu", + "url": "https://github.com/leonard-thieu" + }, + { + "name": "Boris Yankov", + "githubUsername": "borisyankov", + "url": "https://github.com/borisyankov" + }, + { + "name": "Christian Hoffmeister", + "githubUsername": "choffmeister", + "url": "https://github.com/choffmeister" + }, + { + "name": "Steve Fenton", + "githubUsername": "Steve-Fenton", + "url": "https://github.com/Steve-Fenton" + }, + { + "name": "Diullei Gomes", + "githubUsername": "Diullei", + "url": "https://github.com/Diullei" + }, + { + "name": "Tass Iliopoulos", + "githubUsername": "tasoili", + "url": "https://github.com/tasoili" + }, + { + "name": "Sean Hill", + "githubUsername": "seanski", + "url": "https://github.com/seanski" + }, + { + "name": "Guus Goossens", + "githubUsername": "Guuz", + "url": "https://github.com/Guuz" + }, + { + "name": "Kelly Summerlin", + "githubUsername": "ksummerlin", + "url": "https://github.com/ksummerlin" + }, + { + "name": "Basarat Ali Syed", + "githubUsername": "basarat", + "url": "https://github.com/basarat" + }, + { + "name": "Nicholas Wolverson", + "githubUsername": "nwolverson", + "url": "https://github.com/nwolverson" + }, + { + "name": "Derek Cicerone", + "githubUsername": "derekcicerone", + "url": "https://github.com/derekcicerone" + }, + { + "name": "Andrew Gaspar", + "githubUsername": "AndrewGaspar", + "url": "https://github.com/AndrewGaspar" + }, + { + "name": "Seikichi Kondo", + "githubUsername": "seikichi", + "url": "https://github.com/seikichi" + }, + { + "name": "Benjamin Jackman", + "githubUsername": "benjaminjackman", + "url": "https://github.com/benjaminjackman" + }, + { + "name": "Josh Strobl", + "githubUsername": "JoshStrobl", + "url": "https://github.com/JoshStrobl" + }, + { + "name": "John Reilly", + "githubUsername": "johnnyreilly", + "url": "https://github.com/johnnyreilly" + }, + { + "name": "Dick van den Brink", + "githubUsername": "DickvdBrink", + "url": "https://github.com/DickvdBrink" + }, + { + "name": "Thomas Schulz", + "githubUsername": "King2500", + "url": "https://github.com/King2500" + }, + { + "name": "Terry Mun", + "githubUsername": "terrymun", + "url": "https://github.com/terrymun" + }, + { + "name": "Martin Badin", + "githubUsername": "martin-badin", + "url": "https://github.com/martin-badin" + }, + { + "name": "Chris Frewin", + "githubUsername": "princefishthrower", + "url": "https://github.com/princefishthrower" + } + ], + "main": "", + "types": "index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/jquery" + }, + "scripts": {}, + "dependencies": { + "@types/sizzle": "*" + }, + "typesPublisherContentHash": "6cfdf9b26cfe360ba66dfb7ed330168ae7a66b3ab3cc613ee135d7a5f424f09b", + "typeScriptVersion": "4.8" +} \ No newline at end of file diff --git a/node_modules/@types/prop-types/LICENSE b/node_modules/@types/prop-types/LICENSE new file mode 100644 index 0000000..9e841e7 --- /dev/null +++ b/node_modules/@types/prop-types/LICENSE @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + 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/@types/prop-types/README.md b/node_modules/@types/prop-types/README.md new file mode 100644 index 0000000..70e4d58 --- /dev/null +++ b/node_modules/@types/prop-types/README.md @@ -0,0 +1,15 @@ +# Installation +> `npm install --save @types/prop-types` + +# Summary +This package contains type definitions for prop-types (https://github.com/reactjs/prop-types). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/prop-types. + +### Additional Details + * Last updated: Fri, 22 Mar 2024 18:07:25 GMT + * Dependencies: none + +# Credits +These definitions were written by [DovydasNavickas](https://github.com/DovydasNavickas), [Ferdy Budhidharma](https://github.com/ferdaber), and [Sebastian Silbermann](https://github.com/eps1lon). diff --git a/node_modules/@types/prop-types/index.d.ts b/node_modules/@types/prop-types/index.d.ts new file mode 100644 index 0000000..13ccec2 --- /dev/null +++ b/node_modules/@types/prop-types/index.d.ts @@ -0,0 +1,109 @@ +export type ReactComponentLike = + | string + | ((props: any, context?: any) => any) + | (new(props: any, context?: any) => any); + +export interface ReactElementLike { + type: ReactComponentLike; + props: any; + key: string | null; +} + +export interface ReactNodeArray extends Iterable {} + +export type ReactNodeLike = + | ReactElementLike + | ReactNodeArray + | string + | number + | boolean + | null + | undefined; + +export const nominalTypeHack: unique symbol; + +export type IsOptional = undefined extends T ? true : false; + +export type RequiredKeys = { + [K in keyof V]-?: Exclude extends Validator ? IsOptional extends true ? never : K + : never; +}[keyof V]; +export type OptionalKeys = Exclude>; +export type InferPropsInner = { [K in keyof V]-?: InferType }; + +export interface Validator { + ( + props: { [key: string]: any }, + propName: string, + componentName: string, + location: string, + propFullName: string, + ): Error | null; + [nominalTypeHack]?: { + type: T; + } | undefined; +} + +export interface Requireable extends Validator { + isRequired: Validator>; +} + +export type ValidationMap = { [K in keyof T]?: Validator }; + +/** + * Like {@link ValidationMap} but treats `undefined`, `null` and optional properties the same. + * This type is only added as a migration path in React 19 where this type was removed from React. + * Runtime and compile time types would mismatch since you could see `undefined` at runtime when your types don't expect this type. + */ +export type WeakValidationMap = { + [K in keyof T]?: null extends T[K] ? Validator + : undefined extends T[K] ? Validator + : Validator; +}; + +export type InferType = V extends Validator ? T : any; +export type InferProps = + & InferPropsInner>> + & Partial>>>; + +export const any: Requireable; +export const array: Requireable; +export const bool: Requireable; +export const func: Requireable<(...args: any[]) => any>; +export const number: Requireable; +export const object: Requireable; +export const string: Requireable; +export const node: Requireable; +export const element: Requireable; +export const symbol: Requireable; +export const elementType: Requireable; +export function instanceOf(expectedClass: new(...args: any[]) => T): Requireable; +export function oneOf(types: readonly T[]): Requireable; +export function oneOfType>(types: T[]): Requireable>>; +export function arrayOf(type: Validator): Requireable; +export function objectOf(type: Validator): Requireable<{ [K in keyof any]: T }>; +export function shape

      >(type: P): Requireable>; +export function exact

      >(type: P): Requireable>>; + +/** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param typeSpecs Map of name to a ReactPropType + * @param values Runtime values that need to be type-checked + * @param location e.g. "prop", "context", "child context" + * @param componentName Name of the component for error messages + * @param getStack Returns the component stack + */ +export function checkPropTypes( + typeSpecs: any, + values: any, + location: string, + componentName: string, + getStack?: () => any, +): void; + +/** + * Only available if NODE_ENV=production + */ +export function resetWarningCache(): void; diff --git a/node_modules/@types/prop-types/package.json b/node_modules/@types/prop-types/package.json new file mode 100644 index 0000000..e44b19b --- /dev/null +++ b/node_modules/@types/prop-types/package.json @@ -0,0 +1,35 @@ +{ + "name": "@types/prop-types", + "version": "15.7.12", + "description": "TypeScript definitions for prop-types", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/prop-types", + "license": "MIT", + "contributors": [ + { + "name": "DovydasNavickas", + "githubUsername": "DovydasNavickas", + "url": "https://github.com/DovydasNavickas" + }, + { + "name": "Ferdy Budhidharma", + "githubUsername": "ferdaber", + "url": "https://github.com/ferdaber" + }, + { + "name": "Sebastian Silbermann", + "githubUsername": "eps1lon", + "url": "https://github.com/eps1lon" + } + ], + "main": "", + "types": "index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/prop-types" + }, + "scripts": {}, + "dependencies": {}, + "typesPublisherContentHash": "9f43a310cba2ddc63b5ca98d9cce503eaead853f72f038eb5c29c623dc2c01b6", + "typeScriptVersion": "4.7" +} \ No newline at end of file diff --git a/node_modules/@types/react-dom/LICENSE b/node_modules/@types/react-dom/LICENSE new file mode 100644 index 0000000..9e841e7 --- /dev/null +++ b/node_modules/@types/react-dom/LICENSE @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + 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/@types/react-dom/README.md b/node_modules/@types/react-dom/README.md new file mode 100644 index 0000000..6ec3a8a --- /dev/null +++ b/node_modules/@types/react-dom/README.md @@ -0,0 +1,15 @@ +# Installation +> `npm install --save @types/react-dom` + +# Summary +This package contains type definitions for react-dom (https://reactjs.org). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-dom. + +### Additional Details + * Last updated: Thu, 25 Apr 2024 20:07:03 GMT + * Dependencies: [@types/react](https://npmjs.com/package/@types/react) + +# Credits +These definitions were written by [Asana](https://asana.com), [AssureSign](http://www.assuresign.com), [Microsoft](https://microsoft.com), [MartynasZilinskas](https://github.com/MartynasZilinskas), [Josh Rutherford](https://github.com/theruther4d), [Jessica Franco](https://github.com/Jessidhia), and [Sebastian Silbermann](https://github.com/eps1lon). diff --git a/node_modules/@types/react-dom/canary.d.ts b/node_modules/@types/react-dom/canary.d.ts new file mode 100644 index 0000000..827928d --- /dev/null +++ b/node_modules/@types/react-dom/canary.d.ts @@ -0,0 +1,184 @@ +/** + * These are types for things that are present in the upcoming React 18 release. + * + * Once React 18 is released they can just be moved to the main index file. + * + * To load the types declared here in an actual project, there are three ways. The easiest one, + * if your `tsconfig.json` already has a `"types"` array in the `"compilerOptions"` section, + * is to add `"react-dom/canary"` to the `"types"` array. + * + * Alternatively, a specific import syntax can to be used from a typescript file. + * This module does not exist in reality, which is why the {} is important: + * + * ```ts + * import {} from 'react-dom/canary' + * ``` + * + * It is also possible to include it through a triple-slash reference: + * + * ```ts + * /// + * ``` + * + * Either the import or the reference only needs to appear once, anywhere in the project. + */ + +// See https://github.com/facebook/react/blob/main/packages/react-dom/index.js to see how the exports are declared, +// but confirm with published source code (e.g. https://unpkg.com/react-dom@canary) that these exports end up in the published code + +import React = require("react"); +import ReactDOM = require("."); + +export {}; + +declare const REACT_FORM_STATE_SIGIL: unique symbol; + +declare module "." { + function prefetchDNS(href: string): void; + + interface PreconnectOptions { + // Don't create a helper type. + // It would have to be in module scope to be inlined in TS tooltips. + // But then it becomes part of the public API. + // TODO: Upstream to microsoft/TypeScript-DOM-lib-generator -> w3c/webref + // since the spec has a notion of a dedicated type: https://html.spec.whatwg.org/multipage/urls-and-fetching.html#cors-settings-attribute + crossOrigin?: "anonymous" | "use-credentials" | "" | undefined; + } + function preconnect(href: string, options?: PreconnectOptions): void; + + type PreloadAs = + | "audio" + | "document" + | "embed" + | "fetch" + | "font" + | "image" + | "object" + | "track" + | "script" + | "style" + | "video" + | "worker"; + interface PreloadOptions { + as: PreloadAs; + crossOrigin?: "anonymous" | "use-credentials" | "" | undefined; + fetchPriority?: "high" | "low" | "auto" | undefined; + // TODO: These should only be allowed with `as: 'image'` but it's not trivial to write tests against the full TS support matrix. + imageSizes?: string | undefined; + imageSrcSet?: string | undefined; + integrity?: string | undefined; + type?: string | undefined; + nonce?: string | undefined; + referrerPolicy?: ReferrerPolicy | undefined; + } + function preload(href: string, options?: PreloadOptions): void; + + // https://html.spec.whatwg.org/multipage/links.html#link-type-modulepreload + type PreloadModuleAs = RequestDestination; + interface PreloadModuleOptions { + /** + * @default "script" + */ + as: PreloadModuleAs; + crossOrigin?: "anonymous" | "use-credentials" | "" | undefined; + integrity?: string | undefined; + nonce?: string | undefined; + } + function preloadModule(href: string, options?: PreloadModuleOptions): void; + + type PreinitAs = "script" | "style"; + interface PreinitOptions { + as: PreinitAs; + crossOrigin?: "anonymous" | "use-credentials" | "" | undefined; + fetchPriority?: "high" | "low" | "auto" | undefined; + precedence?: string | undefined; + integrity?: string | undefined; + nonce?: string | undefined; + } + function preinit(href: string, options?: PreinitOptions): void; + + // Will be expanded to include all of https://github.com/tc39/proposal-import-attributes + type PreinitModuleAs = "script"; + interface PreinitModuleOptions { + /** + * @default "script" + */ + as?: PreinitModuleAs; + crossOrigin?: "anonymous" | "use-credentials" | "" | undefined; + integrity?: string | undefined; + nonce?: string | undefined; + } + function preinitModule(href: string, options?: PreinitModuleOptions): void; + + interface FormStatusNotPending { + pending: false; + data: null; + method: null; + action: null; + } + + interface FormStatusPending { + pending: true; + data: FormData; + method: string; + action: string | ((formData: FormData) => void | Promise); + } + + type FormStatus = FormStatusPending | FormStatusNotPending; + + function useFormStatus(): FormStatus; + + function useFormState( + action: (state: Awaited) => State | Promise, + initialState: Awaited, + permalink?: string, + ): [state: Awaited, dispatch: () => void, isPending: boolean]; + function useFormState( + action: (state: Awaited, payload: Payload) => State | Promise, + initialState: Awaited, + permalink?: string, + ): [state: Awaited, dispatch: (payload: Payload) => void, isPending: boolean]; + + function requestFormReset(form: HTMLFormElement): void; +} + +declare module "./client" { + interface ReactFormState { + [REACT_FORM_STATE_SIGIL]: never; + } + + interface RootOptions { + onUncaughtError?: + | ((error: unknown, errorInfo: { componentStack?: string | undefined }) => void) + | undefined; + onCaughtError?: + | (( + error: unknown, + errorInfo: { + componentStack?: string | undefined; + errorBoundary?: React.Component | undefined; + }, + ) => void) + | undefined; + } + + interface HydrationOptions { + formState?: ReactFormState | null; + onUncaughtError?: + | ((error: unknown, errorInfo: { componentStack?: string | undefined }) => void) + | undefined; + onCaughtError?: + | (( + error: unknown, + errorInfo: { + componentStack?: string | undefined; + errorBoundary?: React.Component | undefined; + }, + ) => void) + | undefined; + } + + interface DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_CREATE_ROOT_CONTAINERS { + document: Document; + } +} diff --git a/node_modules/@types/react-dom/client.d.ts b/node_modules/@types/react-dom/client.d.ts new file mode 100644 index 0000000..a0e070a --- /dev/null +++ b/node_modules/@types/react-dom/client.d.ts @@ -0,0 +1,72 @@ +/** + * WARNING: This entrypoint is only available starting with `react-dom@18.0.0-rc.1` + */ + +// See https://github.com/facebook/react/blob/main/packages/react-dom/client.js to see how the exports are declared, + +import React = require("react"); +export interface HydrationOptions { + /** + * Prefix for `useId`. + */ + identifierPrefix?: string; + onRecoverableError?: (error: unknown, errorInfo: ErrorInfo) => void; +} + +export interface RootOptions { + /** + * Prefix for `useId`. + */ + identifierPrefix?: string; + onRecoverableError?: (error: unknown, errorInfo: ErrorInfo) => void; +} + +export interface ErrorInfo { + digest?: string; + componentStack?: string; +} + +export interface Root { + render(children: React.ReactNode): void; + unmount(): void; +} + +/** + * Different release channels declare additional types of ReactNode this particular release channel accepts. + * App or library types should never augment this interface. + */ +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_CREATE_ROOT_CONTAINERS {} + +export type Container = + | Element + | DocumentFragment + | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_CREATE_ROOT_CONTAINERS[ + keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_CREATE_ROOT_CONTAINERS + ]; + +/** + * createRoot lets you create a root to display React components inside a browser DOM node. + * + * @see {@link https://react.dev/reference/react-dom/client/createRoot API Reference for `createRoot`} + */ +export function createRoot(container: Container, options?: RootOptions): Root; + +/** + * Same as `createRoot()`, but is used to hydrate a container whose HTML contents were rendered by ReactDOMServer. + * + * React will attempt to attach event listeners to the existing markup. + * + * **Example Usage** + * + * ```jsx + * hydrateRoot(document.querySelector('#root'), ) + * ``` + * + * @see https://reactjs.org/docs/react-dom-client.html#hydrateroot + */ +export function hydrateRoot( + container: Element | Document, + initialChildren: React.ReactNode, + options?: HydrationOptions, +): Root; diff --git a/node_modules/@types/react-dom/experimental.d.ts b/node_modules/@types/react-dom/experimental.d.ts new file mode 100644 index 0000000..1ff5729 --- /dev/null +++ b/node_modules/@types/react-dom/experimental.d.ts @@ -0,0 +1,36 @@ +/** + * These are types for things that are present in the `experimental` builds of React but not yet + * on a stable build. + * + * Once they are promoted to stable they can just be moved to the main index file. + * + * To load the types declared here in an actual project, there are three ways. The easiest one, + * if your `tsconfig.json` already has a `"types"` array in the `"compilerOptions"` section, + * is to add `"react-dom/experimental"` to the `"types"` array. + * + * Alternatively, a specific import syntax can to be used from a typescript file. + * This module does not exist in reality, which is why the {} is important: + * + * ```ts + * import {} from 'react-dom/experimental' + * ``` + * + * It is also possible to include it through a triple-slash reference: + * + * ```ts + * /// + * ``` + * + * Either the import or the reference only needs to appear once, anywhere in the project. + */ + +// See https://github.com/facebook/react/blob/main/packages/react-dom/index.experimental.js to see how the exports are declared, +// but confirm with published source code (e.g. https://unpkg.com/react-dom@experimental) that these exports end up in the published code + +import React = require("react"); +import ReactDOM = require("./canary"); + +export {}; + +declare module "." { +} diff --git a/node_modules/@types/react-dom/index.d.ts b/node_modules/@types/react-dom/index.d.ts new file mode 100644 index 0000000..7a2067d --- /dev/null +++ b/node_modules/@types/react-dom/index.d.ts @@ -0,0 +1,149 @@ +// NOTE: Users of the `experimental` builds of React should add a reference +// to 'react-dom/experimental' in their project. See experimental.d.ts's top comment +// for reference and documentation on how exactly to do it. + +export as namespace ReactDOM; + +import { + CElement, + Component, + ComponentState, + DOMAttributes, + DOMElement, + FunctionComponentElement, + ReactElement, + ReactInstance, + ReactNode, + ReactPortal, +} from "react"; + +/** + * @deprecated See https://react.dev/reference/react-dom/findDOMNode#alternatives + */ +export function findDOMNode(instance: ReactInstance | null | undefined): Element | null | Text; +/** + * @deprecated See https://react.dev/blog/2022/03/08/react-18-upgrade-guide#updates-to-client-rendering-apis + */ +export function unmountComponentAtNode(container: Element | DocumentFragment): boolean; + +export function createPortal( + children: ReactNode, + container: Element | DocumentFragment, + key?: null | string, +): ReactPortal; + +export const version: string; +/** + * @deprecated See https://react.dev/blog/2022/03/08/react-18-upgrade-guide#updates-to-client-rendering-apis + */ +export const render: Renderer; +/** + * @deprecated See https://react.dev/blog/2022/03/08/react-18-upgrade-guide#updates-to-client-rendering-apis + */ +export const hydrate: Renderer; + +export function flushSync(fn: () => R): R; + +export function unstable_batchedUpdates(callback: (a: A) => R, a: A): R; +export function unstable_batchedUpdates(callback: () => R): R; + +/** + * @deprecated + */ +export function unstable_renderSubtreeIntoContainer( + parentComponent: Component, + element: DOMElement, T>, + container: Element, + callback?: (element: T) => any, +): T; +/** + * @deprecated + */ +export function unstable_renderSubtreeIntoContainer>( + parentComponent: Component, + element: CElement, + container: Element, + callback?: (component: T) => any, +): T; +/** + * @deprecated + */ +export function unstable_renderSubtreeIntoContainer

      ( + parentComponent: Component, + element: ReactElement

      , + container: Element, + callback?: (component?: Component | Element) => any, + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type +): Component | Element | void; + +export type Container = Element | Document | DocumentFragment; + +export interface Renderer { + // Deprecated(render): The return value is deprecated. + // In future releases the render function's return type will be void. + + /** + * @deprecated See https://react.dev/blog/2022/03/08/react-18-upgrade-guide#updates-to-client-rendering-apis + */ + ( + element: DOMElement, T>, + container: Container | null, + callback?: () => void, + ): T; + + /** + * @deprecated See https://react.dev/blog/2022/03/08/react-18-upgrade-guide#updates-to-client-rendering-apis + */ + ( + element: Array, any>>, + container: Container | null, + callback?: () => void, + ): Element; + + /** + * @deprecated See https://react.dev/blog/2022/03/08/react-18-upgrade-guide#updates-to-client-rendering-apis + */ + ( + element: FunctionComponentElement | Array>, + container: Container | null, + callback?: () => void, + ): void; + + /** + * @deprecated See https://react.dev/blog/2022/03/08/react-18-upgrade-guide#updates-to-client-rendering-apis + */ + >( + element: CElement, + container: Container | null, + callback?: () => void, + ): T; + + /** + * @deprecated See https://react.dev/blog/2022/03/08/react-18-upgrade-guide#updates-to-client-rendering-apis + */ + ( + element: Array>>, + container: Container | null, + callback?: () => void, + ): Component; + + /** + * @deprecated See https://react.dev/blog/2022/03/08/react-18-upgrade-guide#updates-to-client-rendering-apis + */ +

      ( + element: ReactElement

      , + container: Container | null, + callback?: () => void, + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + ): Component | Element | void; + + /** + * @deprecated See https://react.dev/blog/2022/03/08/react-18-upgrade-guide#updates-to-client-rendering-apis + */ + ( + element: ReactElement[], + container: Container | null, + callback?: () => void, + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + ): Component | Element | void; +} diff --git a/node_modules/@types/react-dom/package.json b/node_modules/@types/react-dom/package.json new file mode 100644 index 0000000..cc5b94b --- /dev/null +++ b/node_modules/@types/react-dom/package.json @@ -0,0 +1,87 @@ +{ + "name": "@types/react-dom", + "version": "18.3.0", + "description": "TypeScript definitions for react-dom", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-dom", + "license": "MIT", + "contributors": [ + { + "name": "Asana", + "url": "https://asana.com" + }, + { + "name": "AssureSign", + "url": "http://www.assuresign.com" + }, + { + "name": "Microsoft", + "url": "https://microsoft.com" + }, + { + "name": "MartynasZilinskas", + "githubUsername": "MartynasZilinskas", + "url": "https://github.com/MartynasZilinskas" + }, + { + "name": "Josh Rutherford", + "githubUsername": "theruther4d", + "url": "https://github.com/theruther4d" + }, + { + "name": "Jessica Franco", + "githubUsername": "Jessidhia", + "url": "https://github.com/Jessidhia" + }, + { + "name": "Sebastian Silbermann", + "githubUsername": "eps1lon", + "url": "https://github.com/eps1lon" + } + ], + "main": "", + "types": "index.d.ts", + "exports": { + ".": { + "types": { + "default": "./index.d.ts" + } + }, + "./client": { + "types": { + "default": "./client.d.ts" + } + }, + "./canary": { + "types": { + "default": "./canary.d.ts" + } + }, + "./server": { + "types": { + "default": "./server.d.ts" + } + }, + "./experimental": { + "types": { + "default": "./experimental.d.ts" + } + }, + "./test-utils": { + "types": { + "default": "./test-utils/index.d.ts" + } + }, + "./package.json": "./package.json" + }, + "repository": { + "type": "git", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/react-dom" + }, + "scripts": {}, + "dependencies": { + "@types/react": "*" + }, + "typesPublisherContentHash": "6e701783391e040466f55ff67d4efe35c3cbc5868b0a0937f1dfb8f63fce36fc", + "typeScriptVersion": "4.7" +} \ No newline at end of file diff --git a/node_modules/@types/react-dom/server.d.ts b/node_modules/@types/react-dom/server.d.ts new file mode 100644 index 0000000..236bc58 --- /dev/null +++ b/node_modules/@types/react-dom/server.d.ts @@ -0,0 +1,126 @@ +// forward declarations +declare global { + namespace NodeJS { + // eslint-disable-next-line @typescript-eslint/no-empty-interface + interface ReadableStream {} + + // eslint-disable-next-line @typescript-eslint/no-empty-interface + interface WritableStream {} + } + + /** + * Stub for https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal + */ + // eslint-disable-next-line @typescript-eslint/no-empty-interface + interface AbortSignal {} + + /** + * Stub for https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream + */ + // eslint-disable-next-line @typescript-eslint/no-empty-interface + interface ReadableStream {} +} + +import { ReactNode } from "react"; +import { ErrorInfo } from "./client"; + +export interface RenderToPipeableStreamOptions { + identifierPrefix?: string; + namespaceURI?: string; + nonce?: string; + bootstrapScriptContent?: string; + bootstrapScripts?: string[]; + bootstrapModules?: string[]; + progressiveChunkSize?: number; + onShellReady?: () => void; + onShellError?: (error: unknown) => void; + onAllReady?: () => void; + onError?: (error: unknown, errorInfo: ErrorInfo) => string | void; +} + +export interface PipeableStream { + abort: (reason?: unknown) => void; + pipe: (destination: Writable) => Writable; +} + +export interface ServerOptions { + identifierPrefix?: string; +} + +/** + * Only available in the environments with [Node.js Streams](https://nodejs.dev/learn/nodejs-streams). + * + * @see [API](https://reactjs.org/docs/react-dom-server.html#rendertopipeablestream) + * + * @param children + * @param options + */ +export function renderToPipeableStream(children: ReactNode, options?: RenderToPipeableStreamOptions): PipeableStream; + +/** + * Render a React element to its initial HTML. This should only be used on the server. + * React will return an HTML string. You can use this method to generate HTML on the server + * and send the markup down on the initial request for faster page loads and to allow search + * engines to crawl your pages for SEO purposes. + * + * If you call `ReactDOMClient.hydrateRoot()` on a node that already has this server-rendered markup, + * React will preserve it and only attach event handlers, allowing you + * to have a very performant first-load experience. + */ +export function renderToString(element: ReactNode, options?: ServerOptions): string; + +/** + * Render a React element to its initial HTML. Returns a Readable stream that outputs + * an HTML string. The HTML output by this stream is exactly equal to what + * `ReactDOMServer.renderToString()` would return. + * + * @deprecated + */ +export function renderToNodeStream(element: ReactNode, options?: ServerOptions): NodeJS.ReadableStream; + +/** + * Similar to `renderToString`, except this doesn't create extra DOM attributes + * such as `data-reactid`, that React uses internally. This is useful if you want + * to use React as a simple static page generator, as stripping away the extra + * attributes can save lots of bytes. + */ +export function renderToStaticMarkup(element: ReactNode, options?: ServerOptions): string; + +/** + * Similar to `renderToNodeStream`, except this doesn't create extra DOM attributes + * such as `data-reactid`, that React uses internally. The HTML output by this stream + * is exactly equal to what `ReactDOMServer.renderToStaticMarkup()` would return. + * + * @deprecated + */ +export function renderToStaticNodeStream(element: ReactNode, options?: ServerOptions): NodeJS.ReadableStream; + +export interface RenderToReadableStreamOptions { + identifierPrefix?: string; + namespaceURI?: string; + nonce?: string; + bootstrapScriptContent?: string; + bootstrapScripts?: string[]; + bootstrapModules?: string[]; + progressiveChunkSize?: number; + signal?: AbortSignal; + onError?: (error: unknown, errorInfo: ErrorInfo) => string | void; +} + +export interface ReactDOMServerReadableStream extends ReadableStream { + allReady: Promise; +} + +/** + * Only available in the environments with [Web Streams](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API) (this includes browsers, Deno, and some modern edge runtimes). + * + * @see [API](https://reactjs.org/docs/react-dom-server.html#rendertoreadablestream) + */ +export function renderToReadableStream( + children: ReactNode, + options?: RenderToReadableStreamOptions, +): Promise; + +export const version: string; + +export as namespace ReactDOMServer; diff --git a/node_modules/@types/react-dom/test-utils/index.d.ts b/node_modules/@types/react-dom/test-utils/index.d.ts new file mode 100644 index 0000000..c6dc124 --- /dev/null +++ b/node_modules/@types/react-dom/test-utils/index.d.ts @@ -0,0 +1,402 @@ +import { + AbstractView, + CElement, + ClassType, + Component, + ComponentClass, + DOMAttributes, + DOMElement, + FC, + FunctionComponentElement, + ReactElement, + ReactHTMLElement, + ReactInstance, +} from "react"; + +import * as ReactTestUtils from "."; + +export {}; + +export interface OptionalEventProperties { + bubbles?: boolean | undefined; + cancelable?: boolean | undefined; + currentTarget?: EventTarget | undefined; + defaultPrevented?: boolean | undefined; + eventPhase?: number | undefined; + isTrusted?: boolean | undefined; + nativeEvent?: Event | undefined; + preventDefault?(): void; + stopPropagation?(): void; + target?: EventTarget | undefined; + timeStamp?: Date | undefined; + type?: string | undefined; +} + +export type ModifierKey = + | "Alt" + | "AltGraph" + | "CapsLock" + | "Control" + | "Fn" + | "FnLock" + | "Hyper" + | "Meta" + | "NumLock" + | "ScrollLock" + | "Shift" + | "Super" + | "Symbol" + | "SymbolLock"; + +export interface SyntheticEventData extends OptionalEventProperties { + altKey?: boolean | undefined; + button?: number | undefined; + buttons?: number | undefined; + clientX?: number | undefined; + clientY?: number | undefined; + changedTouches?: TouchList | undefined; + charCode?: number | undefined; + clipboardData?: DataTransfer | undefined; + ctrlKey?: boolean | undefined; + deltaMode?: number | undefined; + deltaX?: number | undefined; + deltaY?: number | undefined; + deltaZ?: number | undefined; + detail?: number | undefined; + getModifierState?(key: ModifierKey): boolean; + key?: string | undefined; + keyCode?: number | undefined; + locale?: string | undefined; + location?: number | undefined; + metaKey?: boolean | undefined; + pageX?: number | undefined; + pageY?: number | undefined; + relatedTarget?: EventTarget | undefined; + repeat?: boolean | undefined; + screenX?: number | undefined; + screenY?: number | undefined; + shiftKey?: boolean | undefined; + targetTouches?: TouchList | undefined; + touches?: TouchList | undefined; + view?: AbstractView | undefined; + which?: number | undefined; +} + +export type EventSimulator = (element: Element | Component, eventData?: SyntheticEventData) => void; + +export interface MockedComponentClass { + new(props: any): any; +} + +export interface ShallowRenderer { + /** + * After `shallowRenderer.render()` has been called, returns shallowly rendered output. + */ + getRenderOutput(): E; + /** + * Similar to `ReactDOM.render` but it doesn't require DOM and only renders a single level deep. + */ + render(element: ReactElement, context?: any): void; + unmount(): void; +} + +/** + * Simulate an event dispatch on a DOM node with optional `eventData` event data. + * `Simulate` has a method for every event that React understands. + */ +export namespace Simulate { + const abort: EventSimulator; + const animationEnd: EventSimulator; + const animationIteration: EventSimulator; + const animationStart: EventSimulator; + const blur: EventSimulator; + const cancel: EventSimulator; + const canPlay: EventSimulator; + const canPlayThrough: EventSimulator; + const change: EventSimulator; + const click: EventSimulator; + const close: EventSimulator; + const compositionEnd: EventSimulator; + const compositionStart: EventSimulator; + const compositionUpdate: EventSimulator; + const contextMenu: EventSimulator; + const copy: EventSimulator; + const cut: EventSimulator; + const auxClick: EventSimulator; + const doubleClick: EventSimulator; + const drag: EventSimulator; + const dragEnd: EventSimulator; + const dragEnter: EventSimulator; + const dragExit: EventSimulator; + const dragLeave: EventSimulator; + const dragOver: EventSimulator; + const dragStart: EventSimulator; + const drop: EventSimulator; + const durationChange: EventSimulator; + const emptied: EventSimulator; + const encrypted: EventSimulator; + const ended: EventSimulator; + const error: EventSimulator; + const focus: EventSimulator; + const input: EventSimulator; + const invalid: EventSimulator; + const keyDown: EventSimulator; + const keyPress: EventSimulator; + const keyUp: EventSimulator; + const load: EventSimulator; + const loadStart: EventSimulator; + const loadedData: EventSimulator; + const loadedMetadata: EventSimulator; + const mouseDown: EventSimulator; + const mouseEnter: EventSimulator; + const mouseLeave: EventSimulator; + const mouseMove: EventSimulator; + const mouseOut: EventSimulator; + const mouseOver: EventSimulator; + const mouseUp: EventSimulator; + const paste: EventSimulator; + const pause: EventSimulator; + const play: EventSimulator; + const playing: EventSimulator; + const progress: EventSimulator; + const pointerCancel: EventSimulator; + const pointerDown: EventSimulator; + const pointerUp: EventSimulator; + const pointerMove: EventSimulator; + const pointerOut: EventSimulator; + const pointerOver: EventSimulator; + const pointerEnter: EventSimulator; + const pointerLeave: EventSimulator; + const gotPointerCapture: EventSimulator; + const lostPointerCapture: EventSimulator; + const rateChange: EventSimulator; + const reset: EventSimulator; + const resize: EventSimulator; + const scroll: EventSimulator; + const toggle: EventSimulator; + const seeked: EventSimulator; + const seeking: EventSimulator; + const select: EventSimulator; + const beforeInput: EventSimulator; + const stalled: EventSimulator; + const submit: EventSimulator; + const suspend: EventSimulator; + const timeUpdate: EventSimulator; + const touchCancel: EventSimulator; + const touchEnd: EventSimulator; + const touchMove: EventSimulator; + const touchStart: EventSimulator; + const transitionEnd: EventSimulator; + const volumeChange: EventSimulator; + const waiting: EventSimulator; + const wheel: EventSimulator; +} + +/** + * Render a React element into a detached DOM node in the document. __This function requires a DOM__. + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function renderIntoDocument( + element: DOMElement, +): T; +/** @deprecated https://react.dev/warnings/react-dom-test-utils */ +export function renderIntoDocument( + element: FunctionComponentElement, +): void; +// If we replace `P` with `any` in this overload, then some tests fail because +// calls to `renderIntoDocument` choose the last overload on the +// subtype-relation pass and get an undesirably broad return type. Using `P` +// allows this overload to match on the subtype-relation pass. +/** + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function renderIntoDocument>( + element: CElement, +): T; +/** + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function renderIntoDocument

      ( + element: ReactElement

      , +): Component

      | Element | void; + +/** + * Pass a mocked component module to this method to augment it with useful methods that allow it to + * be used as a dummy React component. Instead of rendering as usual, the component will become + * a simple `

      ` (or other tag if `mockTagName` is provided) containing any provided children. + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function mockComponent( + mocked: MockedComponentClass, + mockTagName?: string, +): typeof ReactTestUtils; + +/** + * Returns `true` if `element` is any React element. + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function isElement(element: any): boolean; + +/** + * Returns `true` if `element` is a React element whose type is of a React `componentClass`. + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function isElementOfType( + element: ReactElement, + type: string, +): element is ReactHTMLElement; +/** + * Returns `true` if `element` is a React element whose type is of a React `componentClass`. + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function isElementOfType

      , T extends Element>( + element: ReactElement, + type: string, +): element is DOMElement; +/** + * Returns `true` if `element` is a React element whose type is of a React `componentClass`. + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function isElementOfType

      ( + element: ReactElement, + type: FC

      , +): element is FunctionComponentElement

      ; +/** + * Returns `true` if `element` is a React element whose type is of a React `componentClass`. + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function isElementOfType, C extends ComponentClass

      >( + element: ReactElement, + type: ClassType, +): element is CElement; + +/** + * Returns `true` if `instance` is a DOM component (such as a `

      ` or ``). + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function isDOMComponent(instance: ReactInstance): instance is Element; +/** + * Returns `true` if `instance` is a user-defined component, such as a class or a function. + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function isCompositeComponent(instance: ReactInstance): instance is Component; +/** + * Returns `true` if `instance` is a component whose type is of a React `componentClass`. + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function isCompositeComponentWithType, C extends ComponentClass>( + instance: ReactInstance, + type: ClassType, +): boolean; + +/** + * Traverse all components in `tree` and accumulate all components where + * `test(component)` is `true`. This is not that useful on its own, but it's used + * as a primitive for other test utils. + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function findAllInRenderedTree( + root: Component, + fn: (i: ReactInstance) => boolean, +): ReactInstance[]; + +/** + * Finds all DOM elements of components in the rendered tree that are + * DOM components with the class name matching `className`. + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function scryRenderedDOMComponentsWithClass( + root: Component, + className: string, +): Element[]; +/** + * Like `scryRenderedDOMComponentsWithClass()` but expects there to be one result, + * and returns that one result, or throws exception if there is any other + * number of matches besides one. + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function findRenderedDOMComponentWithClass( + root: Component, + className: string, +): Element; + +/** + * Finds all DOM elements of components in the rendered tree that are + * DOM components with the tag name matching `tagName`. + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function scryRenderedDOMComponentsWithTag( + root: Component, + tagName: string, +): Element[]; +/** + * Like `scryRenderedDOMComponentsWithTag()` but expects there to be one result, + * and returns that one result, or throws exception if there is any other + * number of matches besides one. + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function findRenderedDOMComponentWithTag( + root: Component, + tagName: string, +): Element; + +/** + * Finds all instances of components with type equal to `componentClass`. + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function scryRenderedComponentsWithType, C extends ComponentClass>( + root: Component, + type: ClassType, +): T[]; + +/** + * Same as `scryRenderedComponentsWithType()` but expects there to be one result + * and returns that one result, or throws exception if there is any other + * number of matches besides one. + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function findRenderedComponentWithType, C extends ComponentClass>( + root: Component, + type: ClassType, +): T; + +/** + * Call this in your tests to create a shallow renderer. + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function createRenderer(): ShallowRenderer; + +// NOTES +// - the order of these signatures matters - typescript will check the signatures in source order. +// If the `() => VoidOrUndefinedOnly` signature is first, it'll erroneously match a Promise returning function for users with +// `strictNullChecks: false`. +// - VoidOrUndefinedOnly is there to forbid any non-void return values for users with `strictNullChecks: true` +declare const UNDEFINED_VOID_ONLY: unique symbol; +// eslint-disable-next-line @typescript-eslint/no-invalid-void-type +type VoidOrUndefinedOnly = void | { [UNDEFINED_VOID_ONLY]: never }; +/** + * Wrap any code rendering and triggering updates to your components into `act()` calls. + * + * Ensures that the behavior in your tests matches what happens in the browser + * more closely by executing pending `useEffect`s before returning. This also + * reduces the amount of re-renders done. + * + * @param callback A synchronous, void callback that will execute as a single, complete React commit. + * + * @see https://reactjs.org/blog/2019/02/06/react-v16.8.0.html#testing-hooks + * + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +// While act does always return Thenable, if a void function is passed, we pretend the return value is also void to not trigger dangling Promise lint rules. +export function act(callback: () => VoidOrUndefinedOnly): void; +/** + * @deprecated https://react.dev/warnings/react-dom-test-utils + */ +export function act(callback: () => T | Promise): Promise; + +// Intentionally doesn't extend PromiseLike. +// Ideally this should be as hard to accidentally use as possible. +export interface DebugPromiseLike { + // the actual then() in here is 0-ary, but that doesn't count as a PromiseLike. + then(onfulfilled: (value: never) => never, onrejected: (reason: never) => never): never; +} diff --git a/node_modules/@types/react-modal/LICENSE b/node_modules/@types/react-modal/LICENSE new file mode 100644 index 0000000..9e841e7 --- /dev/null +++ b/node_modules/@types/react-modal/LICENSE @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + 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/@types/react-modal/README.md b/node_modules/@types/react-modal/README.md new file mode 100644 index 0000000..fb11191 --- /dev/null +++ b/node_modules/@types/react-modal/README.md @@ -0,0 +1,15 @@ +# Installation +> `npm install --save @types/react-modal` + +# Summary +This package contains type definitions for react-modal (https://github.com/reactjs/react-modal). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-modal. + +### Additional Details + * Last updated: Tue, 07 Nov 2023 09:09:39 GMT + * Dependencies: [@types/react](https://npmjs.com/package/@types/react) + +# Credits +These definitions were written by [Rajab Shakirov](https://github.com/radziksh), [Drew Noakes](https://github.com/drewnoakes), [Thomas B Homburg](https://github.com/homburg), [Tatu Tamminen](https://github.com/ttamminen), [Uwe Wiemer](https://github.com/hallowatcher), [Peter Blazejewicz](https://github.com/peterblazejewicz), [Justin Powell](https://github.com/jpowell), [Juwan Wheatley](https://github.com/fiberjw), [Nitzan Mousan](https://github.com/nitzanmo), and [dkrk](https://github.com/grgr-dkrk). diff --git a/node_modules/@types/react-modal/index.d.ts b/node_modules/@types/react-modal/index.d.ts new file mode 100644 index 0000000..32599b4 --- /dev/null +++ b/node_modules/@types/react-modal/index.d.ts @@ -0,0 +1,148 @@ +import * as React from "react"; + +export = ReactModal; +export as namespace ReactModal; + +declare namespace ReactModal { + interface Styles { + content?: React.CSSProperties | undefined; + overlay?: React.CSSProperties | undefined; + } + + interface Classes { + base: string; + afterOpen: string; + beforeClose: string; + } + + interface Aria { + /** Defines a string value that labels the current element. */ + labelledby?: string | undefined; + /** Identifies the element (or elements) that describes the object. */ + describedby?: string | undefined; + /** Indicates whether an element is modal when displayed. */ + modal?: boolean | "false" | "true" | undefined; + } + + /** Describes overlay and content element references passed to onAfterOpen function */ + interface OnAfterOpenCallbackOptions { + /** overlay element reference */ + overlayEl: Element; + /** content element reference */ + contentEl: HTMLDivElement; + } + + /** Describes unction that will be run after the modal has opened */ + interface OnAfterOpenCallback { + (obj?: OnAfterOpenCallbackOptions): void; + } + + interface Props { + children?: React.ReactNode; + + /* Boolean describing if the modal should be shown or not. Defaults to false. */ + isOpen: boolean; + + /* Object indicating styles to be used for the modal, divided into overlay and content styles. */ + style?: Styles | undefined; + + /* String className to be applied to the portal. Defaults to "ReactModalPortal". */ + portalClassName?: string | undefined; + + /* String className to be applied to the document.body (must be a constant string). When set to null it doesn't add any class to document.body. */ + bodyOpenClassName?: string | null | undefined; + + /* String className to be applied to the document.html (must be a constant string). Defaults to null. */ + htmlOpenClassName?: string | null | undefined; + + /* String or object className to be applied to the modal content. */ + className?: string | Classes | undefined; + + /* String or object className to be applied to the overlay. */ + overlayClassName?: string | Classes | undefined; + + /* Set this to properly hide your application from assistive screenreaders and other assistive technologies while the modal is open. */ + appElement?: HTMLElement | HTMLElement[] | HTMLCollection | NodeList | undefined; + + /* Function that will be run after the modal has opened. */ + onAfterOpen?: OnAfterOpenCallback | undefined; + + /* Function that will be run after the modal has closed. */ + onAfterClose?(): void; + + /* Function that will be run when the modal is requested to be closed, prior to actually closing. */ + onRequestClose?(event: React.MouseEvent | React.KeyboardEvent): void; + + /* Number indicating the milliseconds to wait before closing the modal. Defaults to zero (no timeout). */ + closeTimeoutMS?: number | undefined; + + /* Boolean indicating if the appElement should be hidden. Defaults to true. */ + ariaHideApp?: boolean | undefined; + + /* Boolean indicating if the modal should be focused after render */ + shouldFocusAfterRender?: boolean | undefined; + + /* Boolean indicating if the overlay should close the modal. Defaults to true. */ + shouldCloseOnOverlayClick?: boolean | undefined; + + /* Boolean indicating if pressing the esc key should close the modal */ + shouldCloseOnEsc?: boolean | undefined; + + /* Boolean indicating if the modal should restore focus to the element that had focus prior to its display. */ + shouldReturnFocusAfterClose?: boolean | undefined; + + /* Boolean indicating if the modal should use the preventScroll flag when restoring focus to the element that had focus prior to its display. */ + preventScroll?: boolean | undefined; + + /* Function that will be called to get the parent element that the modal will be attached to. */ + parentSelector?(): HTMLElement; + + /* Additional aria attributes. */ + aria?: Aria | undefined; + + /* Additional data attributes to be applied to to the modal content in the form of "data-*" */ + data?: any; + + /* String indicating the role of the modal, allowing the 'dialog' role to be applied if desired. Defaults to "dialog". */ + role?: string | null | undefined; + + /* String indicating how the content container should be announced to screenreaders. */ + contentLabel?: string | undefined; + + /* Function accepting the ref for the content */ + contentRef?: ((instance: HTMLDivElement) => void) | undefined; + + /* Function accepting the ref for the overlay */ + overlayRef?: ((instance: HTMLDivElement) => void) | undefined; + + /* Custom Overlay element. */ + overlayElement?: + | ((props: React.ComponentPropsWithRef<"div">, contentEl: React.ReactElement) => React.ReactElement) + | undefined; + /* Custom Content element. */ + contentElement?: + | ((props: React.ComponentPropsWithRef<"div">, children: React.ReactNode) => React.ReactElement) + | undefined; + + /* String value of data-test-id attibute to be applied to to the modal content. */ + testId?: string | undefined; + + /* String value of an id attribute to be applied to the modal content */ + id?: string | undefined; + } +} + +declare class ReactModal extends React.Component { + /* Override base styles for all instances of this component. */ + static defaultStyles: ReactModal.Styles; + /** + * Call this to properly hide your application from assistive screenreaders + * and other assistive technologies while the modal is open. + */ + static setAppElement(appElement: string | HTMLElement): void; + + portal: null | { + overlay: null | HTMLDivElement; + content: null | HTMLDivElement; + }; +} diff --git a/node_modules/@types/react-modal/package.json b/node_modules/@types/react-modal/package.json new file mode 100644 index 0000000..b8bcdfc --- /dev/null +++ b/node_modules/@types/react-modal/package.json @@ -0,0 +1,72 @@ +{ + "name": "@types/react-modal", + "version": "3.16.3", + "description": "TypeScript definitions for react-modal", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-modal", + "license": "MIT", + "contributors": [ + { + "name": "Rajab Shakirov", + "githubUsername": "radziksh", + "url": "https://github.com/radziksh" + }, + { + "name": "Drew Noakes", + "githubUsername": "drewnoakes", + "url": "https://github.com/drewnoakes" + }, + { + "name": "Thomas B Homburg", + "githubUsername": "homburg", + "url": "https://github.com/homburg" + }, + { + "name": "Tatu Tamminen", + "githubUsername": "ttamminen", + "url": "https://github.com/ttamminen" + }, + { + "name": "Uwe Wiemer", + "githubUsername": "hallowatcher", + "url": "https://github.com/hallowatcher" + }, + { + "name": "Peter Blazejewicz", + "githubUsername": "peterblazejewicz", + "url": "https://github.com/peterblazejewicz" + }, + { + "name": "Justin Powell", + "githubUsername": "jpowell", + "url": "https://github.com/jpowell" + }, + { + "name": "Juwan Wheatley", + "githubUsername": "fiberjw", + "url": "https://github.com/fiberjw" + }, + { + "name": "Nitzan Mousan", + "githubUsername": "nitzanmo", + "url": "https://github.com/nitzanmo" + }, + { + "name": "dkrk", + "githubUsername": "grgr-dkrk", + "url": "https://github.com/grgr-dkrk" + } + ], + "main": "", + "types": "index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/react-modal" + }, + "scripts": {}, + "dependencies": { + "@types/react": "*" + }, + "typesPublisherContentHash": "0edd4ef0dc2d146dc1e5349063793431129b654fec3db0f5844a93dfd1cc0351", + "typeScriptVersion": "4.5" +} \ No newline at end of file diff --git a/node_modules/@types/react/LICENSE b/node_modules/@types/react/LICENSE new file mode 100644 index 0000000..9e841e7 --- /dev/null +++ b/node_modules/@types/react/LICENSE @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + 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/@types/react/README.md b/node_modules/@types/react/README.md new file mode 100644 index 0000000..f89d475 --- /dev/null +++ b/node_modules/@types/react/README.md @@ -0,0 +1,15 @@ +# Installation +> `npm install --save @types/react` + +# Summary +This package contains type definitions for react (https://react.dev/). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react. + +### Additional Details + * Last updated: Tue, 20 Aug 2024 20:36:15 GMT + * Dependencies: [@types/prop-types](https://npmjs.com/package/@types/prop-types), [csstype](https://npmjs.com/package/csstype) + +# Credits +These definitions were written by [Asana](https://asana.com), [AssureSign](http://www.assuresign.com), [Microsoft](https://microsoft.com), [John Reilly](https://github.com/johnnyreilly), [Benoit Benezech](https://github.com/bbenezech), [Patricio Zavolinsky](https://github.com/pzavolinsky), [Eric Anderson](https://github.com/ericanderson), [Dovydas Navickas](https://github.com/DovydasNavickas), [Josh Rutherford](https://github.com/theruther4d), [Guilherme Hübner](https://github.com/guilhermehubner), [Ferdy Budhidharma](https://github.com/ferdaber), [Johann Rakotoharisoa](https://github.com/jrakotoharisoa), [Olivier Pascal](https://github.com/pascaloliv), [Martin Hochel](https://github.com/hotell), [Frank Li](https://github.com/franklixuefei), [Jessica Franco](https://github.com/Jessidhia), [Saransh Kataria](https://github.com/saranshkataria), [Kanitkorn Sujautra](https://github.com/lukyth), [Sebastian Silbermann](https://github.com/eps1lon), [Kyle Scully](https://github.com/zieka), [Cong Zhang](https://github.com/dancerphil), [Dimitri Mitropoulos](https://github.com/dimitropoulos), [JongChan Choi](https://github.com/disjukr), [Victor Magalhães](https://github.com/vhfmag), [Dale Tan](https://github.com/hellatan), [Priyanshu Rav](https://github.com/priyanshurav), [Dmitry Semigradsky](https://github.com/Semigradsky), and [Matt Pocock](https://github.com/mattpocock). diff --git a/node_modules/@types/react/canary.d.ts b/node_modules/@types/react/canary.d.ts new file mode 100644 index 0000000..6e9b801 --- /dev/null +++ b/node_modules/@types/react/canary.d.ts @@ -0,0 +1,157 @@ +/** + * These are types for things that are present in the React `canary` release channel. + * + * To load the types declared here in an actual project, there are three ways. The easiest one, + * if your `tsconfig.json` already has a `"types"` array in the `"compilerOptions"` section, + * is to add `"react/canary"` to the `"types"` array. + * + * Alternatively, a specific import syntax can to be used from a typescript file. + * This module does not exist in reality, which is why the {} is important: + * + * ```ts + * import {} from 'react/canary' + * ``` + * + * It is also possible to include it through a triple-slash reference: + * + * ```ts + * /// + * ``` + * + * Either the import or the reference only needs to appear once, anywhere in the project. + */ + +// See https://github.com/facebook/react/blob/main/packages/react/src/React.js to see how the exports are declared, + +import React = require("."); + +export {}; + +declare const UNDEFINED_VOID_ONLY: unique symbol; +type VoidOrUndefinedOnly = void | { [UNDEFINED_VOID_ONLY]: never }; + +type NativeToggleEvent = ToggleEvent; + +declare module "." { + export type Usable = PromiseLike | Context; + + export function use(usable: Usable): T; + + interface ServerContextJSONArray extends ReadonlyArray {} + export type ServerContextJSONValue = + | string + | boolean + | number + | null + | ServerContextJSONArray + | { [key: string]: ServerContextJSONValue }; + export interface ServerContext { + Provider: Provider; + } + /** + * Accepts a context object (the value returned from `React.createContext` or `React.createServerContext`) and returns the current + * context value, as given by the nearest context provider for the given context. + * + * @version 16.8.0 + * @see https://react.dev/reference/react/useContext + */ + function useContext(context: ServerContext): T; + export function createServerContext( + globalName: string, + defaultValue: T, + ): ServerContext; + + // eslint-disable-next-line @typescript-eslint/ban-types + export function cache(fn: CachedFunction): CachedFunction; + + export function unstable_useCacheRefresh(): () => void; + + interface DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS { + functions: (formData: FormData) => void; + } + + export interface TransitionStartFunction { + /** + * Marks all state updates inside the async function as transitions + * + * @see {https://react.dev/reference/react/useTransition#starttransition} + * + * @param callback + */ + (callback: () => Promise): void; + } + + /** + * Similar to `useTransition` but allows uses where hooks are not available. + * + * @param callback An _asynchronous_ function which causes state updates that can be deferred. + */ + export function startTransition(scope: () => Promise): void; + + export function useOptimistic( + passthrough: State, + ): [State, (action: State | ((pendingState: State) => State)) => void]; + export function useOptimistic( + passthrough: State, + reducer: (state: State, action: Action) => State, + ): [State, (action: Action) => void]; + + interface DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES { + cleanup: () => VoidOrUndefinedOnly; + } + + export function useActionState( + action: (state: Awaited) => State | Promise, + initialState: Awaited, + permalink?: string, + ): [state: Awaited, dispatch: () => void, isPending: boolean]; + export function useActionState( + action: (state: Awaited, payload: Payload) => State | Promise, + initialState: Awaited, + permalink?: string, + ): [state: Awaited, dispatch: (payload: Payload) => void, isPending: boolean]; + + interface DOMAttributes { + // Transition Events + onTransitionCancel?: TransitionEventHandler | undefined; + onTransitionCancelCapture?: TransitionEventHandler | undefined; + onTransitionRun?: TransitionEventHandler | undefined; + onTransitionRunCapture?: TransitionEventHandler | undefined; + onTransitionStart?: TransitionEventHandler | undefined; + onTransitionStartCapture?: TransitionEventHandler | undefined; + } + + type ToggleEventHandler = EventHandler>; + + interface HTMLAttributes { + popover?: "" | "auto" | "manual" | undefined; + popoverTargetAction?: "toggle" | "show" | "hide" | undefined; + popoverTarget?: string | undefined; + onToggle?: ToggleEventHandler | undefined; + onBeforeToggle?: ToggleEventHandler | undefined; + } + + interface ToggleEvent extends SyntheticEvent { + oldState: "closed" | "open"; + newState: "closed" | "open"; + } + + /** + * @internal Use `Awaited` instead + */ + // Helper type to enable `Awaited`. + // Must be a copy of the non-thenables of `ReactNode`. + type AwaitedReactNode = + | ReactElement + | string + | number + | Iterable + | ReactPortal + | boolean + | null + | undefined; + interface DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_REACT_NODES { + promises: Promise; + bigints: bigint; + } +} diff --git a/node_modules/@types/react/experimental.d.ts b/node_modules/@types/react/experimental.d.ts new file mode 100644 index 0000000..a14be61 --- /dev/null +++ b/node_modules/@types/react/experimental.d.ts @@ -0,0 +1,127 @@ +/** + * These are types for things that are present in the `experimental` builds of React but not yet + * on a stable build. + * + * Once they are promoted to stable they can just be moved to the main index file. + * + * To load the types declared here in an actual project, there are three ways. The easiest one, + * if your `tsconfig.json` already has a `"types"` array in the `"compilerOptions"` section, + * is to add `"react/experimental"` to the `"types"` array. + * + * Alternatively, a specific import syntax can to be used from a typescript file. + * This module does not exist in reality, which is why the {} is important: + * + * ```ts + * import {} from 'react/experimental' + * ``` + * + * It is also possible to include it through a triple-slash reference: + * + * ```ts + * /// + * ``` + * + * Either the import or the reference only needs to appear once, anywhere in the project. + */ + +// See https://github.com/facebook/react/blob/master/packages/react/src/React.js to see how the exports are declared, +// and https://github.com/facebook/react/blob/master/packages/shared/ReactFeatureFlags.js to verify which APIs are +// flagged experimental or not. Experimental APIs will be tagged with `__EXPERIMENTAL__`. +// +// For the inputs of types exported as simply a fiber tag, the `beginWork` function of ReactFiberBeginWork.js +// is a good place to start looking for details; it generally calls prop validation functions or delegates +// all tasks done as part of the render phase (the concurrent part of the React update cycle). +// +// Suspense-related handling can be found in ReactFiberThrow.js. + +import React = require("./canary"); + +export {}; + +declare const UNDEFINED_VOID_ONLY: unique symbol; +type VoidOrUndefinedOnly = void | { [UNDEFINED_VOID_ONLY]: never }; + +declare module "." { + export interface SuspenseProps { + /** + * The presence of this prop indicates that the content is computationally expensive to render. + * In other words, the tree is CPU bound and not I/O bound (e.g. due to fetching data). + * @see {@link https://github.com/facebook/react/pull/19936} + */ + unstable_expectedLoadTime?: number | undefined; + } + + export type SuspenseListRevealOrder = "forwards" | "backwards" | "together"; + export type SuspenseListTailMode = "collapsed" | "hidden"; + + export interface SuspenseListCommonProps { + /** + * Note that SuspenseList require more than one child; + * it is a runtime warning to provide only a single child. + * + * It does, however, allow those children to be wrapped inside a single + * level of ``. + */ + children: ReactElement | Iterable; + } + + interface DirectionalSuspenseListProps extends SuspenseListCommonProps { + /** + * Defines the order in which the `SuspenseList` children should be revealed. + */ + revealOrder: "forwards" | "backwards"; + /** + * Dictates how unloaded items in a SuspenseList is shown. + * + * - By default, `SuspenseList` will show all fallbacks in the list. + * - `collapsed` shows only the next fallback in the list. + * - `hidden` doesn’t show any unloaded items. + */ + tail?: SuspenseListTailMode | undefined; + } + + interface NonDirectionalSuspenseListProps extends SuspenseListCommonProps { + /** + * Defines the order in which the `SuspenseList` children should be revealed. + */ + revealOrder?: Exclude | undefined; + /** + * The tail property is invalid when not using the `forwards` or `backwards` reveal orders. + */ + tail?: never | undefined; + } + + export type SuspenseListProps = DirectionalSuspenseListProps | NonDirectionalSuspenseListProps; + + /** + * `SuspenseList` helps coordinate many components that can suspend by orchestrating the order + * in which these components are revealed to the user. + * + * When multiple components need to fetch data, this data may arrive in an unpredictable order. + * However, if you wrap these items in a `SuspenseList`, React will not show an item in the list + * until previous items have been displayed (this behavior is adjustable). + * + * @see https://reactjs.org/docs/concurrent-mode-reference.html#suspenselist + * @see https://reactjs.org/docs/concurrent-mode-patterns.html#suspenselist + */ + export const unstable_SuspenseList: ExoticComponent; + + // eslint-disable-next-line @typescript-eslint/ban-types + export function experimental_useEffectEvent(event: T): T; + + type Reference = object; + type TaintableUniqueValue = string | bigint | ArrayBufferView; + function experimental_taintUniqueValue( + message: string | undefined, + lifetime: Reference, + value: TaintableUniqueValue, + ): void; + function experimental_taintObjectReference(message: string | undefined, object: Reference): void; + + export interface HTMLAttributes { + /** + * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/inert + */ + inert?: boolean | undefined; + } +} diff --git a/node_modules/@types/react/global.d.ts b/node_modules/@types/react/global.d.ts new file mode 100644 index 0000000..8ae2ddd --- /dev/null +++ b/node_modules/@types/react/global.d.ts @@ -0,0 +1,160 @@ +/* +React projects that don't include the DOM library need these interfaces to compile. +React Native applications use React, but there is no DOM available. The JavaScript runtime +is ES6/ES2015 only. These definitions allow such projects to compile with only `--lib ES6`. + +Warning: all of these interfaces are empty. If you want type definitions for various properties +(such as HTMLInputElement.prototype.value), you need to add `--lib DOM` (via command line or tsconfig.json). +*/ + +interface Event {} +interface AnimationEvent extends Event {} +interface ClipboardEvent extends Event {} +interface CompositionEvent extends Event {} +interface DragEvent extends Event {} +interface FocusEvent extends Event {} +interface KeyboardEvent extends Event {} +interface MouseEvent extends Event {} +interface TouchEvent extends Event {} +interface PointerEvent extends Event {} +interface ToggleEvent extends Event {} +interface TransitionEvent extends Event {} +interface UIEvent extends Event {} +interface WheelEvent extends Event {} + +interface EventTarget {} +interface Document {} +interface DataTransfer {} +interface StyleMedia {} + +interface Element {} +interface DocumentFragment {} + +interface HTMLElement extends Element {} +interface HTMLAnchorElement extends HTMLElement {} +interface HTMLAreaElement extends HTMLElement {} +interface HTMLAudioElement extends HTMLElement {} +interface HTMLBaseElement extends HTMLElement {} +interface HTMLBodyElement extends HTMLElement {} +interface HTMLBRElement extends HTMLElement {} +interface HTMLButtonElement extends HTMLElement {} +interface HTMLCanvasElement extends HTMLElement {} +interface HTMLDataElement extends HTMLElement {} +interface HTMLDataListElement extends HTMLElement {} +interface HTMLDetailsElement extends HTMLElement {} +interface HTMLDialogElement extends HTMLElement {} +interface HTMLDivElement extends HTMLElement {} +interface HTMLDListElement extends HTMLElement {} +interface HTMLEmbedElement extends HTMLElement {} +interface HTMLFieldSetElement extends HTMLElement {} +interface HTMLFormElement extends HTMLElement {} +interface HTMLHeadingElement extends HTMLElement {} +interface HTMLHeadElement extends HTMLElement {} +interface HTMLHRElement extends HTMLElement {} +interface HTMLHtmlElement extends HTMLElement {} +interface HTMLIFrameElement extends HTMLElement {} +interface HTMLImageElement extends HTMLElement {} +interface HTMLInputElement extends HTMLElement {} +interface HTMLModElement extends HTMLElement {} +interface HTMLLabelElement extends HTMLElement {} +interface HTMLLegendElement extends HTMLElement {} +interface HTMLLIElement extends HTMLElement {} +interface HTMLLinkElement extends HTMLElement {} +interface HTMLMapElement extends HTMLElement {} +interface HTMLMetaElement extends HTMLElement {} +interface HTMLMeterElement extends HTMLElement {} +interface HTMLObjectElement extends HTMLElement {} +interface HTMLOListElement extends HTMLElement {} +interface HTMLOptGroupElement extends HTMLElement {} +interface HTMLOptionElement extends HTMLElement {} +interface HTMLOutputElement extends HTMLElement {} +interface HTMLParagraphElement extends HTMLElement {} +interface HTMLParamElement extends HTMLElement {} +interface HTMLPreElement extends HTMLElement {} +interface HTMLProgressElement extends HTMLElement {} +interface HTMLQuoteElement extends HTMLElement {} +interface HTMLSlotElement extends HTMLElement {} +interface HTMLScriptElement extends HTMLElement {} +interface HTMLSelectElement extends HTMLElement {} +interface HTMLSourceElement extends HTMLElement {} +interface HTMLSpanElement extends HTMLElement {} +interface HTMLStyleElement extends HTMLElement {} +interface HTMLTableElement extends HTMLElement {} +interface HTMLTableColElement extends HTMLElement {} +interface HTMLTableDataCellElement extends HTMLElement {} +interface HTMLTableHeaderCellElement extends HTMLElement {} +interface HTMLTableRowElement extends HTMLElement {} +interface HTMLTableSectionElement extends HTMLElement {} +interface HTMLTemplateElement extends HTMLElement {} +interface HTMLTextAreaElement extends HTMLElement {} +interface HTMLTimeElement extends HTMLElement {} +interface HTMLTitleElement extends HTMLElement {} +interface HTMLTrackElement extends HTMLElement {} +interface HTMLUListElement extends HTMLElement {} +interface HTMLVideoElement extends HTMLElement {} +interface HTMLWebViewElement extends HTMLElement {} + +interface SVGElement extends Element {} +interface SVGSVGElement extends SVGElement {} +interface SVGCircleElement extends SVGElement {} +interface SVGClipPathElement extends SVGElement {} +interface SVGDefsElement extends SVGElement {} +interface SVGDescElement extends SVGElement {} +interface SVGEllipseElement extends SVGElement {} +interface SVGFEBlendElement extends SVGElement {} +interface SVGFEColorMatrixElement extends SVGElement {} +interface SVGFEComponentTransferElement extends SVGElement {} +interface SVGFECompositeElement extends SVGElement {} +interface SVGFEConvolveMatrixElement extends SVGElement {} +interface SVGFEDiffuseLightingElement extends SVGElement {} +interface SVGFEDisplacementMapElement extends SVGElement {} +interface SVGFEDistantLightElement extends SVGElement {} +interface SVGFEDropShadowElement extends SVGElement {} +interface SVGFEFloodElement extends SVGElement {} +interface SVGFEFuncAElement extends SVGElement {} +interface SVGFEFuncBElement extends SVGElement {} +interface SVGFEFuncGElement extends SVGElement {} +interface SVGFEFuncRElement extends SVGElement {} +interface SVGFEGaussianBlurElement extends SVGElement {} +interface SVGFEImageElement extends SVGElement {} +interface SVGFEMergeElement extends SVGElement {} +interface SVGFEMergeNodeElement extends SVGElement {} +interface SVGFEMorphologyElement extends SVGElement {} +interface SVGFEOffsetElement extends SVGElement {} +interface SVGFEPointLightElement extends SVGElement {} +interface SVGFESpecularLightingElement extends SVGElement {} +interface SVGFESpotLightElement extends SVGElement {} +interface SVGFETileElement extends SVGElement {} +interface SVGFETurbulenceElement extends SVGElement {} +interface SVGFilterElement extends SVGElement {} +interface SVGForeignObjectElement extends SVGElement {} +interface SVGGElement extends SVGElement {} +interface SVGImageElement extends SVGElement {} +interface SVGLineElement extends SVGElement {} +interface SVGLinearGradientElement extends SVGElement {} +interface SVGMarkerElement extends SVGElement {} +interface SVGMaskElement extends SVGElement {} +interface SVGMetadataElement extends SVGElement {} +interface SVGPathElement extends SVGElement {} +interface SVGPatternElement extends SVGElement {} +interface SVGPolygonElement extends SVGElement {} +interface SVGPolylineElement extends SVGElement {} +interface SVGRadialGradientElement extends SVGElement {} +interface SVGRectElement extends SVGElement {} +interface SVGSetElement extends SVGElement {} +interface SVGStopElement extends SVGElement {} +interface SVGSwitchElement extends SVGElement {} +interface SVGSymbolElement extends SVGElement {} +interface SVGTextElement extends SVGElement {} +interface SVGTextPathElement extends SVGElement {} +interface SVGTSpanElement extends SVGElement {} +interface SVGUseElement extends SVGElement {} +interface SVGViewElement extends SVGElement {} + +interface FormData {} +interface Text {} +interface TouchList {} +interface WebGLRenderingContext {} +interface WebGL2RenderingContext {} + +interface TrustedHTML {} diff --git a/node_modules/@types/react/index.d.ts b/node_modules/@types/react/index.d.ts new file mode 100644 index 0000000..1c361b3 --- /dev/null +++ b/node_modules/@types/react/index.d.ts @@ -0,0 +1,4537 @@ +// NOTE: Users of the `experimental` builds of React should add a reference +// to 'react/experimental' in their project. See experimental.d.ts's top comment +// for reference and documentation on how exactly to do it. + +/// + +import * as CSS from "csstype"; +import * as PropTypes from "prop-types"; + +type NativeAnimationEvent = AnimationEvent; +type NativeClipboardEvent = ClipboardEvent; +type NativeCompositionEvent = CompositionEvent; +type NativeDragEvent = DragEvent; +type NativeFocusEvent = FocusEvent; +type NativeKeyboardEvent = KeyboardEvent; +type NativeMouseEvent = MouseEvent; +type NativeTouchEvent = TouchEvent; +type NativePointerEvent = PointerEvent; +type NativeTransitionEvent = TransitionEvent; +type NativeUIEvent = UIEvent; +type NativeWheelEvent = WheelEvent; + +/** + * Used to represent DOM API's where users can either pass + * true or false as a boolean or as its equivalent strings. + */ +type Booleanish = boolean | "true" | "false"; + +/** + * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin MDN} + */ +type CrossOrigin = "anonymous" | "use-credentials" | "" | undefined; + +declare const UNDEFINED_VOID_ONLY: unique symbol; + +/** + * The function returned from an effect passed to {@link React.useEffect useEffect}, + * which can be used to clean up the effect when the component unmounts. + * + * @see {@link https://react.dev/reference/react/useEffect React Docs} + */ +type Destructor = () => void | { [UNDEFINED_VOID_ONLY]: never }; +type VoidOrUndefinedOnly = void | { [UNDEFINED_VOID_ONLY]: never }; + +// eslint-disable-next-line @definitelytyped/export-just-namespace +export = React; +export as namespace React; + +declare namespace React { + // + // React Elements + // ---------------------------------------------------------------------- + + /** + * Used to retrieve the possible components which accept a given set of props. + * + * Can be passed no type parameters to get a union of all possible components + * and tags. + * + * Is a superset of {@link ComponentType}. + * + * @template P The props to match against. If not passed, defaults to any. + * @template Tag An optional tag to match against. If not passed, attempts to match against all possible tags. + * + * @example + * + * ```tsx + * // All components and tags (img, embed etc.) + * // which accept `src` + * type SrcComponents = ElementType<{ src: any }>; + * ``` + * + * @example + * + * ```tsx + * // All components + * type AllComponents = ElementType; + * ``` + * + * @example + * + * ```tsx + * // All custom components which match `src`, and tags which + * // match `src`, narrowed down to just `audio` and `embed` + * type SrcComponents = ElementType<{ src: any }, 'audio' | 'embed'>; + * ``` + */ + type ElementType

      = + | { [K in Tag]: P extends JSX.IntrinsicElements[K] ? K : never }[Tag] + | ComponentType

      ; + + /** + * Represents any user-defined component, either as a function or a class. + * + * Similar to {@link JSXElementConstructor}, but with extra properties like + * {@link FunctionComponent.defaultProps defaultProps } and + * {@link ComponentClass.contextTypes contextTypes}. + * + * @template P The props the component accepts. + * + * @see {@link ComponentClass} + * @see {@link FunctionComponent} + */ + type ComponentType

      = ComponentClass

      | FunctionComponent

      ; + + /** + * Represents any user-defined component, either as a function or a class. + * + * Similar to {@link ComponentType}, but without extra properties like + * {@link FunctionComponent.defaultProps defaultProps } and + * {@link ComponentClass.contextTypes contextTypes}. + * + * @template P The props the component accepts. + */ + type JSXElementConstructor

      = + | (( + props: P, + /** + * @deprecated + * + * @see {@link https://legacy.reactjs.org/docs/legacy-context.html#referencing-context-in-stateless-function-components React Docs} + */ + deprecatedLegacyContext?: any, + ) => ReactNode) + | (new( + props: P, + /** + * @deprecated + * + * @see {@link https://legacy.reactjs.org/docs/legacy-context.html#referencing-context-in-lifecycle-methods React Docs} + */ + deprecatedLegacyContext?: any, + ) => Component); + + /** + * A readonly ref container where {@link current} cannot be mutated. + * + * Created by {@link createRef}, or {@link useRef} when passed `null`. + * + * @template T The type of the ref's value. + * + * @example + * + * ```tsx + * const ref = createRef(); + * + * ref.current = document.createElement('div'); // Error + * ``` + */ + interface RefObject { + /** + * The current value of the ref. + */ + readonly current: T | null; + } + + interface DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES { + } + /** + * A callback fired whenever the ref's value changes. + * + * @template T The type of the ref's value. + * + * @see {@link https://react.dev/reference/react-dom/components/common#ref-callback React Docs} + * + * @example + * + * ```tsx + *

      console.log(node)} /> + * ``` + */ + type RefCallback = { + bivarianceHack( + instance: T | null, + ): + | void + | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[ + keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES + ]; + }["bivarianceHack"]; + + /** + * A union type of all possible shapes for React refs. + * + * @see {@link RefCallback} + * @see {@link RefObject} + */ + + type Ref = RefCallback | RefObject | null; + /** + * A legacy implementation of refs where you can pass a string to a ref prop. + * + * @see {@link https://react.dev/reference/react/Component#refs React Docs} + * + * @example + * + * ```tsx + *
      + * ``` + */ + // TODO: Remove the string ref special case from `PropsWithRef` once we remove LegacyRef + type LegacyRef = string | Ref; + + /** + * Retrieves the type of the 'ref' prop for a given component type or tag name. + * + * @template C The component type. + * + * @example + * + * ```tsx + * type MyComponentRef = React.ElementRef; + * ``` + * + * @example + * + * ```tsx + * type DivRef = React.ElementRef<'div'>; + * ``` + */ + type ElementRef< + C extends + | ForwardRefExoticComponent + | { new(props: any): Component } + | ((props: any, deprecatedLegacyContext?: any) => ReactNode) + | keyof JSX.IntrinsicElements, + > = + // need to check first if `ref` is a valid prop for ts@3.0 + // otherwise it will infer `{}` instead of `never` + "ref" extends keyof ComponentPropsWithRef + ? NonNullable["ref"]> extends RefAttributes< + infer Instance + >["ref"] ? Instance + : never + : never; + + type ComponentState = any; + + /** + * A value which uniquely identifies a node among items in an array. + * + * @see {@link https://react.dev/learn/rendering-lists#keeping-list-items-in-order-with-key React Docs} + */ + type Key = string | number | bigint; + + /** + * @internal The props any component can receive. + * You don't have to add this type. All components automatically accept these props. + * ```tsx + * const Component = () =>
      ; + * + * ``` + * + * WARNING: The implementation of a component will never have access to these attributes. + * The following example would be incorrect usage because {@link Component} would never have access to `key`: + * ```tsx + * const Component = (props: React.Attributes) => props.key; + * ``` + */ + interface Attributes { + key?: Key | null | undefined; + } + /** + * The props any component accepting refs can receive. + * Class components, built-in browser components (e.g. `div`) and forwardRef components can receive refs and automatically accept these props. + * ```tsx + * const Component = forwardRef(() =>
      ); + * console.log(current)} /> + * ``` + * + * You only need this type if you manually author the types of props that need to be compatible with legacy refs. + * ```tsx + * interface Props extends React.RefAttributes {} + * declare const Component: React.FunctionComponent; + * ``` + * + * Otherwise it's simpler to directly use {@link Ref} since you can safely use the + * props type to describe to props that a consumer can pass to the component + * as well as describing the props the implementation of a component "sees". + * {@link RefAttributes} is generally not safe to describe both consumer and seen props. + * + * ```tsx + * interface Props extends { + * ref?: React.Ref | undefined; + * } + * declare const Component: React.FunctionComponent; + * ``` + * + * WARNING: The implementation of a component will not have access to the same type in versions of React supporting string refs. + * The following example would be incorrect usage because {@link Component} would never have access to a `ref` with type `string` + * ```tsx + * const Component = (props: React.RefAttributes) => props.ref; + * ``` + */ + interface RefAttributes extends Attributes { + /** + * Allows getting a ref to the component instance. + * Once the component unmounts, React will set `ref.current` to `null` + * (or call the ref with `null` if you passed a callback ref). + * + * @see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs} + */ + ref?: LegacyRef | undefined; + } + + /** + * Represents the built-in attributes available to class components. + */ + interface ClassAttributes extends RefAttributes { + } + + /** + * Represents a JSX element. + * + * Where {@link ReactNode} represents everything that can be rendered, `ReactElement` + * only represents JSX. + * + * @template P The type of the props object + * @template T The type of the component or tag + * + * @example + * + * ```tsx + * const element: ReactElement =
      ; + * ``` + */ + interface ReactElement< + P = any, + T extends string | JSXElementConstructor = string | JSXElementConstructor, + > { + type: T; + props: P; + key: string | null; + } + + /** + * @deprecated + */ + interface ReactComponentElement< + T extends keyof JSX.IntrinsicElements | JSXElementConstructor, + P = Pick, Exclude, "key" | "ref">>, + > extends ReactElement> {} + + interface FunctionComponentElement

      extends ReactElement> { + ref?: ("ref" extends keyof P ? P extends { ref?: infer R | undefined } ? R : never : never) | undefined; + } + + type CElement> = ComponentElement; + interface ComponentElement> extends ReactElement> { + ref?: LegacyRef | undefined; + } + + /** + * @deprecated Use {@link ComponentElement} instead. + */ + type ClassicElement

      = CElement>; + + // string fallback for custom web-components + interface DOMElement

      | SVGAttributes, T extends Element> + extends ReactElement + { + ref: LegacyRef; + } + + // ReactHTML for ReactHTMLElement + interface ReactHTMLElement extends DetailedReactHTMLElement, T> {} + + interface DetailedReactHTMLElement

      , T extends HTMLElement> extends DOMElement { + type: keyof ReactHTML; + } + + // ReactSVG for ReactSVGElement + interface ReactSVGElement extends DOMElement, SVGElement> { + type: keyof ReactSVG; + } + + interface ReactPortal extends ReactElement { + children: ReactNode; + } + + // + // Factories + // ---------------------------------------------------------------------- + + type Factory

      = (props?: Attributes & P, ...children: ReactNode[]) => ReactElement

      ; + + /** + * @deprecated Please use `FunctionComponentFactory` + */ + type SFCFactory

      = FunctionComponentFactory

      ; + + type FunctionComponentFactory

      = ( + props?: Attributes & P, + ...children: ReactNode[] + ) => FunctionComponentElement

      ; + + type ComponentFactory> = ( + props?: ClassAttributes & P, + ...children: ReactNode[] + ) => CElement; + + type CFactory> = ComponentFactory; + type ClassicFactory

      = CFactory>; + + type DOMFactory

      , T extends Element> = ( + props?: ClassAttributes & P | null, + ...children: ReactNode[] + ) => DOMElement; + + interface HTMLFactory extends DetailedHTMLFactory, T> {} + + interface DetailedHTMLFactory

      , T extends HTMLElement> extends DOMFactory { + (props?: ClassAttributes & P | null, ...children: ReactNode[]): DetailedReactHTMLElement; + } + + interface SVGFactory extends DOMFactory, SVGElement> { + ( + props?: ClassAttributes & SVGAttributes | null, + ...children: ReactNode[] + ): ReactSVGElement; + } + + /** + * @deprecated - This type is not relevant when using React. Inline the type instead to make the intent clear. + */ + type ReactText = string | number; + /** + * @deprecated - This type is not relevant when using React. Inline the type instead to make the intent clear. + */ + type ReactChild = ReactElement | string | number; + + /** + * @deprecated Use either `ReactNode[]` if you need an array or `Iterable` if its passed to a host component. + */ + interface ReactNodeArray extends ReadonlyArray {} + /** + * WARNING: Not related to `React.Fragment`. + * @deprecated This type is not relevant when using React. Inline the type instead to make the intent clear. + */ + type ReactFragment = Iterable; + + /** + * Different release channels declare additional types of ReactNode this particular release channel accepts. + * App or library types should never augment this interface. + */ + interface DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_REACT_NODES {} + + /** + * Represents all of the things React can render. + * + * Where {@link ReactElement} only represents JSX, `ReactNode` represents everything that can be rendered. + * + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/react-types/reactnode/ React TypeScript Cheatsheet} + * + * @example + * + * ```tsx + * // Typing children + * type Props = { children: ReactNode } + * + * const Component = ({ children }: Props) =>

      {children}
      + * + * hello + * ``` + * + * @example + * + * ```tsx + * // Typing a custom element + * type Props = { customElement: ReactNode } + * + * const Component = ({ customElement }: Props) =>
      {customElement}
      + * + * hello
      } /> + * ``` + */ + // non-thenables need to be kept in sync with AwaitedReactNode + type ReactNode = + | ReactElement + | string + | number + | Iterable + | ReactPortal + | boolean + | null + | undefined + | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_REACT_NODES[ + keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_REACT_NODES + ]; + + // + // Top Level API + // ---------------------------------------------------------------------- + + // DOM Elements + /** @deprecated */ + function createFactory( + type: keyof ReactHTML, + ): HTMLFactory; + /** @deprecated */ + function createFactory( + type: keyof ReactSVG, + ): SVGFactory; + /** @deprecated */ + function createFactory

      , T extends Element>( + type: string, + ): DOMFactory; + + // Custom components + /** @deprecated */ + function createFactory

      (type: FunctionComponent

      ): FunctionComponentFactory

      ; + /** @deprecated */ + function createFactory, C extends ComponentClass

      >( + type: ClassType, + ): CFactory; + /** @deprecated */ + function createFactory

      (type: ComponentClass

      ): Factory

      ; + + // DOM Elements + // TODO: generalize this to everything in `keyof ReactHTML`, not just "input" + function createElement( + type: "input", + props?: InputHTMLAttributes & ClassAttributes | null, + ...children: ReactNode[] + ): DetailedReactHTMLElement, HTMLInputElement>; + function createElement

      , T extends HTMLElement>( + type: keyof ReactHTML, + props?: ClassAttributes & P | null, + ...children: ReactNode[] + ): DetailedReactHTMLElement; + function createElement

      , T extends SVGElement>( + type: keyof ReactSVG, + props?: ClassAttributes & P | null, + ...children: ReactNode[] + ): ReactSVGElement; + function createElement

      , T extends Element>( + type: string, + props?: ClassAttributes & P | null, + ...children: ReactNode[] + ): DOMElement; + + // Custom components + + function createElement

      ( + type: FunctionComponent

      , + props?: Attributes & P | null, + ...children: ReactNode[] + ): FunctionComponentElement

      ; + function createElement

      , C extends ComponentClass

      >( + type: ClassType, + props?: ClassAttributes & P | null, + ...children: ReactNode[] + ): CElement; + function createElement

      ( + type: FunctionComponent

      | ComponentClass

      | string, + props?: Attributes & P | null, + ...children: ReactNode[] + ): ReactElement

      ; + + // DOM Elements + // ReactHTMLElement + function cloneElement

      , T extends HTMLElement>( + element: DetailedReactHTMLElement, + props?: P, + ...children: ReactNode[] + ): DetailedReactHTMLElement; + // ReactHTMLElement, less specific + function cloneElement

      , T extends HTMLElement>( + element: ReactHTMLElement, + props?: P, + ...children: ReactNode[] + ): ReactHTMLElement; + // SVGElement + function cloneElement

      , T extends SVGElement>( + element: ReactSVGElement, + props?: P, + ...children: ReactNode[] + ): ReactSVGElement; + // DOM Element (has to be the last, because type checking stops at first overload that fits) + function cloneElement

      , T extends Element>( + element: DOMElement, + props?: DOMAttributes & P, + ...children: ReactNode[] + ): DOMElement; + + // Custom components + function cloneElement

      ( + element: FunctionComponentElement

      , + props?: Partial

      & Attributes, + ...children: ReactNode[] + ): FunctionComponentElement

      ; + function cloneElement>( + element: CElement, + props?: Partial

      & ClassAttributes, + ...children: ReactNode[] + ): CElement; + function cloneElement

      ( + element: ReactElement

      , + props?: Partial

      & Attributes, + ...children: ReactNode[] + ): ReactElement

      ; + + /** + * Describes the props accepted by a Context {@link Provider}. + * + * @template T The type of the value the context provides. + */ + interface ProviderProps { + value: T; + children?: ReactNode | undefined; + } + + /** + * Describes the props accepted by a Context {@link Consumer}. + * + * @template T The type of the value the context provides. + */ + interface ConsumerProps { + children: (value: T) => ReactNode; + } + + /** + * An object masquerading as a component. These are created by functions + * like {@link forwardRef}, {@link memo}, and {@link createContext}. + * + * In order to make TypeScript work, we pretend that they are normal + * components. + * + * But they are, in fact, not callable - instead, they are objects which + * are treated specially by the renderer. + * + * @template P The props the component accepts. + */ + interface ExoticComponent

      { + (props: P): ReactNode; + readonly $$typeof: symbol; + } + + /** + * An {@link ExoticComponent} with a `displayName` property applied to it. + * + * @template P The props the component accepts. + */ + interface NamedExoticComponent

      extends ExoticComponent

      { + /** + * Used in debugging messages. You might want to set it + * explicitly if you want to display a different name for + * debugging purposes. + * + * @see {@link https://legacy.reactjs.org/docs/react-component.html#displayname Legacy React Docs} + */ + displayName?: string | undefined; + } + + /** + * An {@link ExoticComponent} with a `propTypes` property applied to it. + * + * @template P The props the component accepts. + */ + interface ProviderExoticComponent

      extends ExoticComponent

      { + propTypes?: WeakValidationMap

      | undefined; + } + + /** + * Used to retrieve the type of a context object from a {@link Context}. + * + * @template C The context object. + * + * @example + * + * ```tsx + * import { createContext } from 'react'; + * + * const MyContext = createContext({ foo: 'bar' }); + * + * type ContextType = ContextType; + * // ContextType = { foo: string } + * ``` + */ + type ContextType> = C extends Context ? T : never; + + /** + * Wraps your components to specify the value of this context for all components inside. + * + * @see {@link https://react.dev/reference/react/createContext#provider React Docs} + * + * @example + * + * ```tsx + * import { createContext } from 'react'; + * + * const ThemeContext = createContext('light'); + * + * function App() { + * return ( + * + * + * + * ); + * } + * ``` + */ + type Provider = ProviderExoticComponent>; + + /** + * The old way to read context, before {@link useContext} existed. + * + * @see {@link https://react.dev/reference/react/createContext#consumer React Docs} + * + * @example + * + * ```tsx + * import { UserContext } from './user-context'; + * + * function Avatar() { + * return ( + * + * {user => {user.name}} + * + * ); + * } + * ``` + */ + type Consumer = ExoticComponent>; + + /** + * Context lets components pass information deep down without explicitly + * passing props. + * + * Created from {@link createContext} + * + * @see {@link https://react.dev/learn/passing-data-deeply-with-context React Docs} + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/context/ React TypeScript Cheatsheet} + * + * @example + * + * ```tsx + * import { createContext } from 'react'; + * + * const ThemeContext = createContext('light'); + * ``` + */ + interface Context { + Provider: Provider; + Consumer: Consumer; + /** + * Used in debugging messages. You might want to set it + * explicitly if you want to display a different name for + * debugging purposes. + * + * @see {@link https://legacy.reactjs.org/docs/react-component.html#displayname Legacy React Docs} + */ + displayName?: string | undefined; + } + + /** + * Lets you create a {@link Context} that components can provide or read. + * + * @param defaultValue The value you want the context to have when there is no matching + * {@link Provider} in the tree above the component reading the context. This is meant + * as a "last resort" fallback. + * + * @see {@link https://react.dev/reference/react/createContext#reference React Docs} + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/context/ React TypeScript Cheatsheet} + * + * @example + * + * ```tsx + * import { createContext } from 'react'; + * + * const ThemeContext = createContext('light'); + * ``` + */ + function createContext( + // If you thought this should be optional, see + // https://github.com/DefinitelyTyped/DefinitelyTyped/pull/24509#issuecomment-382213106 + defaultValue: T, + ): Context; + + function isValidElement

      (object: {} | null | undefined): object is ReactElement

      ; + + /** + * Maintainer's note: Sync with {@link ReactChildren} until {@link ReactChildren} is removed. + */ + const Children: { + map( + children: C | readonly C[], + fn: (child: C, index: number) => T, + ): C extends null | undefined ? C : Array>; + forEach(children: C | readonly C[], fn: (child: C, index: number) => void): void; + count(children: any): number; + only(children: C): C extends any[] ? never : C; + toArray(children: ReactNode | ReactNode[]): Array>; + }; + /** + * Lets you group elements without a wrapper node. + * + * @see {@link https://react.dev/reference/react/Fragment React Docs} + * + * @example + * + * ```tsx + * import { Fragment } from 'react'; + * + * + * Hello + * World + * + * ``` + * + * @example + * + * ```tsx + * // Using the <> shorthand syntax: + * + * <> + * Hello + * World + * + * ``` + */ + const Fragment: ExoticComponent<{ children?: ReactNode | undefined }>; + + /** + * Lets you find common bugs in your components early during development. + * + * @see {@link https://react.dev/reference/react/StrictMode React Docs} + * + * @example + * + * ```tsx + * import { StrictMode } from 'react'; + * + * + * + * + * ``` + */ + const StrictMode: ExoticComponent<{ children?: ReactNode | undefined }>; + + /** + * The props accepted by {@link Suspense}. + * + * @see {@link https://react.dev/reference/react/Suspense React Docs} + */ + interface SuspenseProps { + children?: ReactNode | undefined; + + /** A fallback react tree to show when a Suspense child (like React.lazy) suspends */ + fallback?: ReactNode; + } + + /** + * Lets you display a fallback until its children have finished loading. + * + * @see {@link https://react.dev/reference/react/Suspense React Docs} + * + * @example + * + * ```tsx + * import { Suspense } from 'react'; + * + * }> + * + * + * ``` + */ + const Suspense: ExoticComponent; + const version: string; + + /** + * The callback passed to {@link ProfilerProps.onRender}. + * + * @see {@link https://react.dev/reference/react/Profiler#onrender-callback React Docs} + */ + type ProfilerOnRenderCallback = ( + /** + * The string id prop of the {@link Profiler} tree that has just committed. This lets + * you identify which part of the tree was committed if you are using multiple + * profilers. + * + * @see {@link https://react.dev/reference/react/Profiler#onrender-callback React Docs} + */ + id: string, + /** + * This lets you know whether the tree has just been mounted for the first time + * or re-rendered due to a change in props, state, or hooks. + * + * @see {@link https://react.dev/reference/react/Profiler#onrender-callback React Docs} + */ + phase: "mount" | "update" | "nested-update", + /** + * The number of milliseconds spent rendering the {@link Profiler} and its descendants + * for the current update. This indicates how well the subtree makes use of + * memoization (e.g. {@link memo} and {@link useMemo}). Ideally this value should decrease + * significantly after the initial mount as many of the descendants will only need to + * re-render if their specific props change. + * + * @see {@link https://react.dev/reference/react/Profiler#onrender-callback React Docs} + */ + actualDuration: number, + /** + * The number of milliseconds estimating how much time it would take to re-render the entire + * {@link Profiler} subtree without any optimizations. It is calculated by summing up the most + * recent render durations of each component in the tree. This value estimates a worst-case + * cost of rendering (e.g. the initial mount or a tree with no memoization). Compare + * {@link actualDuration} against it to see if memoization is working. + * + * @see {@link https://react.dev/reference/react/Profiler#onrender-callback React Docs} + */ + baseDuration: number, + /** + * A numeric timestamp for when React began rendering the current update. + * + * @see {@link https://react.dev/reference/react/Profiler#onrender-callback React Docs} + */ + startTime: number, + /** + * A numeric timestamp for when React committed the current update. This value is shared + * between all profilers in a commit, enabling them to be grouped if desirable. + * + * @see {@link https://react.dev/reference/react/Profiler#onrender-callback React Docs} + */ + commitTime: number, + ) => void; + + /** + * The props accepted by {@link Profiler}. + * + * @see {@link https://react.dev/reference/react/Profiler React Docs} + */ + interface ProfilerProps { + children?: ReactNode | undefined; + id: string; + onRender: ProfilerOnRenderCallback; + } + + /** + * Lets you measure rendering performance of a React tree programmatically. + * + * @see {@link https://react.dev/reference/react/Profiler#onrender-callback React Docs} + * + * @example + * + * ```tsx + * + * + * + * ``` + */ + const Profiler: ExoticComponent; + + // + // Component API + // ---------------------------------------------------------------------- + + type ReactInstance = Component | Element; + + // Base component for plain JS classes + interface Component

      extends ComponentLifecycle {} + class Component { + /** + * If set, `this.context` will be set at runtime to the current value of the given Context. + * + * @example + * + * ```ts + * type MyContext = number + * const Ctx = React.createContext(0) + * + * class Foo extends React.Component { + * static contextType = Ctx + * context!: React.ContextType + * render () { + * return <>My context's value: {this.context}; + * } + * } + * ``` + * + * @see {@link https://react.dev/reference/react/Component#static-contexttype} + */ + static contextType?: Context | undefined; + + /** + * If using the new style context, re-declare this in your class to be the + * `React.ContextType` of your `static contextType`. + * Should be used with type annotation or static contextType. + * + * @example + * ```ts + * static contextType = MyContext + * // For TS pre-3.7: + * context!: React.ContextType + * // For TS 3.7 and above: + * declare context: React.ContextType + * ``` + * + * @see {@link https://react.dev/reference/react/Component#context React Docs} + */ + context: unknown; + + constructor(props: P); + /** + * @deprecated + * @see {@link https://legacy.reactjs.org/docs/legacy-context.html React Docs} + */ + constructor(props: P, context: any); + + // We MUST keep setState() as a unified signature because it allows proper checking of the method return type. + // See: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/18365#issuecomment-351013257 + // Also, the ` | S` allows intellisense to not be dumbisense + setState( + state: ((prevState: Readonly, props: Readonly

      ) => Pick | S | null) | (Pick | S | null), + callback?: () => void, + ): void; + + forceUpdate(callback?: () => void): void; + render(): ReactNode; + + readonly props: Readonly

      ; + state: Readonly; + /** + * @deprecated + * + * @see {@link https://legacy.reactjs.org/docs/refs-and-the-dom.html#legacy-api-string-refs Legacy React Docs} + */ + refs: { + [key: string]: ReactInstance; + }; + } + + class PureComponent

      extends Component {} + + /** + * @deprecated Use `ClassicComponent` from `create-react-class` + * + * @see {@link https://legacy.reactjs.org/docs/react-without-es6.html Legacy React Docs} + * @see {@link https://www.npmjs.com/package/create-react-class `create-react-class` on npm} + */ + interface ClassicComponent

      extends Component { + replaceState(nextState: S, callback?: () => void): void; + isMounted(): boolean; + getInitialState?(): S; + } + + interface ChildContextProvider { + getChildContext(): CC; + } + + // + // Class Interfaces + // ---------------------------------------------------------------------- + + /** + * Represents the type of a function component. Can optionally + * receive a type argument that represents the props the component + * receives. + * + * @template P The props the component accepts. + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/function_components React TypeScript Cheatsheet} + * @alias for {@link FunctionComponent} + * + * @example + * + * ```tsx + * // With props: + * type Props = { name: string } + * + * const MyComponent: FC = (props) => { + * return

      {props.name}
      + * } + * ``` + * + * @example + * + * ```tsx + * // Without props: + * const MyComponentWithoutProps: FC = () => { + * return
      MyComponentWithoutProps
      + * } + * ``` + */ + type FC

      = FunctionComponent

      ; + + /** + * Represents the type of a function component. Can optionally + * receive a type argument that represents the props the component + * accepts. + * + * @template P The props the component accepts. + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/function_components React TypeScript Cheatsheet} + * + * @example + * + * ```tsx + * // With props: + * type Props = { name: string } + * + * const MyComponent: FunctionComponent = (props) => { + * return

      {props.name}
      + * } + * ``` + * + * @example + * + * ```tsx + * // Without props: + * const MyComponentWithoutProps: FunctionComponent = () => { + * return
      MyComponentWithoutProps
      + * } + * ``` + */ + interface FunctionComponent

      { + ( + props: P, + /** + * @deprecated + * + * @see {@link https://legacy.reactjs.org/docs/legacy-context.html#referencing-context-in-lifecycle-methods React Docs} + */ + deprecatedLegacyContext?: any, + ): ReactNode; + /** + * Used to declare the types of the props accepted by the + * component. These types will be checked during rendering + * and in development only. + * + * We recommend using TypeScript instead of checking prop + * types at runtime. + * + * @see {@link https://react.dev/reference/react/Component#static-proptypes React Docs} + */ + propTypes?: WeakValidationMap

      | undefined; + /** + * @deprecated + * + * Lets you specify which legacy context is consumed by + * this component. + * + * @see {@link https://legacy.reactjs.org/docs/legacy-context.html Legacy React Docs} + */ + contextTypes?: ValidationMap | undefined; + /** + * Used to define default values for the props accepted by + * the component. + * + * @see {@link https://react.dev/reference/react/Component#static-defaultprops React Docs} + * + * @example + * + * ```tsx + * type Props = { name?: string } + * + * const MyComponent: FC = (props) => { + * return

      {props.name}
      + * } + * + * MyComponent.defaultProps = { + * name: 'John Doe' + * } + * ``` + * + * @deprecated Use {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#default_value|default values for destructuring assignments instead}. + */ + defaultProps?: Partial

      | undefined; + /** + * Used in debugging messages. You might want to set it + * explicitly if you want to display a different name for + * debugging purposes. + * + * @see {@link https://legacy.reactjs.org/docs/react-component.html#displayname Legacy React Docs} + * + * @example + * + * ```tsx + * + * const MyComponent: FC = () => { + * return

      Hello!
      + * } + * + * MyComponent.displayName = 'MyAwesomeComponent' + * ``` + */ + displayName?: string | undefined; + } + + /** + * @deprecated - Equivalent to {@link React.FunctionComponent}. + * + * @see {@link React.FunctionComponent} + * @alias {@link VoidFunctionComponent} + */ + type VFC

      = VoidFunctionComponent

      ; + + /** + * @deprecated - Equivalent to {@link React.FunctionComponent}. + * + * @see {@link React.FunctionComponent} + */ + interface VoidFunctionComponent

      { + ( + props: P, + /** + * @deprecated + * + * @see {@link https://legacy.reactjs.org/docs/legacy-context.html#referencing-context-in-lifecycle-methods React Docs} + */ + deprecatedLegacyContext?: any, + ): ReactNode; + propTypes?: WeakValidationMap

      | undefined; + contextTypes?: ValidationMap | undefined; + /** + * @deprecated Use {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#default_value|default values for destructuring assignments instead}. + */ + defaultProps?: Partial

      | undefined; + displayName?: string | undefined; + } + + /** + * The type of the ref received by a {@link ForwardRefRenderFunction}. + * + * @see {@link ForwardRefRenderFunction} + */ + type ForwardedRef = ((instance: T | null) => void) | MutableRefObject | null; + + /** + * The type of the function passed to {@link forwardRef}. This is considered different + * to a normal {@link FunctionComponent} because it receives an additional argument, + * + * @param props Props passed to the component, if any. + * @param ref A ref forwarded to the component of type {@link ForwardedRef}. + * + * @template T The type of the forwarded ref. + * @template P The type of the props the component accepts. + * + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/forward_and_create_ref/ React TypeScript Cheatsheet} + * @see {@link forwardRef} + */ + interface ForwardRefRenderFunction { + (props: P, ref: ForwardedRef): ReactNode; + /** + * Used in debugging messages. You might want to set it + * explicitly if you want to display a different name for + * debugging purposes. + * + * Will show `ForwardRef(${Component.displayName || Component.name})` + * in devtools by default, but can be given its own specific name. + * + * @see {@link https://legacy.reactjs.org/docs/react-component.html#displayname Legacy React Docs} + */ + displayName?: string | undefined; + /** + * defaultProps are not supported on render functions passed to forwardRef. + * + * @see {@link https://github.com/microsoft/TypeScript/issues/36826 linked GitHub issue} for context + * @see {@link https://react.dev/reference/react/Component#static-defaultprops React Docs} + */ + defaultProps?: never | undefined; + /** + * propTypes are not supported on render functions passed to forwardRef. + * + * @see {@link https://github.com/microsoft/TypeScript/issues/36826 linked GitHub issue} for context + * @see {@link https://react.dev/reference/react/Component#static-proptypes React Docs} + */ + propTypes?: never | undefined; + } + + /** + * Represents a component class in React. + * + * @template P The props the component accepts. + * @template S The internal state of the component. + */ + interface ComponentClass

      extends StaticLifecycle { + new( + props: P, + /** + * @deprecated + * + * @see {@link https://legacy.reactjs.org/docs/legacy-context.html#referencing-context-in-lifecycle-methods React Docs} + */ + deprecatedLegacyContext?: any, + ): Component; + /** + * Used to declare the types of the props accepted by the + * component. These types will be checked during rendering + * and in development only. + * + * We recommend using TypeScript instead of checking prop + * types at runtime. + * + * @see {@link https://react.dev/reference/react/Component#static-proptypes React Docs} + */ + propTypes?: WeakValidationMap

      | undefined; + contextType?: Context | undefined; + /** + * @deprecated use {@link ComponentClass.contextType} instead + * + * Lets you specify which legacy context is consumed by + * this component. + * + * @see {@link https://legacy.reactjs.org/docs/legacy-context.html Legacy React Docs} + */ + contextTypes?: ValidationMap | undefined; + /** + * @deprecated + * + * @see {@link https://legacy.reactjs.org/docs/legacy-context.html#how-to-use-context Legacy React Docs} + */ + childContextTypes?: ValidationMap | undefined; + /** + * Used to define default values for the props accepted by + * the component. + * + * @see {@link https://react.dev/reference/react/Component#static-defaultprops React Docs} + */ + defaultProps?: Partial

      | undefined; + /** + * Used in debugging messages. You might want to set it + * explicitly if you want to display a different name for + * debugging purposes. + * + * @see {@link https://legacy.reactjs.org/docs/react-component.html#displayname Legacy React Docs} + */ + displayName?: string | undefined; + } + + /** + * @deprecated Use `ClassicComponentClass` from `create-react-class` + * + * @see {@link https://legacy.reactjs.org/docs/react-without-es6.html Legacy React Docs} + * @see {@link https://www.npmjs.com/package/create-react-class `create-react-class` on npm} + */ + interface ClassicComponentClass

      extends ComponentClass

      { + new(props: P, deprecatedLegacyContext?: any): ClassicComponent; + getDefaultProps?(): P; + } + + /** + * Used in {@link createElement} and {@link createFactory} to represent + * a class. + * + * An intersection type is used to infer multiple type parameters from + * a single argument, which is useful for many top-level API defs. + * See {@link https://github.com/Microsoft/TypeScript/issues/7234 this GitHub issue} + * for more info. + */ + type ClassType, C extends ComponentClass

      > = + & C + & (new(props: P, deprecatedLegacyContext?: any) => T); + + // + // Component Specs and Lifecycle + // ---------------------------------------------------------------------- + + // This should actually be something like `Lifecycle | DeprecatedLifecycle`, + // as React will _not_ call the deprecated lifecycle methods if any of the new lifecycle + // methods are present. + interface ComponentLifecycle extends NewLifecycle, DeprecatedLifecycle { + /** + * Called immediately after a component is mounted. Setting state here will trigger re-rendering. + */ + componentDidMount?(): void; + /** + * Called to determine whether the change in props and state should trigger a re-render. + * + * `Component` always returns true. + * `PureComponent` implements a shallow comparison on props and state and returns true if any + * props or states have changed. + * + * If false is returned, {@link Component.render}, `componentWillUpdate` + * and `componentDidUpdate` will not be called. + */ + shouldComponentUpdate?(nextProps: Readonly

      , nextState: Readonly, nextContext: any): boolean; + /** + * Called immediately before a component is destroyed. Perform any necessary cleanup in this method, such as + * cancelled network requests, or cleaning up any DOM elements created in `componentDidMount`. + */ + componentWillUnmount?(): void; + /** + * Catches exceptions generated in descendant components. Unhandled exceptions will cause + * the entire component tree to unmount. + */ + componentDidCatch?(error: Error, errorInfo: ErrorInfo): void; + } + + // Unfortunately, we have no way of declaring that the component constructor must implement this + interface StaticLifecycle { + getDerivedStateFromProps?: GetDerivedStateFromProps | undefined; + getDerivedStateFromError?: GetDerivedStateFromError | undefined; + } + + type GetDerivedStateFromProps = + /** + * Returns an update to a component's state based on its new props and old state. + * + * Note: its presence prevents any of the deprecated lifecycle methods from being invoked + */ + (nextProps: Readonly

      , prevState: S) => Partial | null; + + type GetDerivedStateFromError = + /** + * This lifecycle is invoked after an error has been thrown by a descendant component. + * It receives the error that was thrown as a parameter and should return a value to update state. + * + * Note: its presence prevents any of the deprecated lifecycle methods from being invoked + */ + (error: any) => Partial | null; + + // This should be "infer SS" but can't use it yet + interface NewLifecycle { + /** + * Runs before React applies the result of {@link Component.render render} to the document, and + * returns an object to be given to {@link componentDidUpdate}. Useful for saving + * things such as scroll position before {@link Component.render render} causes changes to it. + * + * Note: the presence of this method prevents any of the deprecated + * lifecycle events from running. + */ + getSnapshotBeforeUpdate?(prevProps: Readonly

      , prevState: Readonly): SS | null; + /** + * Called immediately after updating occurs. Not called for the initial render. + * + * The snapshot is only present if {@link getSnapshotBeforeUpdate} is present and returns non-null. + */ + componentDidUpdate?(prevProps: Readonly

      , prevState: Readonly, snapshot?: SS): void; + } + + interface DeprecatedLifecycle { + /** + * Called immediately before mounting occurs, and before {@link Component.render}. + * Avoid introducing any side-effects or subscriptions in this method. + * + * Note: the presence of {@link NewLifecycle.getSnapshotBeforeUpdate getSnapshotBeforeUpdate} + * or {@link StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps} prevents + * this from being invoked. + * + * @deprecated 16.3, use {@link ComponentLifecycle.componentDidMount componentDidMount} or the constructor instead; will stop working in React 17 + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#initializing-state} + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path} + */ + componentWillMount?(): void; + /** + * Called immediately before mounting occurs, and before {@link Component.render}. + * Avoid introducing any side-effects or subscriptions in this method. + * + * This method will not stop working in React 17. + * + * Note: the presence of {@link NewLifecycle.getSnapshotBeforeUpdate getSnapshotBeforeUpdate} + * or {@link StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps} prevents + * this from being invoked. + * + * @deprecated 16.3, use {@link ComponentLifecycle.componentDidMount componentDidMount} or the constructor instead + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#initializing-state} + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path} + */ + UNSAFE_componentWillMount?(): void; + /** + * Called when the component may be receiving new props. + * React may call this even if props have not changed, so be sure to compare new and existing + * props if you only want to handle changes. + * + * Calling {@link Component.setState} generally does not trigger this method. + * + * Note: the presence of {@link NewLifecycle.getSnapshotBeforeUpdate getSnapshotBeforeUpdate} + * or {@link StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps} prevents + * this from being invoked. + * + * @deprecated 16.3, use static {@link StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps} instead; will stop working in React 17 + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#updating-state-based-on-props} + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path} + */ + componentWillReceiveProps?(nextProps: Readonly

      , nextContext: any): void; + /** + * Called when the component may be receiving new props. + * React may call this even if props have not changed, so be sure to compare new and existing + * props if you only want to handle changes. + * + * Calling {@link Component.setState} generally does not trigger this method. + * + * This method will not stop working in React 17. + * + * Note: the presence of {@link NewLifecycle.getSnapshotBeforeUpdate getSnapshotBeforeUpdate} + * or {@link StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps} prevents + * this from being invoked. + * + * @deprecated 16.3, use static {@link StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps} instead + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#updating-state-based-on-props} + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path} + */ + UNSAFE_componentWillReceiveProps?(nextProps: Readonly

      , nextContext: any): void; + /** + * Called immediately before rendering when new props or state is received. Not called for the initial render. + * + * Note: You cannot call {@link Component.setState} here. + * + * Note: the presence of {@link NewLifecycle.getSnapshotBeforeUpdate getSnapshotBeforeUpdate} + * or {@link StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps} prevents + * this from being invoked. + * + * @deprecated 16.3, use getSnapshotBeforeUpdate instead; will stop working in React 17 + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#reading-dom-properties-before-an-update} + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path} + */ + componentWillUpdate?(nextProps: Readonly

      , nextState: Readonly, nextContext: any): void; + /** + * Called immediately before rendering when new props or state is received. Not called for the initial render. + * + * Note: You cannot call {@link Component.setState} here. + * + * This method will not stop working in React 17. + * + * Note: the presence of {@link NewLifecycle.getSnapshotBeforeUpdate getSnapshotBeforeUpdate} + * or {@link StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps} prevents + * this from being invoked. + * + * @deprecated 16.3, use getSnapshotBeforeUpdate instead + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#reading-dom-properties-before-an-update} + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path} + */ + UNSAFE_componentWillUpdate?(nextProps: Readonly

      , nextState: Readonly, nextContext: any): void; + } + + /** + * @deprecated + * + * @see {@link https://legacy.reactjs.org/blog/2016/07/13/mixins-considered-harmful.html Mixins Considered Harmful} + */ + interface Mixin extends ComponentLifecycle { + mixins?: Array> | undefined; + statics?: { + [key: string]: any; + } | undefined; + + displayName?: string | undefined; + propTypes?: ValidationMap | undefined; + contextTypes?: ValidationMap | undefined; + childContextTypes?: ValidationMap | undefined; + + getDefaultProps?(): P; + getInitialState?(): S; + } + + /** + * @deprecated + * + * @see {@link https://legacy.reactjs.org/blog/2016/07/13/mixins-considered-harmful.html Mixins Considered Harmful} + */ + interface ComponentSpec extends Mixin { + render(): ReactNode; + + [propertyName: string]: any; + } + + function createRef(): RefObject; + + /** + * The type of the component returned from {@link forwardRef}. + * + * @template P The props the component accepts, if any. + * + * @see {@link ExoticComponent} + */ + interface ForwardRefExoticComponent

      extends NamedExoticComponent

      { + /** + * @deprecated Use {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#default_value|default values for destructuring assignments instead}. + */ + defaultProps?: Partial

      | undefined; + propTypes?: WeakValidationMap

      | undefined; + } + + /** + * Lets your component expose a DOM node to a parent component + * using a ref. + * + * @see {@link https://react.dev/reference/react/forwardRef React Docs} + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/forward_and_create_ref/ React TypeScript Cheatsheet} + * + * @param render See the {@link ForwardRefRenderFunction}. + * + * @template T The type of the DOM node. + * @template P The props the component accepts, if any. + * + * @example + * + * ```tsx + * interface Props { + * children?: ReactNode; + * type: "submit" | "button"; + * } + * + * export const FancyButton = forwardRef((props, ref) => ( + * + * )); + * ``` + */ + function forwardRef( + render: ForwardRefRenderFunction, + ): ForwardRefExoticComponent & RefAttributes>; + + /** + * Omits the 'ref' attribute from the given props object. + * + * @template P The props object type. + */ + type PropsWithoutRef

      = + // Omit would not be sufficient for this. We'd like to avoid unnecessary mapping and need a distributive conditional to support unions. + // see: https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types + // https://github.com/Microsoft/TypeScript/issues/28339 + P extends any ? ("ref" extends keyof P ? Omit : P) : P; + /** Ensures that the props do not include string ref, which cannot be forwarded */ + type PropsWithRef

      = + // Note: String refs can be forwarded. We can't fix this bug without breaking a bunch of libraries now though. + // Just "P extends { ref?: infer R }" looks sufficient, but R will infer as {} if P is {}. + "ref" extends keyof P + ? P extends { ref?: infer R | undefined } + ? string extends R ? PropsWithoutRef

      & { ref?: Exclude | undefined } + : P + : P + : P; + + type PropsWithChildren

      = P & { children?: ReactNode | undefined }; + + /** + * Used to retrieve the props a component accepts. Can either be passed a string, + * indicating a DOM element (e.g. 'div', 'span', etc.) or the type of a React + * component. + * + * It's usually better to use {@link ComponentPropsWithRef} or {@link ComponentPropsWithoutRef} + * instead of this type, as they let you be explicit about whether or not to include + * the `ref` prop. + * + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/react-types/componentprops/ React TypeScript Cheatsheet} + * + * @example + * + * ```tsx + * // Retrieves the props an 'input' element accepts + * type InputProps = React.ComponentProps<'input'>; + * ``` + * + * @example + * + * ```tsx + * const MyComponent = (props: { foo: number, bar: string }) =>

      ; + * + * // Retrieves the props 'MyComponent' accepts + * type MyComponentProps = React.ComponentProps; + * ``` + */ + type ComponentProps> = T extends + JSXElementConstructor ? P + : T extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[T] + : {}; + + /** + * Used to retrieve the props a component accepts with its ref. Can either be + * passed a string, indicating a DOM element (e.g. 'div', 'span', etc.) or the + * type of a React component. + * + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/react-types/componentprops/ React TypeScript Cheatsheet} + * + * @example + * + * ```tsx + * // Retrieves the props an 'input' element accepts + * type InputProps = React.ComponentPropsWithRef<'input'>; + * ``` + * + * @example + * + * ```tsx + * const MyComponent = (props: { foo: number, bar: string }) =>
      ; + * + * // Retrieves the props 'MyComponent' accepts + * type MyComponentPropsWithRef = React.ComponentPropsWithRef; + * ``` + */ + type ComponentPropsWithRef = T extends (new(props: infer P) => Component) + ? PropsWithoutRef

      & RefAttributes> + : PropsWithRef>; + /** + * Used to retrieve the props a custom component accepts with its ref. + * + * Unlike {@link ComponentPropsWithRef}, this only works with custom + * components, i.e. components you define yourself. This is to improve + * type-checking performance. + * + * @example + * + * ```tsx + * const MyComponent = (props: { foo: number, bar: string }) =>

      ; + * + * // Retrieves the props 'MyComponent' accepts + * type MyComponentPropsWithRef = React.CustomComponentPropsWithRef; + * ``` + */ + type CustomComponentPropsWithRef = T extends (new(props: infer P) => Component) + ? (PropsWithoutRef

      & RefAttributes>) + : T extends ((props: infer P, legacyContext?: any) => ReactNode) ? PropsWithRef

      + : never; + + /** + * Used to retrieve the props a component accepts without its ref. Can either be + * passed a string, indicating a DOM element (e.g. 'div', 'span', etc.) or the + * type of a React component. + * + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/react-types/componentprops/ React TypeScript Cheatsheet} + * + * @example + * + * ```tsx + * // Retrieves the props an 'input' element accepts + * type InputProps = React.ComponentPropsWithoutRef<'input'>; + * ``` + * + * @example + * + * ```tsx + * const MyComponent = (props: { foo: number, bar: string }) =>

      ; + * + * // Retrieves the props 'MyComponent' accepts + * type MyComponentPropsWithoutRef = React.ComponentPropsWithoutRef; + * ``` + */ + type ComponentPropsWithoutRef = PropsWithoutRef>; + + type ComponentRef = T extends NamedExoticComponent< + ComponentPropsWithoutRef & RefAttributes + > ? Method + : ComponentPropsWithRef extends RefAttributes ? Method + : never; + + // will show `Memo(${Component.displayName || Component.name})` in devtools by default, + // but can be given its own specific name + type MemoExoticComponent> = NamedExoticComponent> & { + readonly type: T; + }; + + /** + * Lets you skip re-rendering a component when its props are unchanged. + * + * @see {@link https://react.dev/reference/react/memo React Docs} + * + * @param Component The component to memoize. + * @param propsAreEqual A function that will be used to determine if the props have changed. + * + * @example + * + * ```tsx + * import { memo } from 'react'; + * + * const SomeComponent = memo(function SomeComponent(props: { foo: string }) { + * // ... + * }); + * ``` + */ + function memo

      ( + Component: FunctionComponent

      , + propsAreEqual?: (prevProps: Readonly

      , nextProps: Readonly

      ) => boolean, + ): NamedExoticComponent

      ; + function memo>( + Component: T, + propsAreEqual?: (prevProps: Readonly>, nextProps: Readonly>) => boolean, + ): MemoExoticComponent; + + interface LazyExoticComponent> + extends ExoticComponent> + { + readonly _result: T; + } + + /** + * Lets you defer loading a component’s code until it is rendered for the first time. + * + * @see {@link https://react.dev/reference/react/lazy React Docs} + * + * @param load A function that returns a `Promise` or another thenable (a `Promise`-like object with a + * then method). React will not call `load` until the first time you attempt to render the returned + * component. After React first calls load, it will wait for it to resolve, and then render the + * resolved value’s `.default` as a React component. Both the returned `Promise` and the `Promise`’s + * resolved value will be cached, so React will not call load more than once. If the `Promise` rejects, + * React will throw the rejection reason for the nearest Error Boundary to handle. + * + * @example + * + * ```tsx + * import { lazy } from 'react'; + * + * const MarkdownPreview = lazy(() => import('./MarkdownPreview.js')); + * ``` + */ + function lazy>( + load: () => Promise<{ default: T }>, + ): LazyExoticComponent; + + // + // React Hooks + // ---------------------------------------------------------------------- + + /** + * The instruction passed to a {@link Dispatch} function in {@link useState} + * to tell React what the next value of the {@link useState} should be. + * + * Often found wrapped in {@link Dispatch}. + * + * @template S The type of the state. + * + * @example + * + * ```tsx + * // This return type correctly represents the type of + * // `setCount` in the example below. + * const useCustomState = (): Dispatch> => { + * const [count, setCount] = useState(0); + * + * return setCount; + * } + * ``` + */ + type SetStateAction = S | ((prevState: S) => S); + + /** + * A function that can be used to update the state of a {@link useState} + * or {@link useReducer} hook. + */ + type Dispatch = (value: A) => void; + /** + * A {@link Dispatch} function can sometimes be called without any arguments. + */ + type DispatchWithoutAction = () => void; + // Unlike redux, the actions _can_ be anything + type Reducer = (prevState: S, action: A) => S; + // If useReducer accepts a reducer without action, dispatch may be called without any parameters. + type ReducerWithoutAction = (prevState: S) => S; + // types used to try and prevent the compiler from reducing S + // to a supertype common with the second argument to useReducer() + type ReducerState> = R extends Reducer ? S : never; + type ReducerAction> = R extends Reducer ? A : never; + // The identity check is done with the SameValue algorithm (Object.is), which is stricter than === + type ReducerStateWithoutAction> = R extends ReducerWithoutAction ? S + : never; + type DependencyList = readonly unknown[]; + + // NOTE: callbacks are _only_ allowed to return either void, or a destructor. + type EffectCallback = () => void | Destructor; + + interface MutableRefObject { + current: T; + } + + // This will technically work if you give a Consumer or Provider but it's deprecated and warns + /** + * Accepts a context object (the value returned from `React.createContext`) and returns the current + * context value, as given by the nearest context provider for the given context. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useContext} + */ + function useContext(context: Context /*, (not public API) observedBits?: number|boolean */): T; + /** + * Returns a stateful value, and a function to update it. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useState} + */ + function useState(initialState: S | (() => S)): [S, Dispatch>]; + // convenience overload when first argument is omitted + /** + * Returns a stateful value, and a function to update it. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useState} + */ + function useState(): [S | undefined, Dispatch>]; + /** + * An alternative to `useState`. + * + * `useReducer` is usually preferable to `useState` when you have complex state logic that involves + * multiple sub-values. It also lets you optimize performance for components that trigger deep + * updates because you can pass `dispatch` down instead of callbacks. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useReducer} + */ + // overload where dispatch could accept 0 arguments. + function useReducer, I>( + reducer: R, + initializerArg: I, + initializer: (arg: I) => ReducerStateWithoutAction, + ): [ReducerStateWithoutAction, DispatchWithoutAction]; + /** + * An alternative to `useState`. + * + * `useReducer` is usually preferable to `useState` when you have complex state logic that involves + * multiple sub-values. It also lets you optimize performance for components that trigger deep + * updates because you can pass `dispatch` down instead of callbacks. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useReducer} + */ + // overload where dispatch could accept 0 arguments. + function useReducer>( + reducer: R, + initializerArg: ReducerStateWithoutAction, + initializer?: undefined, + ): [ReducerStateWithoutAction, DispatchWithoutAction]; + /** + * An alternative to `useState`. + * + * `useReducer` is usually preferable to `useState` when you have complex state logic that involves + * multiple sub-values. It also lets you optimize performance for components that trigger deep + * updates because you can pass `dispatch` down instead of callbacks. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useReducer} + */ + // overload where "I" may be a subset of ReducerState; used to provide autocompletion. + // If "I" matches ReducerState exactly then the last overload will allow initializer to be omitted. + // the last overload effectively behaves as if the identity function (x => x) is the initializer. + function useReducer, I>( + reducer: R, + initializerArg: I & ReducerState, + initializer: (arg: I & ReducerState) => ReducerState, + ): [ReducerState, Dispatch>]; + /** + * An alternative to `useState`. + * + * `useReducer` is usually preferable to `useState` when you have complex state logic that involves + * multiple sub-values. It also lets you optimize performance for components that trigger deep + * updates because you can pass `dispatch` down instead of callbacks. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useReducer} + */ + // overload for free "I"; all goes as long as initializer converts it into "ReducerState". + function useReducer, I>( + reducer: R, + initializerArg: I, + initializer: (arg: I) => ReducerState, + ): [ReducerState, Dispatch>]; + /** + * An alternative to `useState`. + * + * `useReducer` is usually preferable to `useState` when you have complex state logic that involves + * multiple sub-values. It also lets you optimize performance for components that trigger deep + * updates because you can pass `dispatch` down instead of callbacks. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useReducer} + */ + + // I'm not sure if I keep this 2-ary or if I make it (2,3)-ary; it's currently (2,3)-ary. + // The Flow types do have an overload for 3-ary invocation with undefined initializer. + + // NOTE: without the ReducerState indirection, TypeScript would reduce S to be the most common + // supertype between the reducer's return type and the initialState (or the initializer's return type), + // which would prevent autocompletion from ever working. + + // TODO: double-check if this weird overload logic is necessary. It is possible it's either a bug + // in older versions, or a regression in newer versions of the typescript completion service. + function useReducer>( + reducer: R, + initialState: ReducerState, + initializer?: undefined, + ): [ReducerState, Dispatch>]; + /** + * `useRef` returns a mutable ref object whose `.current` property is initialized to the passed argument + * (`initialValue`). The returned object will persist for the full lifetime of the component. + * + * Note that `useRef()` is useful for more than the `ref` attribute. It’s handy for keeping any mutable + * value around similar to how you’d use instance fields in classes. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useRef} + */ + function useRef(initialValue: T): MutableRefObject; + // convenience overload for refs given as a ref prop as they typically start with a null value + /** + * `useRef` returns a mutable ref object whose `.current` property is initialized to the passed argument + * (`initialValue`). The returned object will persist for the full lifetime of the component. + * + * Note that `useRef()` is useful for more than the `ref` attribute. It’s handy for keeping any mutable + * value around similar to how you’d use instance fields in classes. + * + * Usage note: if you need the result of useRef to be directly mutable, include `| null` in the type + * of the generic argument. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useRef} + */ + function useRef(initialValue: T | null): RefObject; + // convenience overload for potentially undefined initialValue / call with 0 arguments + // has a default to stop it from defaulting to {} instead + /** + * `useRef` returns a mutable ref object whose `.current` property is initialized to the passed argument + * (`initialValue`). The returned object will persist for the full lifetime of the component. + * + * Note that `useRef()` is useful for more than the `ref` attribute. It’s handy for keeping any mutable + * value around similar to how you’d use instance fields in classes. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useRef} + */ + function useRef(): MutableRefObject; + /** + * The signature is identical to `useEffect`, but it fires synchronously after all DOM mutations. + * Use this to read layout from the DOM and synchronously re-render. Updates scheduled inside + * `useLayoutEffect` will be flushed synchronously, before the browser has a chance to paint. + * + * Prefer the standard `useEffect` when possible to avoid blocking visual updates. + * + * If you’re migrating code from a class component, `useLayoutEffect` fires in the same phase as + * `componentDidMount` and `componentDidUpdate`. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useLayoutEffect} + */ + function useLayoutEffect(effect: EffectCallback, deps?: DependencyList): void; + /** + * Accepts a function that contains imperative, possibly effectful code. + * + * @param effect Imperative function that can return a cleanup function + * @param deps If present, effect will only activate if the values in the list change. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useEffect} + */ + function useEffect(effect: EffectCallback, deps?: DependencyList): void; + // NOTE: this does not accept strings, but this will have to be fixed by removing strings from type Ref + /** + * `useImperativeHandle` customizes the instance value that is exposed to parent components when using + * `ref`. As always, imperative code using refs should be avoided in most cases. + * + * `useImperativeHandle` should be used with `React.forwardRef`. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useImperativeHandle} + */ + function useImperativeHandle(ref: Ref | undefined, init: () => R, deps?: DependencyList): void; + // I made 'inputs' required here and in useMemo as there's no point to memoizing without the memoization key + // useCallback(X) is identical to just using X, useMemo(() => Y) is identical to just using Y. + /** + * `useCallback` will return a memoized version of the callback that only changes if one of the `inputs` + * has changed. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useCallback} + */ + // A specific function type would not trigger implicit any. + // See https://github.com/DefinitelyTyped/DefinitelyTyped/issues/52873#issuecomment-845806435 for a comparison between `Function` and more specific types. + // eslint-disable-next-line @typescript-eslint/ban-types + function useCallback(callback: T, deps: DependencyList): T; + /** + * `useMemo` will only recompute the memoized value when one of the `deps` has changed. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useMemo} + */ + // allow undefined, but don't make it optional as that is very likely a mistake + function useMemo(factory: () => T, deps: DependencyList): T; + /** + * `useDebugValue` can be used to display a label for custom hooks in React DevTools. + * + * NOTE: We don’t recommend adding debug values to every custom hook. + * It’s most valuable for custom hooks that are part of shared libraries. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useDebugValue} + */ + // the name of the custom hook is itself derived from the function name at runtime: + // it's just the function name without the "use" prefix. + function useDebugValue(value: T, format?: (value: T) => any): void; + + // must be synchronous + export type TransitionFunction = () => VoidOrUndefinedOnly; + // strange definition to allow vscode to show documentation on the invocation + export interface TransitionStartFunction { + /** + * State updates caused inside the callback are allowed to be deferred. + * + * **If some state update causes a component to suspend, that state update should be wrapped in a transition.** + * + * @param callback A _synchronous_ function which causes state updates that can be deferred. + */ + (callback: TransitionFunction): void; + } + + /** + * Returns a deferred version of the value that may “lag behind” it. + * + * This is commonly used to keep the interface responsive when you have something that renders immediately + * based on user input and something that needs to wait for a data fetch. + * + * A good example of this is a text input. + * + * @param value The value that is going to be deferred + * + * @see {@link https://react.dev/reference/react/useDeferredValue} + */ + export function useDeferredValue(value: T): T; + + /** + * Allows components to avoid undesirable loading states by waiting for content to load + * before transitioning to the next screen. It also allows components to defer slower, + * data fetching updates until subsequent renders so that more crucial updates can be + * rendered immediately. + * + * The `useTransition` hook returns two values in an array. + * + * The first is a boolean, React’s way of informing us whether we’re waiting for the transition to finish. + * The second is a function that takes a callback. We can use it to tell React which state we want to defer. + * + * **If some state update causes a component to suspend, that state update should be wrapped in a transition.** + * + * @see {@link https://react.dev/reference/react/useTransition} + */ + export function useTransition(): [boolean, TransitionStartFunction]; + + /** + * Similar to `useTransition` but allows uses where hooks are not available. + * + * @param callback A _synchronous_ function which causes state updates that can be deferred. + */ + export function startTransition(scope: TransitionFunction): void; + + /** + * Wrap any code rendering and triggering updates to your components into `act()` calls. + * + * Ensures that the behavior in your tests matches what happens in the browser + * more closely by executing pending `useEffect`s before returning. This also + * reduces the amount of re-renders done. + * + * @param callback A synchronous, void callback that will execute as a single, complete React commit. + * + * @see https://reactjs.org/blog/2019/02/06/react-v16.8.0.html#testing-hooks + */ + // While act does always return Thenable, if a void function is passed, we pretend the return value is also void to not trigger dangling Promise lint rules. + export function act(callback: () => VoidOrUndefinedOnly): void; + export function act(callback: () => T | Promise): Promise; + + export function useId(): string; + + /** + * @param effect Imperative function that can return a cleanup function + * @param deps If present, effect will only activate if the values in the list change. + * + * @see {@link https://github.com/facebook/react/pull/21913} + */ + export function useInsertionEffect(effect: EffectCallback, deps?: DependencyList): void; + + /** + * @param subscribe + * @param getSnapshot + * + * @see {@link https://github.com/reactwg/react-18/discussions/86} + */ + // keep in sync with `useSyncExternalStore` from `use-sync-external-store` + export function useSyncExternalStore( + subscribe: (onStoreChange: () => void) => () => void, + getSnapshot: () => Snapshot, + getServerSnapshot?: () => Snapshot, + ): Snapshot; + + // + // Event System + // ---------------------------------------------------------------------- + // TODO: change any to unknown when moving to TS v3 + interface BaseSyntheticEvent { + nativeEvent: E; + currentTarget: C; + target: T; + bubbles: boolean; + cancelable: boolean; + defaultPrevented: boolean; + eventPhase: number; + isTrusted: boolean; + preventDefault(): void; + isDefaultPrevented(): boolean; + stopPropagation(): void; + isPropagationStopped(): boolean; + persist(): void; + timeStamp: number; + type: string; + } + + /** + * currentTarget - a reference to the element on which the event listener is registered. + * + * target - a reference to the element from which the event was originally dispatched. + * This might be a child element to the element on which the event listener is registered. + * If you thought this should be `EventTarget & T`, see https://github.com/DefinitelyTyped/DefinitelyTyped/issues/11508#issuecomment-256045682 + */ + interface SyntheticEvent extends BaseSyntheticEvent {} + + interface ClipboardEvent extends SyntheticEvent { + clipboardData: DataTransfer; + } + + interface CompositionEvent extends SyntheticEvent { + data: string; + } + + interface DragEvent extends MouseEvent { + dataTransfer: DataTransfer; + } + + interface PointerEvent extends MouseEvent { + pointerId: number; + pressure: number; + tangentialPressure: number; + tiltX: number; + tiltY: number; + twist: number; + width: number; + height: number; + pointerType: "mouse" | "pen" | "touch"; + isPrimary: boolean; + } + + interface FocusEvent extends SyntheticEvent { + relatedTarget: (EventTarget & RelatedTarget) | null; + target: EventTarget & Target; + } + + interface FormEvent extends SyntheticEvent { + } + + interface InvalidEvent extends SyntheticEvent { + target: EventTarget & T; + } + + interface ChangeEvent extends SyntheticEvent { + target: EventTarget & T; + } + + export type ModifierKey = + | "Alt" + | "AltGraph" + | "CapsLock" + | "Control" + | "Fn" + | "FnLock" + | "Hyper" + | "Meta" + | "NumLock" + | "ScrollLock" + | "Shift" + | "Super" + | "Symbol" + | "SymbolLock"; + + interface KeyboardEvent extends UIEvent { + altKey: boolean; + /** @deprecated */ + charCode: number; + ctrlKey: boolean; + code: string; + /** + * See [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#keys-modifier). for a list of valid (case-sensitive) arguments to this method. + */ + getModifierState(key: ModifierKey): boolean; + /** + * See the [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#named-key-attribute-values). for possible values + */ + key: string; + /** @deprecated */ + keyCode: number; + locale: string; + location: number; + metaKey: boolean; + repeat: boolean; + shiftKey: boolean; + /** @deprecated */ + which: number; + } + + interface MouseEvent extends UIEvent { + altKey: boolean; + button: number; + buttons: number; + clientX: number; + clientY: number; + ctrlKey: boolean; + /** + * See [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#keys-modifier). for a list of valid (case-sensitive) arguments to this method. + */ + getModifierState(key: ModifierKey): boolean; + metaKey: boolean; + movementX: number; + movementY: number; + pageX: number; + pageY: number; + relatedTarget: EventTarget | null; + screenX: number; + screenY: number; + shiftKey: boolean; + } + + interface TouchEvent extends UIEvent { + altKey: boolean; + changedTouches: TouchList; + ctrlKey: boolean; + /** + * See [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#keys-modifier). for a list of valid (case-sensitive) arguments to this method. + */ + getModifierState(key: ModifierKey): boolean; + metaKey: boolean; + shiftKey: boolean; + targetTouches: TouchList; + touches: TouchList; + } + + interface UIEvent extends SyntheticEvent { + detail: number; + view: AbstractView; + } + + interface WheelEvent extends MouseEvent { + deltaMode: number; + deltaX: number; + deltaY: number; + deltaZ: number; + } + + interface AnimationEvent extends SyntheticEvent { + animationName: string; + elapsedTime: number; + pseudoElement: string; + } + + interface TransitionEvent extends SyntheticEvent { + elapsedTime: number; + propertyName: string; + pseudoElement: string; + } + + // + // Event Handler Types + // ---------------------------------------------------------------------- + + type EventHandler> = { bivarianceHack(event: E): void }["bivarianceHack"]; + + type ReactEventHandler = EventHandler>; + + type ClipboardEventHandler = EventHandler>; + type CompositionEventHandler = EventHandler>; + type DragEventHandler = EventHandler>; + type FocusEventHandler = EventHandler>; + type FormEventHandler = EventHandler>; + type ChangeEventHandler = EventHandler>; + type KeyboardEventHandler = EventHandler>; + type MouseEventHandler = EventHandler>; + type TouchEventHandler = EventHandler>; + type PointerEventHandler = EventHandler>; + type UIEventHandler = EventHandler>; + type WheelEventHandler = EventHandler>; + type AnimationEventHandler = EventHandler>; + type TransitionEventHandler = EventHandler>; + + // + // Props / DOM Attributes + // ---------------------------------------------------------------------- + + interface HTMLProps extends AllHTMLAttributes, ClassAttributes { + } + + type DetailedHTMLProps, T> = ClassAttributes & E; + + interface SVGProps extends SVGAttributes, ClassAttributes { + } + + interface SVGLineElementAttributes extends SVGProps {} + interface SVGTextElementAttributes extends SVGProps {} + + interface DOMAttributes { + children?: ReactNode | undefined; + dangerouslySetInnerHTML?: { + // Should be InnerHTML['innerHTML']. + // But unfortunately we're mixing renderer-specific type declarations. + __html: string | TrustedHTML; + } | undefined; + + // Clipboard Events + onCopy?: ClipboardEventHandler | undefined; + onCopyCapture?: ClipboardEventHandler | undefined; + onCut?: ClipboardEventHandler | undefined; + onCutCapture?: ClipboardEventHandler | undefined; + onPaste?: ClipboardEventHandler | undefined; + onPasteCapture?: ClipboardEventHandler | undefined; + + // Composition Events + onCompositionEnd?: CompositionEventHandler | undefined; + onCompositionEndCapture?: CompositionEventHandler | undefined; + onCompositionStart?: CompositionEventHandler | undefined; + onCompositionStartCapture?: CompositionEventHandler | undefined; + onCompositionUpdate?: CompositionEventHandler | undefined; + onCompositionUpdateCapture?: CompositionEventHandler | undefined; + + // Focus Events + onFocus?: FocusEventHandler | undefined; + onFocusCapture?: FocusEventHandler | undefined; + onBlur?: FocusEventHandler | undefined; + onBlurCapture?: FocusEventHandler | undefined; + + // Form Events + onChange?: FormEventHandler | undefined; + onChangeCapture?: FormEventHandler | undefined; + onBeforeInput?: FormEventHandler | undefined; + onBeforeInputCapture?: FormEventHandler | undefined; + onInput?: FormEventHandler | undefined; + onInputCapture?: FormEventHandler | undefined; + onReset?: FormEventHandler | undefined; + onResetCapture?: FormEventHandler | undefined; + onSubmit?: FormEventHandler | undefined; + onSubmitCapture?: FormEventHandler | undefined; + onInvalid?: FormEventHandler | undefined; + onInvalidCapture?: FormEventHandler | undefined; + + // Image Events + onLoad?: ReactEventHandler | undefined; + onLoadCapture?: ReactEventHandler | undefined; + onError?: ReactEventHandler | undefined; // also a Media Event + onErrorCapture?: ReactEventHandler | undefined; // also a Media Event + + // Keyboard Events + onKeyDown?: KeyboardEventHandler | undefined; + onKeyDownCapture?: KeyboardEventHandler | undefined; + /** @deprecated Use `onKeyUp` or `onKeyDown` instead */ + onKeyPress?: KeyboardEventHandler | undefined; + /** @deprecated Use `onKeyUpCapture` or `onKeyDownCapture` instead */ + onKeyPressCapture?: KeyboardEventHandler | undefined; + onKeyUp?: KeyboardEventHandler | undefined; + onKeyUpCapture?: KeyboardEventHandler | undefined; + + // Media Events + onAbort?: ReactEventHandler | undefined; + onAbortCapture?: ReactEventHandler | undefined; + onCanPlay?: ReactEventHandler | undefined; + onCanPlayCapture?: ReactEventHandler | undefined; + onCanPlayThrough?: ReactEventHandler | undefined; + onCanPlayThroughCapture?: ReactEventHandler | undefined; + onDurationChange?: ReactEventHandler | undefined; + onDurationChangeCapture?: ReactEventHandler | undefined; + onEmptied?: ReactEventHandler | undefined; + onEmptiedCapture?: ReactEventHandler | undefined; + onEncrypted?: ReactEventHandler | undefined; + onEncryptedCapture?: ReactEventHandler | undefined; + onEnded?: ReactEventHandler | undefined; + onEndedCapture?: ReactEventHandler | undefined; + onLoadedData?: ReactEventHandler | undefined; + onLoadedDataCapture?: ReactEventHandler | undefined; + onLoadedMetadata?: ReactEventHandler | undefined; + onLoadedMetadataCapture?: ReactEventHandler | undefined; + onLoadStart?: ReactEventHandler | undefined; + onLoadStartCapture?: ReactEventHandler | undefined; + onPause?: ReactEventHandler | undefined; + onPauseCapture?: ReactEventHandler | undefined; + onPlay?: ReactEventHandler | undefined; + onPlayCapture?: ReactEventHandler | undefined; + onPlaying?: ReactEventHandler | undefined; + onPlayingCapture?: ReactEventHandler | undefined; + onProgress?: ReactEventHandler | undefined; + onProgressCapture?: ReactEventHandler | undefined; + onRateChange?: ReactEventHandler | undefined; + onRateChangeCapture?: ReactEventHandler | undefined; + onResize?: ReactEventHandler | undefined; + onResizeCapture?: ReactEventHandler | undefined; + onSeeked?: ReactEventHandler | undefined; + onSeekedCapture?: ReactEventHandler | undefined; + onSeeking?: ReactEventHandler | undefined; + onSeekingCapture?: ReactEventHandler | undefined; + onStalled?: ReactEventHandler | undefined; + onStalledCapture?: ReactEventHandler | undefined; + onSuspend?: ReactEventHandler | undefined; + onSuspendCapture?: ReactEventHandler | undefined; + onTimeUpdate?: ReactEventHandler | undefined; + onTimeUpdateCapture?: ReactEventHandler | undefined; + onVolumeChange?: ReactEventHandler | undefined; + onVolumeChangeCapture?: ReactEventHandler | undefined; + onWaiting?: ReactEventHandler | undefined; + onWaitingCapture?: ReactEventHandler | undefined; + + // MouseEvents + onAuxClick?: MouseEventHandler | undefined; + onAuxClickCapture?: MouseEventHandler | undefined; + onClick?: MouseEventHandler | undefined; + onClickCapture?: MouseEventHandler | undefined; + onContextMenu?: MouseEventHandler | undefined; + onContextMenuCapture?: MouseEventHandler | undefined; + onDoubleClick?: MouseEventHandler | undefined; + onDoubleClickCapture?: MouseEventHandler | undefined; + onDrag?: DragEventHandler | undefined; + onDragCapture?: DragEventHandler | undefined; + onDragEnd?: DragEventHandler | undefined; + onDragEndCapture?: DragEventHandler | undefined; + onDragEnter?: DragEventHandler | undefined; + onDragEnterCapture?: DragEventHandler | undefined; + onDragExit?: DragEventHandler | undefined; + onDragExitCapture?: DragEventHandler | undefined; + onDragLeave?: DragEventHandler | undefined; + onDragLeaveCapture?: DragEventHandler | undefined; + onDragOver?: DragEventHandler | undefined; + onDragOverCapture?: DragEventHandler | undefined; + onDragStart?: DragEventHandler | undefined; + onDragStartCapture?: DragEventHandler | undefined; + onDrop?: DragEventHandler | undefined; + onDropCapture?: DragEventHandler | undefined; + onMouseDown?: MouseEventHandler | undefined; + onMouseDownCapture?: MouseEventHandler | undefined; + onMouseEnter?: MouseEventHandler | undefined; + onMouseLeave?: MouseEventHandler | undefined; + onMouseMove?: MouseEventHandler | undefined; + onMouseMoveCapture?: MouseEventHandler | undefined; + onMouseOut?: MouseEventHandler | undefined; + onMouseOutCapture?: MouseEventHandler | undefined; + onMouseOver?: MouseEventHandler | undefined; + onMouseOverCapture?: MouseEventHandler | undefined; + onMouseUp?: MouseEventHandler | undefined; + onMouseUpCapture?: MouseEventHandler | undefined; + + // Selection Events + onSelect?: ReactEventHandler | undefined; + onSelectCapture?: ReactEventHandler | undefined; + + // Touch Events + onTouchCancel?: TouchEventHandler | undefined; + onTouchCancelCapture?: TouchEventHandler | undefined; + onTouchEnd?: TouchEventHandler | undefined; + onTouchEndCapture?: TouchEventHandler | undefined; + onTouchMove?: TouchEventHandler | undefined; + onTouchMoveCapture?: TouchEventHandler | undefined; + onTouchStart?: TouchEventHandler | undefined; + onTouchStartCapture?: TouchEventHandler | undefined; + + // Pointer Events + onPointerDown?: PointerEventHandler | undefined; + onPointerDownCapture?: PointerEventHandler | undefined; + onPointerMove?: PointerEventHandler | undefined; + onPointerMoveCapture?: PointerEventHandler | undefined; + onPointerUp?: PointerEventHandler | undefined; + onPointerUpCapture?: PointerEventHandler | undefined; + onPointerCancel?: PointerEventHandler | undefined; + onPointerCancelCapture?: PointerEventHandler | undefined; + onPointerEnter?: PointerEventHandler | undefined; + onPointerLeave?: PointerEventHandler | undefined; + onPointerOver?: PointerEventHandler | undefined; + onPointerOverCapture?: PointerEventHandler | undefined; + onPointerOut?: PointerEventHandler | undefined; + onPointerOutCapture?: PointerEventHandler | undefined; + onGotPointerCapture?: PointerEventHandler | undefined; + onGotPointerCaptureCapture?: PointerEventHandler | undefined; + onLostPointerCapture?: PointerEventHandler | undefined; + onLostPointerCaptureCapture?: PointerEventHandler | undefined; + + // UI Events + onScroll?: UIEventHandler | undefined; + onScrollCapture?: UIEventHandler | undefined; + + // Wheel Events + onWheel?: WheelEventHandler | undefined; + onWheelCapture?: WheelEventHandler | undefined; + + // Animation Events + onAnimationStart?: AnimationEventHandler | undefined; + onAnimationStartCapture?: AnimationEventHandler | undefined; + onAnimationEnd?: AnimationEventHandler | undefined; + onAnimationEndCapture?: AnimationEventHandler | undefined; + onAnimationIteration?: AnimationEventHandler | undefined; + onAnimationIterationCapture?: AnimationEventHandler | undefined; + + // Transition Events + onTransitionEnd?: TransitionEventHandler | undefined; + onTransitionEndCapture?: TransitionEventHandler | undefined; + } + + export interface CSSProperties extends CSS.Properties { + /** + * The index signature was removed to enable closed typing for style + * using CSSType. You're able to use type assertion or module augmentation + * to add properties or an index signature of your own. + * + * For examples and more information, visit: + * https://github.com/frenic/csstype#what-should-i-do-when-i-get-type-errors + */ + } + + // All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/ + interface AriaAttributes { + /** Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application. */ + "aria-activedescendant"?: string | undefined; + /** Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute. */ + "aria-atomic"?: Booleanish | undefined; + /** + * Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be + * presented if they are made. + */ + "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined; + /** Indicates an element is being modified and that assistive technologies MAY want to wait until the modifications are complete before exposing them to the user. */ + /** + * Defines a string value that labels the current element, which is intended to be converted into Braille. + * @see aria-label. + */ + "aria-braillelabel"?: string | undefined; + /** + * Defines a human-readable, author-localized abbreviated description for the role of an element, which is intended to be converted into Braille. + * @see aria-roledescription. + */ + "aria-brailleroledescription"?: string | undefined; + "aria-busy"?: Booleanish | undefined; + /** + * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets. + * @see aria-pressed @see aria-selected. + */ + "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined; + /** + * Defines the total number of columns in a table, grid, or treegrid. + * @see aria-colindex. + */ + "aria-colcount"?: number | undefined; + /** + * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid. + * @see aria-colcount @see aria-colspan. + */ + "aria-colindex"?: number | undefined; + /** + * Defines a human readable text alternative of aria-colindex. + * @see aria-rowindextext. + */ + "aria-colindextext"?: string | undefined; + /** + * Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid. + * @see aria-colindex @see aria-rowspan. + */ + "aria-colspan"?: number | undefined; + /** + * Identifies the element (or elements) whose contents or presence are controlled by the current element. + * @see aria-owns. + */ + "aria-controls"?: string | undefined; + /** Indicates the element that represents the current item within a container or set of related elements. */ + "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined; + /** + * Identifies the element (or elements) that describes the object. + * @see aria-labelledby + */ + "aria-describedby"?: string | undefined; + /** + * Defines a string value that describes or annotates the current element. + * @see related aria-describedby. + */ + "aria-description"?: string | undefined; + /** + * Identifies the element that provides a detailed, extended description for the object. + * @see aria-describedby. + */ + "aria-details"?: string | undefined; + /** + * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable. + * @see aria-hidden @see aria-readonly. + */ + "aria-disabled"?: Booleanish | undefined; + /** + * Indicates what functions can be performed when a dragged object is released on the drop target. + * @deprecated in ARIA 1.1 + */ + "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined; + /** + * Identifies the element that provides an error message for the object. + * @see aria-invalid @see aria-describedby. + */ + "aria-errormessage"?: string | undefined; + /** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */ + "aria-expanded"?: Booleanish | undefined; + /** + * Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion, + * allows assistive technology to override the general default of reading in document source order. + */ + "aria-flowto"?: string | undefined; + /** + * Indicates an element's "grabbed" state in a drag-and-drop operation. + * @deprecated in ARIA 1.1 + */ + "aria-grabbed"?: Booleanish | undefined; + /** Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. */ + "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined; + /** + * Indicates whether the element is exposed to an accessibility API. + * @see aria-disabled. + */ + "aria-hidden"?: Booleanish | undefined; + /** + * Indicates the entered value does not conform to the format expected by the application. + * @see aria-errormessage. + */ + "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined; + /** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */ + "aria-keyshortcuts"?: string | undefined; + /** + * Defines a string value that labels the current element. + * @see aria-labelledby. + */ + "aria-label"?: string | undefined; + /** + * Identifies the element (or elements) that labels the current element. + * @see aria-describedby. + */ + "aria-labelledby"?: string | undefined; + /** Defines the hierarchical level of an element within a structure. */ + "aria-level"?: number | undefined; + /** Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. */ + "aria-live"?: "off" | "assertive" | "polite" | undefined; + /** Indicates whether an element is modal when displayed. */ + "aria-modal"?: Booleanish | undefined; + /** Indicates whether a text box accepts multiple lines of input or only a single line. */ + "aria-multiline"?: Booleanish | undefined; + /** Indicates that the user may select more than one item from the current selectable descendants. */ + "aria-multiselectable"?: Booleanish | undefined; + /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */ + "aria-orientation"?: "horizontal" | "vertical" | undefined; + /** + * Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship + * between DOM elements where the DOM hierarchy cannot be used to represent the relationship. + * @see aria-controls. + */ + "aria-owns"?: string | undefined; + /** + * Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. + * A hint could be a sample value or a brief description of the expected format. + */ + "aria-placeholder"?: string | undefined; + /** + * Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. + * @see aria-setsize. + */ + "aria-posinset"?: number | undefined; + /** + * Indicates the current "pressed" state of toggle buttons. + * @see aria-checked @see aria-selected. + */ + "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined; + /** + * Indicates that the element is not editable, but is otherwise operable. + * @see aria-disabled. + */ + "aria-readonly"?: Booleanish | undefined; + /** + * Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. + * @see aria-atomic. + */ + "aria-relevant"?: + | "additions" + | "additions removals" + | "additions text" + | "all" + | "removals" + | "removals additions" + | "removals text" + | "text" + | "text additions" + | "text removals" + | undefined; + /** Indicates that user input is required on the element before a form may be submitted. */ + "aria-required"?: Booleanish | undefined; + /** Defines a human-readable, author-localized description for the role of an element. */ + "aria-roledescription"?: string | undefined; + /** + * Defines the total number of rows in a table, grid, or treegrid. + * @see aria-rowindex. + */ + "aria-rowcount"?: number | undefined; + /** + * Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid. + * @see aria-rowcount @see aria-rowspan. + */ + "aria-rowindex"?: number | undefined; + /** + * Defines a human readable text alternative of aria-rowindex. + * @see aria-colindextext. + */ + "aria-rowindextext"?: string | undefined; + /** + * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid. + * @see aria-rowindex @see aria-colspan. + */ + "aria-rowspan"?: number | undefined; + /** + * Indicates the current "selected" state of various widgets. + * @see aria-checked @see aria-pressed. + */ + "aria-selected"?: Booleanish | undefined; + /** + * Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. + * @see aria-posinset. + */ + "aria-setsize"?: number | undefined; + /** Indicates if items in a table or grid are sorted in ascending or descending order. */ + "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined; + /** Defines the maximum allowed value for a range widget. */ + "aria-valuemax"?: number | undefined; + /** Defines the minimum allowed value for a range widget. */ + "aria-valuemin"?: number | undefined; + /** + * Defines the current value for a range widget. + * @see aria-valuetext. + */ + "aria-valuenow"?: number | undefined; + /** Defines the human readable text alternative of aria-valuenow for a range widget. */ + "aria-valuetext"?: string | undefined; + } + + // All the WAI-ARIA 1.1 role attribute values from https://www.w3.org/TR/wai-aria-1.1/#role_definitions + type AriaRole = + | "alert" + | "alertdialog" + | "application" + | "article" + | "banner" + | "button" + | "cell" + | "checkbox" + | "columnheader" + | "combobox" + | "complementary" + | "contentinfo" + | "definition" + | "dialog" + | "directory" + | "document" + | "feed" + | "figure" + | "form" + | "grid" + | "gridcell" + | "group" + | "heading" + | "img" + | "link" + | "list" + | "listbox" + | "listitem" + | "log" + | "main" + | "marquee" + | "math" + | "menu" + | "menubar" + | "menuitem" + | "menuitemcheckbox" + | "menuitemradio" + | "navigation" + | "none" + | "note" + | "option" + | "presentation" + | "progressbar" + | "radio" + | "radiogroup" + | "region" + | "row" + | "rowgroup" + | "rowheader" + | "scrollbar" + | "search" + | "searchbox" + | "separator" + | "slider" + | "spinbutton" + | "status" + | "switch" + | "tab" + | "table" + | "tablist" + | "tabpanel" + | "term" + | "textbox" + | "timer" + | "toolbar" + | "tooltip" + | "tree" + | "treegrid" + | "treeitem" + | (string & {}); + + interface HTMLAttributes extends AriaAttributes, DOMAttributes { + // React-specific Attributes + defaultChecked?: boolean | undefined; + defaultValue?: string | number | readonly string[] | undefined; + suppressContentEditableWarning?: boolean | undefined; + suppressHydrationWarning?: boolean | undefined; + + // Standard HTML Attributes + accessKey?: string | undefined; + autoFocus?: boolean | undefined; + className?: string | undefined; + contentEditable?: Booleanish | "inherit" | "plaintext-only" | undefined; + contextMenu?: string | undefined; + dir?: string | undefined; + draggable?: Booleanish | undefined; + hidden?: boolean | undefined; + id?: string | undefined; + lang?: string | undefined; + nonce?: string | undefined; + slot?: string | undefined; + spellCheck?: Booleanish | undefined; + style?: CSSProperties | undefined; + tabIndex?: number | undefined; + title?: string | undefined; + translate?: "yes" | "no" | undefined; + + // Unknown + radioGroup?: string | undefined; // , + + // WAI-ARIA + role?: AriaRole | undefined; + + // RDFa Attributes + about?: string | undefined; + content?: string | undefined; + datatype?: string | undefined; + inlist?: any; + prefix?: string | undefined; + property?: string | undefined; + rel?: string | undefined; + resource?: string | undefined; + rev?: string | undefined; + typeof?: string | undefined; + vocab?: string | undefined; + + // Non-standard Attributes + autoCapitalize?: string | undefined; + autoCorrect?: string | undefined; + autoSave?: string | undefined; + color?: string | undefined; + itemProp?: string | undefined; + itemScope?: boolean | undefined; + itemType?: string | undefined; + itemID?: string | undefined; + itemRef?: string | undefined; + results?: number | undefined; + security?: string | undefined; + unselectable?: "on" | "off" | undefined; + + // Living Standard + /** + * Hints at the type of data that might be entered by the user while editing the element or its contents + * @see {@link https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-inputmode-attribute} + */ + inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined; + /** + * Specify that a standard HTML element should behave like a defined custom built-in element + * @see {@link https://html.spec.whatwg.org/multipage/custom-elements.html#attr-is} + */ + is?: string | undefined; + } + + /** + * For internal usage only. + * Different release channels declare additional types of ReactNode this particular release channel accepts. + * App or library types should never augment this interface. + */ + interface DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS {} + + interface AllHTMLAttributes extends HTMLAttributes { + // Standard HTML Attributes + accept?: string | undefined; + acceptCharset?: string | undefined; + action?: + | string + | undefined + | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS[ + keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS + ]; + allowFullScreen?: boolean | undefined; + allowTransparency?: boolean | undefined; + alt?: string | undefined; + as?: string | undefined; + async?: boolean | undefined; + autoComplete?: string | undefined; + autoPlay?: boolean | undefined; + capture?: boolean | "user" | "environment" | undefined; + cellPadding?: number | string | undefined; + cellSpacing?: number | string | undefined; + charSet?: string | undefined; + challenge?: string | undefined; + checked?: boolean | undefined; + cite?: string | undefined; + classID?: string | undefined; + cols?: number | undefined; + colSpan?: number | undefined; + controls?: boolean | undefined; + coords?: string | undefined; + crossOrigin?: CrossOrigin; + data?: string | undefined; + dateTime?: string | undefined; + default?: boolean | undefined; + defer?: boolean | undefined; + disabled?: boolean | undefined; + download?: any; + encType?: string | undefined; + form?: string | undefined; + formAction?: + | string + | undefined + | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS[ + keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS + ]; + formEncType?: string | undefined; + formMethod?: string | undefined; + formNoValidate?: boolean | undefined; + formTarget?: string | undefined; + frameBorder?: number | string | undefined; + headers?: string | undefined; + height?: number | string | undefined; + high?: number | undefined; + href?: string | undefined; + hrefLang?: string | undefined; + htmlFor?: string | undefined; + httpEquiv?: string | undefined; + integrity?: string | undefined; + keyParams?: string | undefined; + keyType?: string | undefined; + kind?: string | undefined; + label?: string | undefined; + list?: string | undefined; + loop?: boolean | undefined; + low?: number | undefined; + manifest?: string | undefined; + marginHeight?: number | undefined; + marginWidth?: number | undefined; + max?: number | string | undefined; + maxLength?: number | undefined; + media?: string | undefined; + mediaGroup?: string | undefined; + method?: string | undefined; + min?: number | string | undefined; + minLength?: number | undefined; + multiple?: boolean | undefined; + muted?: boolean | undefined; + name?: string | undefined; + noValidate?: boolean | undefined; + open?: boolean | undefined; + optimum?: number | undefined; + pattern?: string | undefined; + placeholder?: string | undefined; + playsInline?: boolean | undefined; + poster?: string | undefined; + preload?: string | undefined; + readOnly?: boolean | undefined; + required?: boolean | undefined; + reversed?: boolean | undefined; + rows?: number | undefined; + rowSpan?: number | undefined; + sandbox?: string | undefined; + scope?: string | undefined; + scoped?: boolean | undefined; + scrolling?: string | undefined; + seamless?: boolean | undefined; + selected?: boolean | undefined; + shape?: string | undefined; + size?: number | undefined; + sizes?: string | undefined; + span?: number | undefined; + src?: string | undefined; + srcDoc?: string | undefined; + srcLang?: string | undefined; + srcSet?: string | undefined; + start?: number | undefined; + step?: number | string | undefined; + summary?: string | undefined; + target?: string | undefined; + type?: string | undefined; + useMap?: string | undefined; + value?: string | readonly string[] | number | undefined; + width?: number | string | undefined; + wmode?: string | undefined; + wrap?: string | undefined; + } + + type HTMLAttributeReferrerPolicy = + | "" + | "no-referrer" + | "no-referrer-when-downgrade" + | "origin" + | "origin-when-cross-origin" + | "same-origin" + | "strict-origin" + | "strict-origin-when-cross-origin" + | "unsafe-url"; + + type HTMLAttributeAnchorTarget = + | "_self" + | "_blank" + | "_parent" + | "_top" + | (string & {}); + + interface AnchorHTMLAttributes extends HTMLAttributes { + download?: any; + href?: string | undefined; + hrefLang?: string | undefined; + media?: string | undefined; + ping?: string | undefined; + target?: HTMLAttributeAnchorTarget | undefined; + type?: string | undefined; + referrerPolicy?: HTMLAttributeReferrerPolicy | undefined; + } + + interface AudioHTMLAttributes extends MediaHTMLAttributes {} + + interface AreaHTMLAttributes extends HTMLAttributes { + alt?: string | undefined; + coords?: string | undefined; + download?: any; + href?: string | undefined; + hrefLang?: string | undefined; + media?: string | undefined; + referrerPolicy?: HTMLAttributeReferrerPolicy | undefined; + shape?: string | undefined; + target?: string | undefined; + } + + interface BaseHTMLAttributes extends HTMLAttributes { + href?: string | undefined; + target?: string | undefined; + } + + interface BlockquoteHTMLAttributes extends HTMLAttributes { + cite?: string | undefined; + } + + interface ButtonHTMLAttributes extends HTMLAttributes { + disabled?: boolean | undefined; + form?: string | undefined; + formAction?: + | string + | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS[ + keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS + ] + | undefined; + formEncType?: string | undefined; + formMethod?: string | undefined; + formNoValidate?: boolean | undefined; + formTarget?: string | undefined; + name?: string | undefined; + type?: "submit" | "reset" | "button" | undefined; + value?: string | readonly string[] | number | undefined; + } + + interface CanvasHTMLAttributes extends HTMLAttributes { + height?: number | string | undefined; + width?: number | string | undefined; + } + + interface ColHTMLAttributes extends HTMLAttributes { + span?: number | undefined; + width?: number | string | undefined; + } + + interface ColgroupHTMLAttributes extends HTMLAttributes { + span?: number | undefined; + } + + interface DataHTMLAttributes extends HTMLAttributes { + value?: string | readonly string[] | number | undefined; + } + + interface DetailsHTMLAttributes extends HTMLAttributes { + open?: boolean | undefined; + onToggle?: ReactEventHandler | undefined; + name?: string | undefined; + } + + interface DelHTMLAttributes extends HTMLAttributes { + cite?: string | undefined; + dateTime?: string | undefined; + } + + interface DialogHTMLAttributes extends HTMLAttributes { + onCancel?: ReactEventHandler | undefined; + onClose?: ReactEventHandler | undefined; + open?: boolean | undefined; + } + + interface EmbedHTMLAttributes extends HTMLAttributes { + height?: number | string | undefined; + src?: string | undefined; + type?: string | undefined; + width?: number | string | undefined; + } + + interface FieldsetHTMLAttributes extends HTMLAttributes { + disabled?: boolean | undefined; + form?: string | undefined; + name?: string | undefined; + } + + interface FormHTMLAttributes extends HTMLAttributes { + acceptCharset?: string | undefined; + action?: + | string + | undefined + | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS[ + keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS + ]; + autoComplete?: string | undefined; + encType?: string | undefined; + method?: string | undefined; + name?: string | undefined; + noValidate?: boolean | undefined; + target?: string | undefined; + } + + interface HtmlHTMLAttributes extends HTMLAttributes { + manifest?: string | undefined; + } + + interface IframeHTMLAttributes extends HTMLAttributes { + allow?: string | undefined; + allowFullScreen?: boolean | undefined; + allowTransparency?: boolean | undefined; + /** @deprecated */ + frameBorder?: number | string | undefined; + height?: number | string | undefined; + loading?: "eager" | "lazy" | undefined; + /** @deprecated */ + marginHeight?: number | undefined; + /** @deprecated */ + marginWidth?: number | undefined; + name?: string | undefined; + referrerPolicy?: HTMLAttributeReferrerPolicy | undefined; + sandbox?: string | undefined; + /** @deprecated */ + scrolling?: string | undefined; + seamless?: boolean | undefined; + src?: string | undefined; + srcDoc?: string | undefined; + width?: number | string | undefined; + } + + interface ImgHTMLAttributes extends HTMLAttributes { + alt?: string | undefined; + crossOrigin?: CrossOrigin; + decoding?: "async" | "auto" | "sync" | undefined; + fetchPriority?: "high" | "low" | "auto"; + height?: number | string | undefined; + loading?: "eager" | "lazy" | undefined; + referrerPolicy?: HTMLAttributeReferrerPolicy | undefined; + sizes?: string | undefined; + src?: string | undefined; + srcSet?: string | undefined; + useMap?: string | undefined; + width?: number | string | undefined; + } + + interface InsHTMLAttributes extends HTMLAttributes { + cite?: string | undefined; + dateTime?: string | undefined; + } + + type HTMLInputTypeAttribute = + | "button" + | "checkbox" + | "color" + | "date" + | "datetime-local" + | "email" + | "file" + | "hidden" + | "image" + | "month" + | "number" + | "password" + | "radio" + | "range" + | "reset" + | "search" + | "submit" + | "tel" + | "text" + | "time" + | "url" + | "week" + | (string & {}); + + type AutoFillAddressKind = "billing" | "shipping"; + type AutoFillBase = "" | "off" | "on"; + type AutoFillContactField = + | "email" + | "tel" + | "tel-area-code" + | "tel-country-code" + | "tel-extension" + | "tel-local" + | "tel-local-prefix" + | "tel-local-suffix" + | "tel-national"; + type AutoFillContactKind = "home" | "mobile" | "work"; + type AutoFillCredentialField = "webauthn"; + type AutoFillNormalField = + | "additional-name" + | "address-level1" + | "address-level2" + | "address-level3" + | "address-level4" + | "address-line1" + | "address-line2" + | "address-line3" + | "bday-day" + | "bday-month" + | "bday-year" + | "cc-csc" + | "cc-exp" + | "cc-exp-month" + | "cc-exp-year" + | "cc-family-name" + | "cc-given-name" + | "cc-name" + | "cc-number" + | "cc-type" + | "country" + | "country-name" + | "current-password" + | "family-name" + | "given-name" + | "honorific-prefix" + | "honorific-suffix" + | "name" + | "new-password" + | "one-time-code" + | "organization" + | "postal-code" + | "street-address" + | "transaction-amount" + | "transaction-currency" + | "username"; + type OptionalPrefixToken = `${T} ` | ""; + type OptionalPostfixToken = ` ${T}` | ""; + type AutoFillField = AutoFillNormalField | `${OptionalPrefixToken}${AutoFillContactField}`; + type AutoFillSection = `section-${string}`; + type AutoFill = + | AutoFillBase + | `${OptionalPrefixToken}${OptionalPrefixToken< + AutoFillAddressKind + >}${AutoFillField}${OptionalPostfixToken}`; + type HTMLInputAutoCompleteAttribute = AutoFill | (string & {}); + + interface InputHTMLAttributes extends HTMLAttributes { + accept?: string | undefined; + alt?: string | undefined; + autoComplete?: HTMLInputAutoCompleteAttribute | undefined; + capture?: boolean | "user" | "environment" | undefined; // https://www.w3.org/TR/html-media-capture/#the-capture-attribute + checked?: boolean | undefined; + disabled?: boolean | undefined; + enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined; + form?: string | undefined; + formAction?: + | string + | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS[ + keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS + ] + | undefined; + formEncType?: string | undefined; + formMethod?: string | undefined; + formNoValidate?: boolean | undefined; + formTarget?: string | undefined; + height?: number | string | undefined; + list?: string | undefined; + max?: number | string | undefined; + maxLength?: number | undefined; + min?: number | string | undefined; + minLength?: number | undefined; + multiple?: boolean | undefined; + name?: string | undefined; + pattern?: string | undefined; + placeholder?: string | undefined; + readOnly?: boolean | undefined; + required?: boolean | undefined; + size?: number | undefined; + src?: string | undefined; + step?: number | string | undefined; + type?: HTMLInputTypeAttribute | undefined; + value?: string | readonly string[] | number | undefined; + width?: number | string | undefined; + + onChange?: ChangeEventHandler | undefined; + } + + interface KeygenHTMLAttributes extends HTMLAttributes { + challenge?: string | undefined; + disabled?: boolean | undefined; + form?: string | undefined; + keyType?: string | undefined; + keyParams?: string | undefined; + name?: string | undefined; + } + + interface LabelHTMLAttributes extends HTMLAttributes { + form?: string | undefined; + htmlFor?: string | undefined; + } + + interface LiHTMLAttributes extends HTMLAttributes { + value?: string | readonly string[] | number | undefined; + } + + interface LinkHTMLAttributes extends HTMLAttributes { + as?: string | undefined; + crossOrigin?: CrossOrigin; + fetchPriority?: "high" | "low" | "auto"; + href?: string | undefined; + hrefLang?: string | undefined; + integrity?: string | undefined; + media?: string | undefined; + imageSrcSet?: string | undefined; + imageSizes?: string | undefined; + referrerPolicy?: HTMLAttributeReferrerPolicy | undefined; + sizes?: string | undefined; + type?: string | undefined; + charSet?: string | undefined; + } + + interface MapHTMLAttributes extends HTMLAttributes { + name?: string | undefined; + } + + interface MenuHTMLAttributes extends HTMLAttributes { + type?: string | undefined; + } + + interface MediaHTMLAttributes extends HTMLAttributes { + autoPlay?: boolean | undefined; + controls?: boolean | undefined; + controlsList?: string | undefined; + crossOrigin?: CrossOrigin; + loop?: boolean | undefined; + mediaGroup?: string | undefined; + muted?: boolean | undefined; + playsInline?: boolean | undefined; + preload?: string | undefined; + src?: string | undefined; + } + + interface MetaHTMLAttributes extends HTMLAttributes { + charSet?: string | undefined; + content?: string | undefined; + httpEquiv?: string | undefined; + media?: string | undefined; + name?: string | undefined; + } + + interface MeterHTMLAttributes extends HTMLAttributes { + form?: string | undefined; + high?: number | undefined; + low?: number | undefined; + max?: number | string | undefined; + min?: number | string | undefined; + optimum?: number | undefined; + value?: string | readonly string[] | number | undefined; + } + + interface QuoteHTMLAttributes extends HTMLAttributes { + cite?: string | undefined; + } + + interface ObjectHTMLAttributes extends HTMLAttributes { + classID?: string | undefined; + data?: string | undefined; + form?: string | undefined; + height?: number | string | undefined; + name?: string | undefined; + type?: string | undefined; + useMap?: string | undefined; + width?: number | string | undefined; + wmode?: string | undefined; + } + + interface OlHTMLAttributes extends HTMLAttributes { + reversed?: boolean | undefined; + start?: number | undefined; + type?: "1" | "a" | "A" | "i" | "I" | undefined; + } + + interface OptgroupHTMLAttributes extends HTMLAttributes { + disabled?: boolean | undefined; + label?: string | undefined; + } + + interface OptionHTMLAttributes extends HTMLAttributes { + disabled?: boolean | undefined; + label?: string | undefined; + selected?: boolean | undefined; + value?: string | readonly string[] | number | undefined; + } + + interface OutputHTMLAttributes extends HTMLAttributes { + form?: string | undefined; + htmlFor?: string | undefined; + name?: string | undefined; + } + + interface ParamHTMLAttributes extends HTMLAttributes { + name?: string | undefined; + value?: string | readonly string[] | number | undefined; + } + + interface ProgressHTMLAttributes extends HTMLAttributes { + max?: number | string | undefined; + value?: string | readonly string[] | number | undefined; + } + + interface SlotHTMLAttributes extends HTMLAttributes { + name?: string | undefined; + } + + interface ScriptHTMLAttributes extends HTMLAttributes { + async?: boolean | undefined; + /** @deprecated */ + charSet?: string | undefined; + crossOrigin?: CrossOrigin; + defer?: boolean | undefined; + integrity?: string | undefined; + noModule?: boolean | undefined; + referrerPolicy?: HTMLAttributeReferrerPolicy | undefined; + src?: string | undefined; + type?: string | undefined; + } + + interface SelectHTMLAttributes extends HTMLAttributes { + autoComplete?: string | undefined; + disabled?: boolean | undefined; + form?: string | undefined; + multiple?: boolean | undefined; + name?: string | undefined; + required?: boolean | undefined; + size?: number | undefined; + value?: string | readonly string[] | number | undefined; + onChange?: ChangeEventHandler | undefined; + } + + interface SourceHTMLAttributes extends HTMLAttributes { + height?: number | string | undefined; + media?: string | undefined; + sizes?: string | undefined; + src?: string | undefined; + srcSet?: string | undefined; + type?: string | undefined; + width?: number | string | undefined; + } + + interface StyleHTMLAttributes extends HTMLAttributes { + media?: string | undefined; + scoped?: boolean | undefined; + type?: string | undefined; + } + + interface TableHTMLAttributes extends HTMLAttributes { + align?: "left" | "center" | "right" | undefined; + bgcolor?: string | undefined; + border?: number | undefined; + cellPadding?: number | string | undefined; + cellSpacing?: number | string | undefined; + frame?: boolean | undefined; + rules?: "none" | "groups" | "rows" | "columns" | "all" | undefined; + summary?: string | undefined; + width?: number | string | undefined; + } + + interface TextareaHTMLAttributes extends HTMLAttributes { + autoComplete?: string | undefined; + cols?: number | undefined; + dirName?: string | undefined; + disabled?: boolean | undefined; + form?: string | undefined; + maxLength?: number | undefined; + minLength?: number | undefined; + name?: string | undefined; + placeholder?: string | undefined; + readOnly?: boolean | undefined; + required?: boolean | undefined; + rows?: number | undefined; + value?: string | readonly string[] | number | undefined; + wrap?: string | undefined; + + onChange?: ChangeEventHandler | undefined; + } + + interface TdHTMLAttributes extends HTMLAttributes { + align?: "left" | "center" | "right" | "justify" | "char" | undefined; + colSpan?: number | undefined; + headers?: string | undefined; + rowSpan?: number | undefined; + scope?: string | undefined; + abbr?: string | undefined; + height?: number | string | undefined; + width?: number | string | undefined; + valign?: "top" | "middle" | "bottom" | "baseline" | undefined; + } + + interface ThHTMLAttributes extends HTMLAttributes { + align?: "left" | "center" | "right" | "justify" | "char" | undefined; + colSpan?: number | undefined; + headers?: string | undefined; + rowSpan?: number | undefined; + scope?: string | undefined; + abbr?: string | undefined; + } + + interface TimeHTMLAttributes extends HTMLAttributes { + dateTime?: string | undefined; + } + + interface TrackHTMLAttributes extends HTMLAttributes { + default?: boolean | undefined; + kind?: string | undefined; + label?: string | undefined; + src?: string | undefined; + srcLang?: string | undefined; + } + + interface VideoHTMLAttributes extends MediaHTMLAttributes { + height?: number | string | undefined; + playsInline?: boolean | undefined; + poster?: string | undefined; + width?: number | string | undefined; + disablePictureInPicture?: boolean | undefined; + disableRemotePlayback?: boolean | undefined; + } + + // this list is "complete" in that it contains every SVG attribute + // that React supports, but the types can be improved. + // Full list here: https://facebook.github.io/react/docs/dom-elements.html + // + // The three broad type categories are (in order of restrictiveness): + // - "number | string" + // - "string" + // - union of string literals + interface SVGAttributes extends AriaAttributes, DOMAttributes { + // React-specific Attributes + suppressHydrationWarning?: boolean | undefined; + + // Attributes which also defined in HTMLAttributes + // See comment in SVGDOMPropertyConfig.js + className?: string | undefined; + color?: string | undefined; + height?: number | string | undefined; + id?: string | undefined; + lang?: string | undefined; + max?: number | string | undefined; + media?: string | undefined; + method?: string | undefined; + min?: number | string | undefined; + name?: string | undefined; + style?: CSSProperties | undefined; + target?: string | undefined; + type?: string | undefined; + width?: number | string | undefined; + + // Other HTML properties supported by SVG elements in browsers + role?: AriaRole | undefined; + tabIndex?: number | undefined; + crossOrigin?: CrossOrigin; + + // SVG Specific attributes + accentHeight?: number | string | undefined; + accumulate?: "none" | "sum" | undefined; + additive?: "replace" | "sum" | undefined; + alignmentBaseline?: + | "auto" + | "baseline" + | "before-edge" + | "text-before-edge" + | "middle" + | "central" + | "after-edge" + | "text-after-edge" + | "ideographic" + | "alphabetic" + | "hanging" + | "mathematical" + | "inherit" + | undefined; + allowReorder?: "no" | "yes" | undefined; + alphabetic?: number | string | undefined; + amplitude?: number | string | undefined; + arabicForm?: "initial" | "medial" | "terminal" | "isolated" | undefined; + ascent?: number | string | undefined; + attributeName?: string | undefined; + attributeType?: string | undefined; + autoReverse?: Booleanish | undefined; + azimuth?: number | string | undefined; + baseFrequency?: number | string | undefined; + baselineShift?: number | string | undefined; + baseProfile?: number | string | undefined; + bbox?: number | string | undefined; + begin?: number | string | undefined; + bias?: number | string | undefined; + by?: number | string | undefined; + calcMode?: number | string | undefined; + capHeight?: number | string | undefined; + clip?: number | string | undefined; + clipPath?: string | undefined; + clipPathUnits?: number | string | undefined; + clipRule?: number | string | undefined; + colorInterpolation?: number | string | undefined; + colorInterpolationFilters?: "auto" | "sRGB" | "linearRGB" | "inherit" | undefined; + colorProfile?: number | string | undefined; + colorRendering?: number | string | undefined; + contentScriptType?: number | string | undefined; + contentStyleType?: number | string | undefined; + cursor?: number | string | undefined; + cx?: number | string | undefined; + cy?: number | string | undefined; + d?: string | undefined; + decelerate?: number | string | undefined; + descent?: number | string | undefined; + diffuseConstant?: number | string | undefined; + direction?: number | string | undefined; + display?: number | string | undefined; + divisor?: number | string | undefined; + dominantBaseline?: number | string | undefined; + dur?: number | string | undefined; + dx?: number | string | undefined; + dy?: number | string | undefined; + edgeMode?: number | string | undefined; + elevation?: number | string | undefined; + enableBackground?: number | string | undefined; + end?: number | string | undefined; + exponent?: number | string | undefined; + externalResourcesRequired?: Booleanish | undefined; + fill?: string | undefined; + fillOpacity?: number | string | undefined; + fillRule?: "nonzero" | "evenodd" | "inherit" | undefined; + filter?: string | undefined; + filterRes?: number | string | undefined; + filterUnits?: number | string | undefined; + floodColor?: number | string | undefined; + floodOpacity?: number | string | undefined; + focusable?: Booleanish | "auto" | undefined; + fontFamily?: string | undefined; + fontSize?: number | string | undefined; + fontSizeAdjust?: number | string | undefined; + fontStretch?: number | string | undefined; + fontStyle?: number | string | undefined; + fontVariant?: number | string | undefined; + fontWeight?: number | string | undefined; + format?: number | string | undefined; + fr?: number | string | undefined; + from?: number | string | undefined; + fx?: number | string | undefined; + fy?: number | string | undefined; + g1?: number | string | undefined; + g2?: number | string | undefined; + glyphName?: number | string | undefined; + glyphOrientationHorizontal?: number | string | undefined; + glyphOrientationVertical?: number | string | undefined; + glyphRef?: number | string | undefined; + gradientTransform?: string | undefined; + gradientUnits?: string | undefined; + hanging?: number | string | undefined; + horizAdvX?: number | string | undefined; + horizOriginX?: number | string | undefined; + href?: string | undefined; + ideographic?: number | string | undefined; + imageRendering?: number | string | undefined; + in2?: number | string | undefined; + in?: string | undefined; + intercept?: number | string | undefined; + k1?: number | string | undefined; + k2?: number | string | undefined; + k3?: number | string | undefined; + k4?: number | string | undefined; + k?: number | string | undefined; + kernelMatrix?: number | string | undefined; + kernelUnitLength?: number | string | undefined; + kerning?: number | string | undefined; + keyPoints?: number | string | undefined; + keySplines?: number | string | undefined; + keyTimes?: number | string | undefined; + lengthAdjust?: number | string | undefined; + letterSpacing?: number | string | undefined; + lightingColor?: number | string | undefined; + limitingConeAngle?: number | string | undefined; + local?: number | string | undefined; + markerEnd?: string | undefined; + markerHeight?: number | string | undefined; + markerMid?: string | undefined; + markerStart?: string | undefined; + markerUnits?: number | string | undefined; + markerWidth?: number | string | undefined; + mask?: string | undefined; + maskContentUnits?: number | string | undefined; + maskUnits?: number | string | undefined; + mathematical?: number | string | undefined; + mode?: number | string | undefined; + numOctaves?: number | string | undefined; + offset?: number | string | undefined; + opacity?: number | string | undefined; + operator?: number | string | undefined; + order?: number | string | undefined; + orient?: number | string | undefined; + orientation?: number | string | undefined; + origin?: number | string | undefined; + overflow?: number | string | undefined; + overlinePosition?: number | string | undefined; + overlineThickness?: number | string | undefined; + paintOrder?: number | string | undefined; + panose1?: number | string | undefined; + path?: string | undefined; + pathLength?: number | string | undefined; + patternContentUnits?: string | undefined; + patternTransform?: number | string | undefined; + patternUnits?: string | undefined; + pointerEvents?: number | string | undefined; + points?: string | undefined; + pointsAtX?: number | string | undefined; + pointsAtY?: number | string | undefined; + pointsAtZ?: number | string | undefined; + preserveAlpha?: Booleanish | undefined; + preserveAspectRatio?: string | undefined; + primitiveUnits?: number | string | undefined; + r?: number | string | undefined; + radius?: number | string | undefined; + refX?: number | string | undefined; + refY?: number | string | undefined; + renderingIntent?: number | string | undefined; + repeatCount?: number | string | undefined; + repeatDur?: number | string | undefined; + requiredExtensions?: number | string | undefined; + requiredFeatures?: number | string | undefined; + restart?: number | string | undefined; + result?: string | undefined; + rotate?: number | string | undefined; + rx?: number | string | undefined; + ry?: number | string | undefined; + scale?: number | string | undefined; + seed?: number | string | undefined; + shapeRendering?: number | string | undefined; + slope?: number | string | undefined; + spacing?: number | string | undefined; + specularConstant?: number | string | undefined; + specularExponent?: number | string | undefined; + speed?: number | string | undefined; + spreadMethod?: string | undefined; + startOffset?: number | string | undefined; + stdDeviation?: number | string | undefined; + stemh?: number | string | undefined; + stemv?: number | string | undefined; + stitchTiles?: number | string | undefined; + stopColor?: string | undefined; + stopOpacity?: number | string | undefined; + strikethroughPosition?: number | string | undefined; + strikethroughThickness?: number | string | undefined; + string?: number | string | undefined; + stroke?: string | undefined; + strokeDasharray?: string | number | undefined; + strokeDashoffset?: string | number | undefined; + strokeLinecap?: "butt" | "round" | "square" | "inherit" | undefined; + strokeLinejoin?: "miter" | "round" | "bevel" | "inherit" | undefined; + strokeMiterlimit?: number | string | undefined; + strokeOpacity?: number | string | undefined; + strokeWidth?: number | string | undefined; + surfaceScale?: number | string | undefined; + systemLanguage?: number | string | undefined; + tableValues?: number | string | undefined; + targetX?: number | string | undefined; + targetY?: number | string | undefined; + textAnchor?: string | undefined; + textDecoration?: number | string | undefined; + textLength?: number | string | undefined; + textRendering?: number | string | undefined; + to?: number | string | undefined; + transform?: string | undefined; + u1?: number | string | undefined; + u2?: number | string | undefined; + underlinePosition?: number | string | undefined; + underlineThickness?: number | string | undefined; + unicode?: number | string | undefined; + unicodeBidi?: number | string | undefined; + unicodeRange?: number | string | undefined; + unitsPerEm?: number | string | undefined; + vAlphabetic?: number | string | undefined; + values?: string | undefined; + vectorEffect?: number | string | undefined; + version?: string | undefined; + vertAdvY?: number | string | undefined; + vertOriginX?: number | string | undefined; + vertOriginY?: number | string | undefined; + vHanging?: number | string | undefined; + vIdeographic?: number | string | undefined; + viewBox?: string | undefined; + viewTarget?: number | string | undefined; + visibility?: number | string | undefined; + vMathematical?: number | string | undefined; + widths?: number | string | undefined; + wordSpacing?: number | string | undefined; + writingMode?: number | string | undefined; + x1?: number | string | undefined; + x2?: number | string | undefined; + x?: number | string | undefined; + xChannelSelector?: string | undefined; + xHeight?: number | string | undefined; + xlinkActuate?: string | undefined; + xlinkArcrole?: string | undefined; + xlinkHref?: string | undefined; + xlinkRole?: string | undefined; + xlinkShow?: string | undefined; + xlinkTitle?: string | undefined; + xlinkType?: string | undefined; + xmlBase?: string | undefined; + xmlLang?: string | undefined; + xmlns?: string | undefined; + xmlnsXlink?: string | undefined; + xmlSpace?: string | undefined; + y1?: number | string | undefined; + y2?: number | string | undefined; + y?: number | string | undefined; + yChannelSelector?: string | undefined; + z?: number | string | undefined; + zoomAndPan?: string | undefined; + } + + interface WebViewHTMLAttributes extends HTMLAttributes { + allowFullScreen?: boolean | undefined; + allowpopups?: boolean | undefined; + autosize?: boolean | undefined; + blinkfeatures?: string | undefined; + disableblinkfeatures?: string | undefined; + disableguestresize?: boolean | undefined; + disablewebsecurity?: boolean | undefined; + guestinstance?: string | undefined; + httpreferrer?: string | undefined; + nodeintegration?: boolean | undefined; + partition?: string | undefined; + plugins?: boolean | undefined; + preload?: string | undefined; + src?: string | undefined; + useragent?: string | undefined; + webpreferences?: string | undefined; + } + + // + // React.DOM + // ---------------------------------------------------------------------- + + interface ReactHTML { + a: DetailedHTMLFactory, HTMLAnchorElement>; + abbr: DetailedHTMLFactory, HTMLElement>; + address: DetailedHTMLFactory, HTMLElement>; + area: DetailedHTMLFactory, HTMLAreaElement>; + article: DetailedHTMLFactory, HTMLElement>; + aside: DetailedHTMLFactory, HTMLElement>; + audio: DetailedHTMLFactory, HTMLAudioElement>; + b: DetailedHTMLFactory, HTMLElement>; + base: DetailedHTMLFactory, HTMLBaseElement>; + bdi: DetailedHTMLFactory, HTMLElement>; + bdo: DetailedHTMLFactory, HTMLElement>; + big: DetailedHTMLFactory, HTMLElement>; + blockquote: DetailedHTMLFactory, HTMLQuoteElement>; + body: DetailedHTMLFactory, HTMLBodyElement>; + br: DetailedHTMLFactory, HTMLBRElement>; + button: DetailedHTMLFactory, HTMLButtonElement>; + canvas: DetailedHTMLFactory, HTMLCanvasElement>; + caption: DetailedHTMLFactory, HTMLElement>; + center: DetailedHTMLFactory, HTMLElement>; + cite: DetailedHTMLFactory, HTMLElement>; + code: DetailedHTMLFactory, HTMLElement>; + col: DetailedHTMLFactory, HTMLTableColElement>; + colgroup: DetailedHTMLFactory, HTMLTableColElement>; + data: DetailedHTMLFactory, HTMLDataElement>; + datalist: DetailedHTMLFactory, HTMLDataListElement>; + dd: DetailedHTMLFactory, HTMLElement>; + del: DetailedHTMLFactory, HTMLModElement>; + details: DetailedHTMLFactory, HTMLDetailsElement>; + dfn: DetailedHTMLFactory, HTMLElement>; + dialog: DetailedHTMLFactory, HTMLDialogElement>; + div: DetailedHTMLFactory, HTMLDivElement>; + dl: DetailedHTMLFactory, HTMLDListElement>; + dt: DetailedHTMLFactory, HTMLElement>; + em: DetailedHTMLFactory, HTMLElement>; + embed: DetailedHTMLFactory, HTMLEmbedElement>; + fieldset: DetailedHTMLFactory, HTMLFieldSetElement>; + figcaption: DetailedHTMLFactory, HTMLElement>; + figure: DetailedHTMLFactory, HTMLElement>; + footer: DetailedHTMLFactory, HTMLElement>; + form: DetailedHTMLFactory, HTMLFormElement>; + h1: DetailedHTMLFactory, HTMLHeadingElement>; + h2: DetailedHTMLFactory, HTMLHeadingElement>; + h3: DetailedHTMLFactory, HTMLHeadingElement>; + h4: DetailedHTMLFactory, HTMLHeadingElement>; + h5: DetailedHTMLFactory, HTMLHeadingElement>; + h6: DetailedHTMLFactory, HTMLHeadingElement>; + head: DetailedHTMLFactory, HTMLHeadElement>; + header: DetailedHTMLFactory, HTMLElement>; + hgroup: DetailedHTMLFactory, HTMLElement>; + hr: DetailedHTMLFactory, HTMLHRElement>; + html: DetailedHTMLFactory, HTMLHtmlElement>; + i: DetailedHTMLFactory, HTMLElement>; + iframe: DetailedHTMLFactory, HTMLIFrameElement>; + img: DetailedHTMLFactory, HTMLImageElement>; + input: DetailedHTMLFactory, HTMLInputElement>; + ins: DetailedHTMLFactory, HTMLModElement>; + kbd: DetailedHTMLFactory, HTMLElement>; + keygen: DetailedHTMLFactory, HTMLElement>; + label: DetailedHTMLFactory, HTMLLabelElement>; + legend: DetailedHTMLFactory, HTMLLegendElement>; + li: DetailedHTMLFactory, HTMLLIElement>; + link: DetailedHTMLFactory, HTMLLinkElement>; + main: DetailedHTMLFactory, HTMLElement>; + map: DetailedHTMLFactory, HTMLMapElement>; + mark: DetailedHTMLFactory, HTMLElement>; + menu: DetailedHTMLFactory, HTMLElement>; + menuitem: DetailedHTMLFactory, HTMLElement>; + meta: DetailedHTMLFactory, HTMLMetaElement>; + meter: DetailedHTMLFactory, HTMLMeterElement>; + nav: DetailedHTMLFactory, HTMLElement>; + noscript: DetailedHTMLFactory, HTMLElement>; + object: DetailedHTMLFactory, HTMLObjectElement>; + ol: DetailedHTMLFactory, HTMLOListElement>; + optgroup: DetailedHTMLFactory, HTMLOptGroupElement>; + option: DetailedHTMLFactory, HTMLOptionElement>; + output: DetailedHTMLFactory, HTMLOutputElement>; + p: DetailedHTMLFactory, HTMLParagraphElement>; + param: DetailedHTMLFactory, HTMLParamElement>; + picture: DetailedHTMLFactory, HTMLElement>; + pre: DetailedHTMLFactory, HTMLPreElement>; + progress: DetailedHTMLFactory, HTMLProgressElement>; + q: DetailedHTMLFactory, HTMLQuoteElement>; + rp: DetailedHTMLFactory, HTMLElement>; + rt: DetailedHTMLFactory, HTMLElement>; + ruby: DetailedHTMLFactory, HTMLElement>; + s: DetailedHTMLFactory, HTMLElement>; + samp: DetailedHTMLFactory, HTMLElement>; + search: DetailedHTMLFactory, HTMLElement>; + slot: DetailedHTMLFactory, HTMLSlotElement>; + script: DetailedHTMLFactory, HTMLScriptElement>; + section: DetailedHTMLFactory, HTMLElement>; + select: DetailedHTMLFactory, HTMLSelectElement>; + small: DetailedHTMLFactory, HTMLElement>; + source: DetailedHTMLFactory, HTMLSourceElement>; + span: DetailedHTMLFactory, HTMLSpanElement>; + strong: DetailedHTMLFactory, HTMLElement>; + style: DetailedHTMLFactory, HTMLStyleElement>; + sub: DetailedHTMLFactory, HTMLElement>; + summary: DetailedHTMLFactory, HTMLElement>; + sup: DetailedHTMLFactory, HTMLElement>; + table: DetailedHTMLFactory, HTMLTableElement>; + template: DetailedHTMLFactory, HTMLTemplateElement>; + tbody: DetailedHTMLFactory, HTMLTableSectionElement>; + td: DetailedHTMLFactory, HTMLTableDataCellElement>; + textarea: DetailedHTMLFactory, HTMLTextAreaElement>; + tfoot: DetailedHTMLFactory, HTMLTableSectionElement>; + th: DetailedHTMLFactory, HTMLTableHeaderCellElement>; + thead: DetailedHTMLFactory, HTMLTableSectionElement>; + time: DetailedHTMLFactory, HTMLTimeElement>; + title: DetailedHTMLFactory, HTMLTitleElement>; + tr: DetailedHTMLFactory, HTMLTableRowElement>; + track: DetailedHTMLFactory, HTMLTrackElement>; + u: DetailedHTMLFactory, HTMLElement>; + ul: DetailedHTMLFactory, HTMLUListElement>; + "var": DetailedHTMLFactory, HTMLElement>; + video: DetailedHTMLFactory, HTMLVideoElement>; + wbr: DetailedHTMLFactory, HTMLElement>; + webview: DetailedHTMLFactory, HTMLWebViewElement>; + } + + interface ReactSVG { + animate: SVGFactory; + circle: SVGFactory; + clipPath: SVGFactory; + defs: SVGFactory; + desc: SVGFactory; + ellipse: SVGFactory; + feBlend: SVGFactory; + feColorMatrix: SVGFactory; + feComponentTransfer: SVGFactory; + feComposite: SVGFactory; + feConvolveMatrix: SVGFactory; + feDiffuseLighting: SVGFactory; + feDisplacementMap: SVGFactory; + feDistantLight: SVGFactory; + feDropShadow: SVGFactory; + feFlood: SVGFactory; + feFuncA: SVGFactory; + feFuncB: SVGFactory; + feFuncG: SVGFactory; + feFuncR: SVGFactory; + feGaussianBlur: SVGFactory; + feImage: SVGFactory; + feMerge: SVGFactory; + feMergeNode: SVGFactory; + feMorphology: SVGFactory; + feOffset: SVGFactory; + fePointLight: SVGFactory; + feSpecularLighting: SVGFactory; + feSpotLight: SVGFactory; + feTile: SVGFactory; + feTurbulence: SVGFactory; + filter: SVGFactory; + foreignObject: SVGFactory; + g: SVGFactory; + image: SVGFactory; + line: SVGFactory; + linearGradient: SVGFactory; + marker: SVGFactory; + mask: SVGFactory; + metadata: SVGFactory; + path: SVGFactory; + pattern: SVGFactory; + polygon: SVGFactory; + polyline: SVGFactory; + radialGradient: SVGFactory; + rect: SVGFactory; + stop: SVGFactory; + svg: SVGFactory; + switch: SVGFactory; + symbol: SVGFactory; + text: SVGFactory; + textPath: SVGFactory; + tspan: SVGFactory; + use: SVGFactory; + view: SVGFactory; + } + + interface ReactDOM extends ReactHTML, ReactSVG {} + + // + // React.PropTypes + // ---------------------------------------------------------------------- + + /** + * @deprecated Use `Validator` from the ´prop-types` instead. + */ + type Validator = PropTypes.Validator; + + /** + * @deprecated Use `Requireable` from the ´prop-types` instead. + */ + type Requireable = PropTypes.Requireable; + + /** + * @deprecated Use `ValidationMap` from the ´prop-types` instead. + */ + type ValidationMap = PropTypes.ValidationMap; + + /** + * @deprecated Use `WeakValidationMap` from the ´prop-types` instead. + */ + type WeakValidationMap = { + [K in keyof T]?: null extends T[K] ? Validator + : undefined extends T[K] ? Validator + : Validator; + }; + + /** + * @deprecated Use `PropTypes.*` where `PropTypes` comes from `import * as PropTypes from 'prop-types'` instead. + */ + interface ReactPropTypes { + any: typeof PropTypes.any; + array: typeof PropTypes.array; + bool: typeof PropTypes.bool; + func: typeof PropTypes.func; + number: typeof PropTypes.number; + object: typeof PropTypes.object; + string: typeof PropTypes.string; + node: typeof PropTypes.node; + element: typeof PropTypes.element; + instanceOf: typeof PropTypes.instanceOf; + oneOf: typeof PropTypes.oneOf; + oneOfType: typeof PropTypes.oneOfType; + arrayOf: typeof PropTypes.arrayOf; + objectOf: typeof PropTypes.objectOf; + shape: typeof PropTypes.shape; + exact: typeof PropTypes.exact; + } + + // + // React.Children + // ---------------------------------------------------------------------- + + /** + * @deprecated - Use `typeof React.Children` instead. + */ + // Sync with type of `const Children`. + interface ReactChildren { + map( + children: C | readonly C[], + fn: (child: C, index: number) => T, + ): C extends null | undefined ? C : Array>; + forEach(children: C | readonly C[], fn: (child: C, index: number) => void): void; + count(children: any): number; + only(children: C): C extends any[] ? never : C; + toArray(children: ReactNode | ReactNode[]): Array>; + } + + // + // Browser Interfaces + // https://github.com/nikeee/2048-typescript/blob/master/2048/js/touch.d.ts + // ---------------------------------------------------------------------- + + interface AbstractView { + styleMedia: StyleMedia; + document: Document; + } + + interface Touch { + identifier: number; + target: EventTarget; + screenX: number; + screenY: number; + clientX: number; + clientY: number; + pageX: number; + pageY: number; + } + + interface TouchList { + [index: number]: Touch; + length: number; + item(index: number): Touch; + identifiedTouch(identifier: number): Touch; + } + + // + // Error Interfaces + // ---------------------------------------------------------------------- + interface ErrorInfo { + /** + * Captures which component contained the exception, and its ancestors. + */ + componentStack?: string | null; + digest?: string | null; + } + + // Keep in sync with JSX namespace in ./jsx-runtime.d.ts and ./jsx-dev-runtime.d.ts + namespace JSX { + type ElementType = GlobalJSXElementType; + interface Element extends GlobalJSXElement {} + interface ElementClass extends GlobalJSXElementClass {} + interface ElementAttributesProperty extends GlobalJSXElementAttributesProperty {} + interface ElementChildrenAttribute extends GlobalJSXElementChildrenAttribute {} + + type LibraryManagedAttributes = GlobalJSXLibraryManagedAttributes; + + interface IntrinsicAttributes extends GlobalJSXIntrinsicAttributes {} + interface IntrinsicClassAttributes extends GlobalJSXIntrinsicClassAttributes {} + interface IntrinsicElements extends GlobalJSXIntrinsicElements {} + } +} + +// naked 'any' type in a conditional type will short circuit and union both the then/else branches +// so boolean is only resolved for T = any +type IsExactlyAny = boolean extends (T extends never ? true : false) ? true : false; + +type ExactlyAnyPropertyKeys = { [K in keyof T]: IsExactlyAny extends true ? K : never }[keyof T]; +type NotExactlyAnyPropertyKeys = Exclude>; + +// Try to resolve ill-defined props like for JS users: props can be any, or sometimes objects with properties of type any +type MergePropTypes = + // Distribute over P in case it is a union type + P extends any + // If props is type any, use propTypes definitions + ? IsExactlyAny

      extends true ? T + // If declared props have indexed properties, ignore inferred props entirely as keyof gets widened + : string extends keyof P ? P + // Prefer declared types which are not exactly any + : + & Pick> + // For props which are exactly any, use the type inferred from propTypes if present + & Pick>> + // Keep leftover props not specified in propTypes + & Pick> + : never; + +type InexactPartial = { [K in keyof T]?: T[K] | undefined }; + +// Any prop that has a default prop becomes optional, but its type is unchanged +// Undeclared default props are augmented into the resulting allowable attributes +// If declared props have indexed properties, ignore default props entirely as keyof gets widened +// Wrap in an outer-level conditional type to allow distribution over props that are unions +type Defaultize = P extends any ? string extends keyof P ? P + : + & Pick> + & InexactPartial>> + & InexactPartial>> + : never; + +type ReactManagedAttributes = C extends { propTypes: infer T; defaultProps: infer D } + ? Defaultize>, D> + : C extends { propTypes: infer T } ? MergePropTypes> + : C extends { defaultProps: infer D } ? Defaultize + : P; + +declare global { + /** + * @deprecated Use `React.JSX` instead of the global `JSX` namespace. + */ + namespace JSX { + // We don't just alias React.ElementType because React.ElementType + // historically does more than we need it to. + // E.g. it also contains .propTypes and so TS also verifies the declared + // props type does match the declared .propTypes. + // But if libraries declared their .propTypes but not props type, + // or they mismatch, you won't be able to use the class component + // as a JSX.ElementType. + // We could fix this everywhere but we're ultimately not interested in + // .propTypes assignability so we might as well drop it entirely here to + // reduce the work of the type-checker. + // TODO: Check impact of making React.ElementType

      = React.JSXElementConstructor

      + type ElementType = string | React.JSXElementConstructor; + interface Element extends React.ReactElement {} + interface ElementClass extends React.Component { + render(): React.ReactNode; + } + interface ElementAttributesProperty { + props: {}; + } + interface ElementChildrenAttribute { + children: {}; + } + + // We can't recurse forever because `type` can't be self-referential; + // let's assume it's reasonable to do a single React.lazy() around a single React.memo() / vice-versa + type LibraryManagedAttributes = C extends + React.MemoExoticComponent | React.LazyExoticComponent + ? T extends React.MemoExoticComponent | React.LazyExoticComponent + ? ReactManagedAttributes + : ReactManagedAttributes + : ReactManagedAttributes; + + interface IntrinsicAttributes extends React.Attributes {} + interface IntrinsicClassAttributes extends React.ClassAttributes {} + + interface IntrinsicElements { + // HTML + a: React.DetailedHTMLProps, HTMLAnchorElement>; + abbr: React.DetailedHTMLProps, HTMLElement>; + address: React.DetailedHTMLProps, HTMLElement>; + area: React.DetailedHTMLProps, HTMLAreaElement>; + article: React.DetailedHTMLProps, HTMLElement>; + aside: React.DetailedHTMLProps, HTMLElement>; + audio: React.DetailedHTMLProps, HTMLAudioElement>; + b: React.DetailedHTMLProps, HTMLElement>; + base: React.DetailedHTMLProps, HTMLBaseElement>; + bdi: React.DetailedHTMLProps, HTMLElement>; + bdo: React.DetailedHTMLProps, HTMLElement>; + big: React.DetailedHTMLProps, HTMLElement>; + blockquote: React.DetailedHTMLProps, HTMLQuoteElement>; + body: React.DetailedHTMLProps, HTMLBodyElement>; + br: React.DetailedHTMLProps, HTMLBRElement>; + button: React.DetailedHTMLProps, HTMLButtonElement>; + canvas: React.DetailedHTMLProps, HTMLCanvasElement>; + caption: React.DetailedHTMLProps, HTMLElement>; + center: React.DetailedHTMLProps, HTMLElement>; + cite: React.DetailedHTMLProps, HTMLElement>; + code: React.DetailedHTMLProps, HTMLElement>; + col: React.DetailedHTMLProps, HTMLTableColElement>; + colgroup: React.DetailedHTMLProps, HTMLTableColElement>; + data: React.DetailedHTMLProps, HTMLDataElement>; + datalist: React.DetailedHTMLProps, HTMLDataListElement>; + dd: React.DetailedHTMLProps, HTMLElement>; + del: React.DetailedHTMLProps, HTMLModElement>; + details: React.DetailedHTMLProps, HTMLDetailsElement>; + dfn: React.DetailedHTMLProps, HTMLElement>; + dialog: React.DetailedHTMLProps, HTMLDialogElement>; + div: React.DetailedHTMLProps, HTMLDivElement>; + dl: React.DetailedHTMLProps, HTMLDListElement>; + dt: React.DetailedHTMLProps, HTMLElement>; + em: React.DetailedHTMLProps, HTMLElement>; + embed: React.DetailedHTMLProps, HTMLEmbedElement>; + fieldset: React.DetailedHTMLProps, HTMLFieldSetElement>; + figcaption: React.DetailedHTMLProps, HTMLElement>; + figure: React.DetailedHTMLProps, HTMLElement>; + footer: React.DetailedHTMLProps, HTMLElement>; + form: React.DetailedHTMLProps, HTMLFormElement>; + h1: React.DetailedHTMLProps, HTMLHeadingElement>; + h2: React.DetailedHTMLProps, HTMLHeadingElement>; + h3: React.DetailedHTMLProps, HTMLHeadingElement>; + h4: React.DetailedHTMLProps, HTMLHeadingElement>; + h5: React.DetailedHTMLProps, HTMLHeadingElement>; + h6: React.DetailedHTMLProps, HTMLHeadingElement>; + head: React.DetailedHTMLProps, HTMLHeadElement>; + header: React.DetailedHTMLProps, HTMLElement>; + hgroup: React.DetailedHTMLProps, HTMLElement>; + hr: React.DetailedHTMLProps, HTMLHRElement>; + html: React.DetailedHTMLProps, HTMLHtmlElement>; + i: React.DetailedHTMLProps, HTMLElement>; + iframe: React.DetailedHTMLProps, HTMLIFrameElement>; + img: React.DetailedHTMLProps, HTMLImageElement>; + input: React.DetailedHTMLProps, HTMLInputElement>; + ins: React.DetailedHTMLProps, HTMLModElement>; + kbd: React.DetailedHTMLProps, HTMLElement>; + keygen: React.DetailedHTMLProps, HTMLElement>; + label: React.DetailedHTMLProps, HTMLLabelElement>; + legend: React.DetailedHTMLProps, HTMLLegendElement>; + li: React.DetailedHTMLProps, HTMLLIElement>; + link: React.DetailedHTMLProps, HTMLLinkElement>; + main: React.DetailedHTMLProps, HTMLElement>; + map: React.DetailedHTMLProps, HTMLMapElement>; + mark: React.DetailedHTMLProps, HTMLElement>; + menu: React.DetailedHTMLProps, HTMLElement>; + menuitem: React.DetailedHTMLProps, HTMLElement>; + meta: React.DetailedHTMLProps, HTMLMetaElement>; + meter: React.DetailedHTMLProps, HTMLMeterElement>; + nav: React.DetailedHTMLProps, HTMLElement>; + noindex: React.DetailedHTMLProps, HTMLElement>; + noscript: React.DetailedHTMLProps, HTMLElement>; + object: React.DetailedHTMLProps, HTMLObjectElement>; + ol: React.DetailedHTMLProps, HTMLOListElement>; + optgroup: React.DetailedHTMLProps, HTMLOptGroupElement>; + option: React.DetailedHTMLProps, HTMLOptionElement>; + output: React.DetailedHTMLProps, HTMLOutputElement>; + p: React.DetailedHTMLProps, HTMLParagraphElement>; + param: React.DetailedHTMLProps, HTMLParamElement>; + picture: React.DetailedHTMLProps, HTMLElement>; + pre: React.DetailedHTMLProps, HTMLPreElement>; + progress: React.DetailedHTMLProps, HTMLProgressElement>; + q: React.DetailedHTMLProps, HTMLQuoteElement>; + rp: React.DetailedHTMLProps, HTMLElement>; + rt: React.DetailedHTMLProps, HTMLElement>; + ruby: React.DetailedHTMLProps, HTMLElement>; + s: React.DetailedHTMLProps, HTMLElement>; + samp: React.DetailedHTMLProps, HTMLElement>; + search: React.DetailedHTMLProps, HTMLElement>; + slot: React.DetailedHTMLProps, HTMLSlotElement>; + script: React.DetailedHTMLProps, HTMLScriptElement>; + section: React.DetailedHTMLProps, HTMLElement>; + select: React.DetailedHTMLProps, HTMLSelectElement>; + small: React.DetailedHTMLProps, HTMLElement>; + source: React.DetailedHTMLProps, HTMLSourceElement>; + span: React.DetailedHTMLProps, HTMLSpanElement>; + strong: React.DetailedHTMLProps, HTMLElement>; + style: React.DetailedHTMLProps, HTMLStyleElement>; + sub: React.DetailedHTMLProps, HTMLElement>; + summary: React.DetailedHTMLProps, HTMLElement>; + sup: React.DetailedHTMLProps, HTMLElement>; + table: React.DetailedHTMLProps, HTMLTableElement>; + template: React.DetailedHTMLProps, HTMLTemplateElement>; + tbody: React.DetailedHTMLProps, HTMLTableSectionElement>; + td: React.DetailedHTMLProps, HTMLTableDataCellElement>; + textarea: React.DetailedHTMLProps, HTMLTextAreaElement>; + tfoot: React.DetailedHTMLProps, HTMLTableSectionElement>; + th: React.DetailedHTMLProps, HTMLTableHeaderCellElement>; + thead: React.DetailedHTMLProps, HTMLTableSectionElement>; + time: React.DetailedHTMLProps, HTMLTimeElement>; + title: React.DetailedHTMLProps, HTMLTitleElement>; + tr: React.DetailedHTMLProps, HTMLTableRowElement>; + track: React.DetailedHTMLProps, HTMLTrackElement>; + u: React.DetailedHTMLProps, HTMLElement>; + ul: React.DetailedHTMLProps, HTMLUListElement>; + "var": React.DetailedHTMLProps, HTMLElement>; + video: React.DetailedHTMLProps, HTMLVideoElement>; + wbr: React.DetailedHTMLProps, HTMLElement>; + webview: React.DetailedHTMLProps, HTMLWebViewElement>; + + // SVG + svg: React.SVGProps; + + animate: React.SVGProps; // TODO: It is SVGAnimateElement but is not in TypeScript's lib.dom.d.ts for now. + animateMotion: React.SVGProps; + animateTransform: React.SVGProps; // TODO: It is SVGAnimateTransformElement but is not in TypeScript's lib.dom.d.ts for now. + circle: React.SVGProps; + clipPath: React.SVGProps; + defs: React.SVGProps; + desc: React.SVGProps; + ellipse: React.SVGProps; + feBlend: React.SVGProps; + feColorMatrix: React.SVGProps; + feComponentTransfer: React.SVGProps; + feComposite: React.SVGProps; + feConvolveMatrix: React.SVGProps; + feDiffuseLighting: React.SVGProps; + feDisplacementMap: React.SVGProps; + feDistantLight: React.SVGProps; + feDropShadow: React.SVGProps; + feFlood: React.SVGProps; + feFuncA: React.SVGProps; + feFuncB: React.SVGProps; + feFuncG: React.SVGProps; + feFuncR: React.SVGProps; + feGaussianBlur: React.SVGProps; + feImage: React.SVGProps; + feMerge: React.SVGProps; + feMergeNode: React.SVGProps; + feMorphology: React.SVGProps; + feOffset: React.SVGProps; + fePointLight: React.SVGProps; + feSpecularLighting: React.SVGProps; + feSpotLight: React.SVGProps; + feTile: React.SVGProps; + feTurbulence: React.SVGProps; + filter: React.SVGProps; + foreignObject: React.SVGProps; + g: React.SVGProps; + image: React.SVGProps; + line: React.SVGLineElementAttributes; + linearGradient: React.SVGProps; + marker: React.SVGProps; + mask: React.SVGProps; + metadata: React.SVGProps; + mpath: React.SVGProps; + path: React.SVGProps; + pattern: React.SVGProps; + polygon: React.SVGProps; + polyline: React.SVGProps; + radialGradient: React.SVGProps; + rect: React.SVGProps; + set: React.SVGProps; + stop: React.SVGProps; + switch: React.SVGProps; + symbol: React.SVGProps; + text: React.SVGTextElementAttributes; + textPath: React.SVGProps; + tspan: React.SVGProps; + use: React.SVGProps; + view: React.SVGProps; + } + } +} + +// React.JSX needs to point to global.JSX to keep global module augmentations intact. +// But we can't access global.JSX so we need to create these aliases instead. +// Once the global JSX namespace will be removed we replace React.JSX with the contents of global.JSX +type GlobalJSXElementType = JSX.ElementType; +interface GlobalJSXElement extends JSX.Element {} +interface GlobalJSXElementClass extends JSX.ElementClass {} +interface GlobalJSXElementAttributesProperty extends JSX.ElementAttributesProperty {} +interface GlobalJSXElementChildrenAttribute extends JSX.ElementChildrenAttribute {} + +type GlobalJSXLibraryManagedAttributes = JSX.LibraryManagedAttributes; + +interface GlobalJSXIntrinsicAttributes extends JSX.IntrinsicAttributes {} +interface GlobalJSXIntrinsicClassAttributes extends JSX.IntrinsicClassAttributes {} + +interface GlobalJSXIntrinsicElements extends JSX.IntrinsicElements {} diff --git a/node_modules/@types/react/jsx-dev-runtime.d.ts b/node_modules/@types/react/jsx-dev-runtime.d.ts new file mode 100644 index 0000000..d28644c --- /dev/null +++ b/node_modules/@types/react/jsx-dev-runtime.d.ts @@ -0,0 +1,45 @@ +import * as React from "./"; +export { Fragment } from "./"; + +export namespace JSX { + type ElementType = React.JSX.ElementType; + interface Element extends React.JSX.Element {} + interface ElementClass extends React.JSX.ElementClass {} + interface ElementAttributesProperty extends React.JSX.ElementAttributesProperty {} + interface ElementChildrenAttribute extends React.JSX.ElementChildrenAttribute {} + type LibraryManagedAttributes = React.JSX.LibraryManagedAttributes; + interface IntrinsicAttributes extends React.JSX.IntrinsicAttributes {} + interface IntrinsicClassAttributes extends React.JSX.IntrinsicClassAttributes {} + interface IntrinsicElements extends React.JSX.IntrinsicElements {} +} + +export interface JSXSource { + /** + * The source file where the element originates from. + */ + fileName?: string | undefined; + + /** + * The line number where the element was created. + */ + lineNumber?: number | undefined; + + /** + * The column number where the element was created. + */ + columnNumber?: number | undefined; +} + +/** + * Create a React element. + * + * You should not use this function directly. Use JSX and a transpiler instead. + */ +export function jsxDEV( + type: React.ElementType, + props: unknown, + key: React.Key | undefined, + isStatic: boolean, + source?: JSXSource, + self?: unknown, +): React.ReactElement; diff --git a/node_modules/@types/react/jsx-runtime.d.ts b/node_modules/@types/react/jsx-runtime.d.ts new file mode 100644 index 0000000..e9fea27 --- /dev/null +++ b/node_modules/@types/react/jsx-runtime.d.ts @@ -0,0 +1,36 @@ +import * as React from "./"; +export { Fragment } from "./"; + +export namespace JSX { + type ElementType = React.JSX.ElementType; + interface Element extends React.JSX.Element {} + interface ElementClass extends React.JSX.ElementClass {} + interface ElementAttributesProperty extends React.JSX.ElementAttributesProperty {} + interface ElementChildrenAttribute extends React.JSX.ElementChildrenAttribute {} + type LibraryManagedAttributes = React.JSX.LibraryManagedAttributes; + interface IntrinsicAttributes extends React.JSX.IntrinsicAttributes {} + interface IntrinsicClassAttributes extends React.JSX.IntrinsicClassAttributes {} + interface IntrinsicElements extends React.JSX.IntrinsicElements {} +} + +/** + * Create a React element. + * + * You should not use this function directly. Use JSX and a transpiler instead. + */ +export function jsx( + type: React.ElementType, + props: unknown, + key?: React.Key, +): React.ReactElement; + +/** + * Create a React element. + * + * You should not use this function directly. Use JSX and a transpiler instead. + */ +export function jsxs( + type: React.ElementType, + props: unknown, + key?: React.Key, +): React.ReactElement; diff --git a/node_modules/@types/react/package.json b/node_modules/@types/react/package.json new file mode 100644 index 0000000..44e5b62 --- /dev/null +++ b/node_modules/@types/react/package.json @@ -0,0 +1,210 @@ +{ + "name": "@types/react", + "version": "18.3.4", + "description": "TypeScript definitions for react", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react", + "license": "MIT", + "contributors": [ + { + "name": "Asana", + "url": "https://asana.com" + }, + { + "name": "AssureSign", + "url": "http://www.assuresign.com" + }, + { + "name": "Microsoft", + "url": "https://microsoft.com" + }, + { + "name": "John Reilly", + "githubUsername": "johnnyreilly", + "url": "https://github.com/johnnyreilly" + }, + { + "name": "Benoit Benezech", + "githubUsername": "bbenezech", + "url": "https://github.com/bbenezech" + }, + { + "name": "Patricio Zavolinsky", + "githubUsername": "pzavolinsky", + "url": "https://github.com/pzavolinsky" + }, + { + "name": "Eric Anderson", + "githubUsername": "ericanderson", + "url": "https://github.com/ericanderson" + }, + { + "name": "Dovydas Navickas", + "githubUsername": "DovydasNavickas", + "url": "https://github.com/DovydasNavickas" + }, + { + "name": "Josh Rutherford", + "githubUsername": "theruther4d", + "url": "https://github.com/theruther4d" + }, + { + "name": "Guilherme Hübner", + "githubUsername": "guilhermehubner", + "url": "https://github.com/guilhermehubner" + }, + { + "name": "Ferdy Budhidharma", + "githubUsername": "ferdaber", + "url": "https://github.com/ferdaber" + }, + { + "name": "Johann Rakotoharisoa", + "githubUsername": "jrakotoharisoa", + "url": "https://github.com/jrakotoharisoa" + }, + { + "name": "Olivier Pascal", + "githubUsername": "pascaloliv", + "url": "https://github.com/pascaloliv" + }, + { + "name": "Martin Hochel", + "githubUsername": "hotell", + "url": "https://github.com/hotell" + }, + { + "name": "Frank Li", + "githubUsername": "franklixuefei", + "url": "https://github.com/franklixuefei" + }, + { + "name": "Jessica Franco", + "githubUsername": "Jessidhia", + "url": "https://github.com/Jessidhia" + }, + { + "name": "Saransh Kataria", + "githubUsername": "saranshkataria", + "url": "https://github.com/saranshkataria" + }, + { + "name": "Kanitkorn Sujautra", + "githubUsername": "lukyth", + "url": "https://github.com/lukyth" + }, + { + "name": "Sebastian Silbermann", + "githubUsername": "eps1lon", + "url": "https://github.com/eps1lon" + }, + { + "name": "Kyle Scully", + "githubUsername": "zieka", + "url": "https://github.com/zieka" + }, + { + "name": "Cong Zhang", + "githubUsername": "dancerphil", + "url": "https://github.com/dancerphil" + }, + { + "name": "Dimitri Mitropoulos", + "githubUsername": "dimitropoulos", + "url": "https://github.com/dimitropoulos" + }, + { + "name": "JongChan Choi", + "githubUsername": "disjukr", + "url": "https://github.com/disjukr" + }, + { + "name": "Victor Magalhães", + "githubUsername": "vhfmag", + "url": "https://github.com/vhfmag" + }, + { + "name": "Dale Tan", + "githubUsername": "hellatan", + "url": "https://github.com/hellatan" + }, + { + "name": "Priyanshu Rav", + "githubUsername": "priyanshurav", + "url": "https://github.com/priyanshurav" + }, + { + "name": "Dmitry Semigradsky", + "githubUsername": "Semigradsky", + "url": "https://github.com/Semigradsky" + }, + { + "name": "Matt Pocock", + "githubUsername": "mattpocock", + "url": "https://github.com/mattpocock" + } + ], + "main": "", + "types": "index.d.ts", + "typesVersions": { + "<=5.0": { + "*": [ + "ts5.0/*" + ] + } + }, + "exports": { + ".": { + "types@<=5.0": { + "default": "./ts5.0/index.d.ts" + }, + "types": { + "default": "./index.d.ts" + } + }, + "./canary": { + "types@<=5.0": { + "default": "./ts5.0/canary.d.ts" + }, + "types": { + "default": "./canary.d.ts" + } + }, + "./experimental": { + "types@<=5.0": { + "default": "./ts5.0/experimental.d.ts" + }, + "types": { + "default": "./experimental.d.ts" + } + }, + "./jsx-runtime": { + "types@<=5.0": { + "default": "./ts5.0/jsx-runtime.d.ts" + }, + "types": { + "default": "./jsx-runtime.d.ts" + } + }, + "./jsx-dev-runtime": { + "types@<=5.0": { + "default": "./ts5.0/jsx-dev-runtime.d.ts" + }, + "types": { + "default": "./jsx-dev-runtime.d.ts" + } + }, + "./package.json": "./package.json" + }, + "repository": { + "type": "git", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/react" + }, + "scripts": {}, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + }, + "typesPublisherContentHash": "ba3791a79e7cc51baa23cc8bd3b97abbea13332ebe70a49c6ac36a1fa08f33f7", + "typeScriptVersion": "4.8" +} \ No newline at end of file diff --git a/node_modules/@types/react/ts5.0/canary.d.ts b/node_modules/@types/react/ts5.0/canary.d.ts new file mode 100644 index 0000000..6e9b801 --- /dev/null +++ b/node_modules/@types/react/ts5.0/canary.d.ts @@ -0,0 +1,157 @@ +/** + * These are types for things that are present in the React `canary` release channel. + * + * To load the types declared here in an actual project, there are three ways. The easiest one, + * if your `tsconfig.json` already has a `"types"` array in the `"compilerOptions"` section, + * is to add `"react/canary"` to the `"types"` array. + * + * Alternatively, a specific import syntax can to be used from a typescript file. + * This module does not exist in reality, which is why the {} is important: + * + * ```ts + * import {} from 'react/canary' + * ``` + * + * It is also possible to include it through a triple-slash reference: + * + * ```ts + * /// + * ``` + * + * Either the import or the reference only needs to appear once, anywhere in the project. + */ + +// See https://github.com/facebook/react/blob/main/packages/react/src/React.js to see how the exports are declared, + +import React = require("."); + +export {}; + +declare const UNDEFINED_VOID_ONLY: unique symbol; +type VoidOrUndefinedOnly = void | { [UNDEFINED_VOID_ONLY]: never }; + +type NativeToggleEvent = ToggleEvent; + +declare module "." { + export type Usable = PromiseLike | Context; + + export function use(usable: Usable): T; + + interface ServerContextJSONArray extends ReadonlyArray {} + export type ServerContextJSONValue = + | string + | boolean + | number + | null + | ServerContextJSONArray + | { [key: string]: ServerContextJSONValue }; + export interface ServerContext { + Provider: Provider; + } + /** + * Accepts a context object (the value returned from `React.createContext` or `React.createServerContext`) and returns the current + * context value, as given by the nearest context provider for the given context. + * + * @version 16.8.0 + * @see https://react.dev/reference/react/useContext + */ + function useContext(context: ServerContext): T; + export function createServerContext( + globalName: string, + defaultValue: T, + ): ServerContext; + + // eslint-disable-next-line @typescript-eslint/ban-types + export function cache(fn: CachedFunction): CachedFunction; + + export function unstable_useCacheRefresh(): () => void; + + interface DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS { + functions: (formData: FormData) => void; + } + + export interface TransitionStartFunction { + /** + * Marks all state updates inside the async function as transitions + * + * @see {https://react.dev/reference/react/useTransition#starttransition} + * + * @param callback + */ + (callback: () => Promise): void; + } + + /** + * Similar to `useTransition` but allows uses where hooks are not available. + * + * @param callback An _asynchronous_ function which causes state updates that can be deferred. + */ + export function startTransition(scope: () => Promise): void; + + export function useOptimistic( + passthrough: State, + ): [State, (action: State | ((pendingState: State) => State)) => void]; + export function useOptimistic( + passthrough: State, + reducer: (state: State, action: Action) => State, + ): [State, (action: Action) => void]; + + interface DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES { + cleanup: () => VoidOrUndefinedOnly; + } + + export function useActionState( + action: (state: Awaited) => State | Promise, + initialState: Awaited, + permalink?: string, + ): [state: Awaited, dispatch: () => void, isPending: boolean]; + export function useActionState( + action: (state: Awaited, payload: Payload) => State | Promise, + initialState: Awaited, + permalink?: string, + ): [state: Awaited, dispatch: (payload: Payload) => void, isPending: boolean]; + + interface DOMAttributes { + // Transition Events + onTransitionCancel?: TransitionEventHandler | undefined; + onTransitionCancelCapture?: TransitionEventHandler | undefined; + onTransitionRun?: TransitionEventHandler | undefined; + onTransitionRunCapture?: TransitionEventHandler | undefined; + onTransitionStart?: TransitionEventHandler | undefined; + onTransitionStartCapture?: TransitionEventHandler | undefined; + } + + type ToggleEventHandler = EventHandler>; + + interface HTMLAttributes { + popover?: "" | "auto" | "manual" | undefined; + popoverTargetAction?: "toggle" | "show" | "hide" | undefined; + popoverTarget?: string | undefined; + onToggle?: ToggleEventHandler | undefined; + onBeforeToggle?: ToggleEventHandler | undefined; + } + + interface ToggleEvent extends SyntheticEvent { + oldState: "closed" | "open"; + newState: "closed" | "open"; + } + + /** + * @internal Use `Awaited` instead + */ + // Helper type to enable `Awaited`. + // Must be a copy of the non-thenables of `ReactNode`. + type AwaitedReactNode = + | ReactElement + | string + | number + | Iterable + | ReactPortal + | boolean + | null + | undefined; + interface DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_REACT_NODES { + promises: Promise; + bigints: bigint; + } +} diff --git a/node_modules/@types/react/ts5.0/experimental.d.ts b/node_modules/@types/react/ts5.0/experimental.d.ts new file mode 100644 index 0000000..a14be61 --- /dev/null +++ b/node_modules/@types/react/ts5.0/experimental.d.ts @@ -0,0 +1,127 @@ +/** + * These are types for things that are present in the `experimental` builds of React but not yet + * on a stable build. + * + * Once they are promoted to stable they can just be moved to the main index file. + * + * To load the types declared here in an actual project, there are three ways. The easiest one, + * if your `tsconfig.json` already has a `"types"` array in the `"compilerOptions"` section, + * is to add `"react/experimental"` to the `"types"` array. + * + * Alternatively, a specific import syntax can to be used from a typescript file. + * This module does not exist in reality, which is why the {} is important: + * + * ```ts + * import {} from 'react/experimental' + * ``` + * + * It is also possible to include it through a triple-slash reference: + * + * ```ts + * /// + * ``` + * + * Either the import or the reference only needs to appear once, anywhere in the project. + */ + +// See https://github.com/facebook/react/blob/master/packages/react/src/React.js to see how the exports are declared, +// and https://github.com/facebook/react/blob/master/packages/shared/ReactFeatureFlags.js to verify which APIs are +// flagged experimental or not. Experimental APIs will be tagged with `__EXPERIMENTAL__`. +// +// For the inputs of types exported as simply a fiber tag, the `beginWork` function of ReactFiberBeginWork.js +// is a good place to start looking for details; it generally calls prop validation functions or delegates +// all tasks done as part of the render phase (the concurrent part of the React update cycle). +// +// Suspense-related handling can be found in ReactFiberThrow.js. + +import React = require("./canary"); + +export {}; + +declare const UNDEFINED_VOID_ONLY: unique symbol; +type VoidOrUndefinedOnly = void | { [UNDEFINED_VOID_ONLY]: never }; + +declare module "." { + export interface SuspenseProps { + /** + * The presence of this prop indicates that the content is computationally expensive to render. + * In other words, the tree is CPU bound and not I/O bound (e.g. due to fetching data). + * @see {@link https://github.com/facebook/react/pull/19936} + */ + unstable_expectedLoadTime?: number | undefined; + } + + export type SuspenseListRevealOrder = "forwards" | "backwards" | "together"; + export type SuspenseListTailMode = "collapsed" | "hidden"; + + export interface SuspenseListCommonProps { + /** + * Note that SuspenseList require more than one child; + * it is a runtime warning to provide only a single child. + * + * It does, however, allow those children to be wrapped inside a single + * level of ``. + */ + children: ReactElement | Iterable; + } + + interface DirectionalSuspenseListProps extends SuspenseListCommonProps { + /** + * Defines the order in which the `SuspenseList` children should be revealed. + */ + revealOrder: "forwards" | "backwards"; + /** + * Dictates how unloaded items in a SuspenseList is shown. + * + * - By default, `SuspenseList` will show all fallbacks in the list. + * - `collapsed` shows only the next fallback in the list. + * - `hidden` doesn’t show any unloaded items. + */ + tail?: SuspenseListTailMode | undefined; + } + + interface NonDirectionalSuspenseListProps extends SuspenseListCommonProps { + /** + * Defines the order in which the `SuspenseList` children should be revealed. + */ + revealOrder?: Exclude | undefined; + /** + * The tail property is invalid when not using the `forwards` or `backwards` reveal orders. + */ + tail?: never | undefined; + } + + export type SuspenseListProps = DirectionalSuspenseListProps | NonDirectionalSuspenseListProps; + + /** + * `SuspenseList` helps coordinate many components that can suspend by orchestrating the order + * in which these components are revealed to the user. + * + * When multiple components need to fetch data, this data may arrive in an unpredictable order. + * However, if you wrap these items in a `SuspenseList`, React will not show an item in the list + * until previous items have been displayed (this behavior is adjustable). + * + * @see https://reactjs.org/docs/concurrent-mode-reference.html#suspenselist + * @see https://reactjs.org/docs/concurrent-mode-patterns.html#suspenselist + */ + export const unstable_SuspenseList: ExoticComponent; + + // eslint-disable-next-line @typescript-eslint/ban-types + export function experimental_useEffectEvent(event: T): T; + + type Reference = object; + type TaintableUniqueValue = string | bigint | ArrayBufferView; + function experimental_taintUniqueValue( + message: string | undefined, + lifetime: Reference, + value: TaintableUniqueValue, + ): void; + function experimental_taintObjectReference(message: string | undefined, object: Reference): void; + + export interface HTMLAttributes { + /** + * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/inert + */ + inert?: boolean | undefined; + } +} diff --git a/node_modules/@types/react/ts5.0/global.d.ts b/node_modules/@types/react/ts5.0/global.d.ts new file mode 100644 index 0000000..8ae2ddd --- /dev/null +++ b/node_modules/@types/react/ts5.0/global.d.ts @@ -0,0 +1,160 @@ +/* +React projects that don't include the DOM library need these interfaces to compile. +React Native applications use React, but there is no DOM available. The JavaScript runtime +is ES6/ES2015 only. These definitions allow such projects to compile with only `--lib ES6`. + +Warning: all of these interfaces are empty. If you want type definitions for various properties +(such as HTMLInputElement.prototype.value), you need to add `--lib DOM` (via command line or tsconfig.json). +*/ + +interface Event {} +interface AnimationEvent extends Event {} +interface ClipboardEvent extends Event {} +interface CompositionEvent extends Event {} +interface DragEvent extends Event {} +interface FocusEvent extends Event {} +interface KeyboardEvent extends Event {} +interface MouseEvent extends Event {} +interface TouchEvent extends Event {} +interface PointerEvent extends Event {} +interface ToggleEvent extends Event {} +interface TransitionEvent extends Event {} +interface UIEvent extends Event {} +interface WheelEvent extends Event {} + +interface EventTarget {} +interface Document {} +interface DataTransfer {} +interface StyleMedia {} + +interface Element {} +interface DocumentFragment {} + +interface HTMLElement extends Element {} +interface HTMLAnchorElement extends HTMLElement {} +interface HTMLAreaElement extends HTMLElement {} +interface HTMLAudioElement extends HTMLElement {} +interface HTMLBaseElement extends HTMLElement {} +interface HTMLBodyElement extends HTMLElement {} +interface HTMLBRElement extends HTMLElement {} +interface HTMLButtonElement extends HTMLElement {} +interface HTMLCanvasElement extends HTMLElement {} +interface HTMLDataElement extends HTMLElement {} +interface HTMLDataListElement extends HTMLElement {} +interface HTMLDetailsElement extends HTMLElement {} +interface HTMLDialogElement extends HTMLElement {} +interface HTMLDivElement extends HTMLElement {} +interface HTMLDListElement extends HTMLElement {} +interface HTMLEmbedElement extends HTMLElement {} +interface HTMLFieldSetElement extends HTMLElement {} +interface HTMLFormElement extends HTMLElement {} +interface HTMLHeadingElement extends HTMLElement {} +interface HTMLHeadElement extends HTMLElement {} +interface HTMLHRElement extends HTMLElement {} +interface HTMLHtmlElement extends HTMLElement {} +interface HTMLIFrameElement extends HTMLElement {} +interface HTMLImageElement extends HTMLElement {} +interface HTMLInputElement extends HTMLElement {} +interface HTMLModElement extends HTMLElement {} +interface HTMLLabelElement extends HTMLElement {} +interface HTMLLegendElement extends HTMLElement {} +interface HTMLLIElement extends HTMLElement {} +interface HTMLLinkElement extends HTMLElement {} +interface HTMLMapElement extends HTMLElement {} +interface HTMLMetaElement extends HTMLElement {} +interface HTMLMeterElement extends HTMLElement {} +interface HTMLObjectElement extends HTMLElement {} +interface HTMLOListElement extends HTMLElement {} +interface HTMLOptGroupElement extends HTMLElement {} +interface HTMLOptionElement extends HTMLElement {} +interface HTMLOutputElement extends HTMLElement {} +interface HTMLParagraphElement extends HTMLElement {} +interface HTMLParamElement extends HTMLElement {} +interface HTMLPreElement extends HTMLElement {} +interface HTMLProgressElement extends HTMLElement {} +interface HTMLQuoteElement extends HTMLElement {} +interface HTMLSlotElement extends HTMLElement {} +interface HTMLScriptElement extends HTMLElement {} +interface HTMLSelectElement extends HTMLElement {} +interface HTMLSourceElement extends HTMLElement {} +interface HTMLSpanElement extends HTMLElement {} +interface HTMLStyleElement extends HTMLElement {} +interface HTMLTableElement extends HTMLElement {} +interface HTMLTableColElement extends HTMLElement {} +interface HTMLTableDataCellElement extends HTMLElement {} +interface HTMLTableHeaderCellElement extends HTMLElement {} +interface HTMLTableRowElement extends HTMLElement {} +interface HTMLTableSectionElement extends HTMLElement {} +interface HTMLTemplateElement extends HTMLElement {} +interface HTMLTextAreaElement extends HTMLElement {} +interface HTMLTimeElement extends HTMLElement {} +interface HTMLTitleElement extends HTMLElement {} +interface HTMLTrackElement extends HTMLElement {} +interface HTMLUListElement extends HTMLElement {} +interface HTMLVideoElement extends HTMLElement {} +interface HTMLWebViewElement extends HTMLElement {} + +interface SVGElement extends Element {} +interface SVGSVGElement extends SVGElement {} +interface SVGCircleElement extends SVGElement {} +interface SVGClipPathElement extends SVGElement {} +interface SVGDefsElement extends SVGElement {} +interface SVGDescElement extends SVGElement {} +interface SVGEllipseElement extends SVGElement {} +interface SVGFEBlendElement extends SVGElement {} +interface SVGFEColorMatrixElement extends SVGElement {} +interface SVGFEComponentTransferElement extends SVGElement {} +interface SVGFECompositeElement extends SVGElement {} +interface SVGFEConvolveMatrixElement extends SVGElement {} +interface SVGFEDiffuseLightingElement extends SVGElement {} +interface SVGFEDisplacementMapElement extends SVGElement {} +interface SVGFEDistantLightElement extends SVGElement {} +interface SVGFEDropShadowElement extends SVGElement {} +interface SVGFEFloodElement extends SVGElement {} +interface SVGFEFuncAElement extends SVGElement {} +interface SVGFEFuncBElement extends SVGElement {} +interface SVGFEFuncGElement extends SVGElement {} +interface SVGFEFuncRElement extends SVGElement {} +interface SVGFEGaussianBlurElement extends SVGElement {} +interface SVGFEImageElement extends SVGElement {} +interface SVGFEMergeElement extends SVGElement {} +interface SVGFEMergeNodeElement extends SVGElement {} +interface SVGFEMorphologyElement extends SVGElement {} +interface SVGFEOffsetElement extends SVGElement {} +interface SVGFEPointLightElement extends SVGElement {} +interface SVGFESpecularLightingElement extends SVGElement {} +interface SVGFESpotLightElement extends SVGElement {} +interface SVGFETileElement extends SVGElement {} +interface SVGFETurbulenceElement extends SVGElement {} +interface SVGFilterElement extends SVGElement {} +interface SVGForeignObjectElement extends SVGElement {} +interface SVGGElement extends SVGElement {} +interface SVGImageElement extends SVGElement {} +interface SVGLineElement extends SVGElement {} +interface SVGLinearGradientElement extends SVGElement {} +interface SVGMarkerElement extends SVGElement {} +interface SVGMaskElement extends SVGElement {} +interface SVGMetadataElement extends SVGElement {} +interface SVGPathElement extends SVGElement {} +interface SVGPatternElement extends SVGElement {} +interface SVGPolygonElement extends SVGElement {} +interface SVGPolylineElement extends SVGElement {} +interface SVGRadialGradientElement extends SVGElement {} +interface SVGRectElement extends SVGElement {} +interface SVGSetElement extends SVGElement {} +interface SVGStopElement extends SVGElement {} +interface SVGSwitchElement extends SVGElement {} +interface SVGSymbolElement extends SVGElement {} +interface SVGTextElement extends SVGElement {} +interface SVGTextPathElement extends SVGElement {} +interface SVGTSpanElement extends SVGElement {} +interface SVGUseElement extends SVGElement {} +interface SVGViewElement extends SVGElement {} + +interface FormData {} +interface Text {} +interface TouchList {} +interface WebGLRenderingContext {} +interface WebGL2RenderingContext {} + +interface TrustedHTML {} diff --git a/node_modules/@types/react/ts5.0/index.d.ts b/node_modules/@types/react/ts5.0/index.d.ts new file mode 100644 index 0000000..302fad1 --- /dev/null +++ b/node_modules/@types/react/ts5.0/index.d.ts @@ -0,0 +1,4524 @@ +// NOTE: Users of the `experimental` builds of React should add a reference +// to 'react/experimental' in their project. See experimental.d.ts's top comment +// for reference and documentation on how exactly to do it. + +/// + +import * as CSS from "csstype"; +import * as PropTypes from "prop-types"; + +type NativeAnimationEvent = AnimationEvent; +type NativeClipboardEvent = ClipboardEvent; +type NativeCompositionEvent = CompositionEvent; +type NativeDragEvent = DragEvent; +type NativeFocusEvent = FocusEvent; +type NativeKeyboardEvent = KeyboardEvent; +type NativeMouseEvent = MouseEvent; +type NativeTouchEvent = TouchEvent; +type NativePointerEvent = PointerEvent; +type NativeTransitionEvent = TransitionEvent; +type NativeUIEvent = UIEvent; +type NativeWheelEvent = WheelEvent; + +/** + * Used to represent DOM API's where users can either pass + * true or false as a boolean or as its equivalent strings. + */ +type Booleanish = boolean | "true" | "false"; + +/** + * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin MDN} + */ +type CrossOrigin = "anonymous" | "use-credentials" | "" | undefined; + +declare const UNDEFINED_VOID_ONLY: unique symbol; + +/** + * The function returned from an effect passed to {@link React.useEffect useEffect}, + * which can be used to clean up the effect when the component unmounts. + * + * @see {@link https://react.dev/reference/react/useEffect React Docs} + */ +type Destructor = () => void | { [UNDEFINED_VOID_ONLY]: never }; +type VoidOrUndefinedOnly = void | { [UNDEFINED_VOID_ONLY]: never }; + +// eslint-disable-next-line @definitelytyped/export-just-namespace +export = React; +export as namespace React; + +declare namespace React { + // + // React Elements + // ---------------------------------------------------------------------- + + /** + * Used to retrieve the possible components which accept a given set of props. + * + * Can be passed no type parameters to get a union of all possible components + * and tags. + * + * Is a superset of {@link ComponentType}. + * + * @template P The props to match against. If not passed, defaults to any. + * @template Tag An optional tag to match against. If not passed, attempts to match against all possible tags. + * + * @example + * + * ```tsx + * // All components and tags (img, embed etc.) + * // which accept `src` + * type SrcComponents = ElementType<{ src: any }>; + * ``` + * + * @example + * + * ```tsx + * // All components + * type AllComponents = ElementType; + * ``` + * + * @example + * + * ```tsx + * // All custom components which match `src`, and tags which + * // match `src`, narrowed down to just `audio` and `embed` + * type SrcComponents = ElementType<{ src: any }, 'audio' | 'embed'>; + * ``` + */ + type ElementType

      = + | { [K in Tag]: P extends JSX.IntrinsicElements[K] ? K : never }[Tag] + | ComponentType

      ; + + /** + * Represents any user-defined component, either as a function or a class. + * + * Similar to {@link JSXElementConstructor}, but with extra properties like + * {@link FunctionComponent.defaultProps defaultProps } and + * {@link ComponentClass.contextTypes contextTypes}. + * + * @template P The props the component accepts. + * + * @see {@link ComponentClass} + * @see {@link FunctionComponent} + */ + type ComponentType

      = ComponentClass

      | FunctionComponent

      ; + + /** + * Represents any user-defined component, either as a function or a class. + * + * Similar to {@link ComponentType}, but without extra properties like + * {@link FunctionComponent.defaultProps defaultProps } and + * {@link ComponentClass.contextTypes contextTypes}. + * + * @template P The props the component accepts. + */ + type JSXElementConstructor

      = + | (( + props: P, + /** + * @deprecated + * + * @see {@link https://legacy.reactjs.org/docs/legacy-context.html#referencing-context-in-stateless-function-components React Docs} + */ + deprecatedLegacyContext?: any, + ) => ReactElement | null) + | (new( + props: P, + /** + * @deprecated + * + * @see {@link https://legacy.reactjs.org/docs/legacy-context.html#referencing-context-in-lifecycle-methods React Docs} + */ + deprecatedLegacyContext?: any, + ) => Component); + + /** + * A readonly ref container where {@link current} cannot be mutated. + * + * Created by {@link createRef}, or {@link useRef} when passed `null`. + * + * @template T The type of the ref's value. + * + * @example + * + * ```tsx + * const ref = createRef(); + * + * ref.current = document.createElement('div'); // Error + * ``` + */ + interface RefObject { + /** + * The current value of the ref. + */ + readonly current: T | null; + } + + interface DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES { + } + /** + * A callback fired whenever the ref's value changes. + * + * @template T The type of the ref's value. + * + * @see {@link https://react.dev/reference/react-dom/components/common#ref-callback React Docs} + * + * @example + * + * ```tsx + *

      console.log(node)} /> + * ``` + */ + type RefCallback = { + bivarianceHack( + instance: T | null, + ): + | void + | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[ + keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES + ]; + }["bivarianceHack"]; + + /** + * A union type of all possible shapes for React refs. + * + * @see {@link RefCallback} + * @see {@link RefObject} + */ + + type Ref = RefCallback | RefObject | null; + /** + * A legacy implementation of refs where you can pass a string to a ref prop. + * + * @see {@link https://react.dev/reference/react/Component#refs React Docs} + * + * @example + * + * ```tsx + *
      + * ``` + */ + // TODO: Remove the string ref special case from `PropsWithRef` once we remove LegacyRef + type LegacyRef = string | Ref; + + /** + * Retrieves the type of the 'ref' prop for a given component type or tag name. + * + * @template C The component type. + * + * @example + * + * ```tsx + * type MyComponentRef = React.ElementRef; + * ``` + * + * @example + * + * ```tsx + * type DivRef = React.ElementRef<'div'>; + * ``` + */ + type ElementRef< + C extends + | ForwardRefExoticComponent + | { new(props: any): Component } + | ((props: any, deprecatedLegacyContext?: any) => ReactElement | null) + | keyof JSX.IntrinsicElements, + > = + // need to check first if `ref` is a valid prop for ts@3.0 + // otherwise it will infer `{}` instead of `never` + "ref" extends keyof ComponentPropsWithRef + ? NonNullable["ref"]> extends RefAttributes< + infer Instance + >["ref"] ? Instance + : never + : never; + + type ComponentState = any; + + /** + * A value which uniquely identifies a node among items in an array. + * + * @see {@link https://react.dev/learn/rendering-lists#keeping-list-items-in-order-with-key React Docs} + */ + type Key = string | number | bigint; + + /** + * @internal The props any component can receive. + * You don't have to add this type. All components automatically accept these props. + * ```tsx + * const Component = () =>
      ; + * + * ``` + * + * WARNING: The implementation of a component will never have access to these attributes. + * The following example would be incorrect usage because {@link Component} would never have access to `key`: + * ```tsx + * const Component = (props: React.Attributes) => props.key; + * ``` + */ + interface Attributes { + key?: Key | null | undefined; + } + /** + * The props any component accepting refs can receive. + * Class components, built-in browser components (e.g. `div`) and forwardRef components can receive refs and automatically accept these props. + * ```tsx + * const Component = forwardRef(() =>
      ); + * console.log(current)} /> + * ``` + * + * You only need this type if you manually author the types of props that need to be compatible with legacy refs. + * ```tsx + * interface Props extends React.RefAttributes {} + * declare const Component: React.FunctionComponent; + * ``` + * + * Otherwise it's simpler to directly use {@link Ref} since you can safely use the + * props type to describe to props that a consumer can pass to the component + * as well as describing the props the implementation of a component "sees". + * {@link RefAttributes} is generally not safe to describe both consumer and seen props. + * + * ```tsx + * interface Props extends { + * ref?: React.Ref | undefined; + * } + * declare const Component: React.FunctionComponent; + * ``` + * + * WARNING: The implementation of a component will not have access to the same type in versions of React supporting string refs. + * The following example would be incorrect usage because {@link Component} would never have access to a `ref` with type `string` + * ```tsx + * const Component = (props: React.RefAttributes) => props.ref; + * ``` + */ + interface RefAttributes extends Attributes { + /** + * Allows getting a ref to the component instance. + * Once the component unmounts, React will set `ref.current` to `null` + * (or call the ref with `null` if you passed a callback ref). + * + * @see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs} + */ + ref?: LegacyRef | undefined; + } + + /** + * Represents the built-in attributes available to class components. + */ + interface ClassAttributes extends RefAttributes { + } + + /** + * Represents a JSX element. + * + * Where {@link ReactNode} represents everything that can be rendered, `ReactElement` + * only represents JSX. + * + * @template P The type of the props object + * @template T The type of the component or tag + * + * @example + * + * ```tsx + * const element: ReactElement =
      ; + * ``` + */ + interface ReactElement< + P = any, + T extends string | JSXElementConstructor = string | JSXElementConstructor, + > { + type: T; + props: P; + key: string | null; + } + + /** + * @deprecated + */ + interface ReactComponentElement< + T extends keyof JSX.IntrinsicElements | JSXElementConstructor, + P = Pick, Exclude, "key" | "ref">>, + > extends ReactElement> {} + + interface FunctionComponentElement

      extends ReactElement> { + ref?: ("ref" extends keyof P ? P extends { ref?: infer R | undefined } ? R : never : never) | undefined; + } + + type CElement> = ComponentElement; + interface ComponentElement> extends ReactElement> { + ref?: LegacyRef | undefined; + } + + /** + * @deprecated Use {@link ComponentElement} instead. + */ + type ClassicElement

      = CElement>; + + // string fallback for custom web-components + interface DOMElement

      | SVGAttributes, T extends Element> + extends ReactElement + { + ref: LegacyRef; + } + + // ReactHTML for ReactHTMLElement + interface ReactHTMLElement extends DetailedReactHTMLElement, T> {} + + interface DetailedReactHTMLElement

      , T extends HTMLElement> extends DOMElement { + type: keyof ReactHTML; + } + + // ReactSVG for ReactSVGElement + interface ReactSVGElement extends DOMElement, SVGElement> { + type: keyof ReactSVG; + } + + interface ReactPortal extends ReactElement { + children: ReactNode; + } + + // + // Factories + // ---------------------------------------------------------------------- + + type Factory

      = (props?: Attributes & P, ...children: ReactNode[]) => ReactElement

      ; + + /** + * @deprecated Please use `FunctionComponentFactory` + */ + type SFCFactory

      = FunctionComponentFactory

      ; + + type FunctionComponentFactory

      = ( + props?: Attributes & P, + ...children: ReactNode[] + ) => FunctionComponentElement

      ; + + type ComponentFactory> = ( + props?: ClassAttributes & P, + ...children: ReactNode[] + ) => CElement; + + type CFactory> = ComponentFactory; + type ClassicFactory

      = CFactory>; + + type DOMFactory

      , T extends Element> = ( + props?: ClassAttributes & P | null, + ...children: ReactNode[] + ) => DOMElement; + + interface HTMLFactory extends DetailedHTMLFactory, T> {} + + interface DetailedHTMLFactory

      , T extends HTMLElement> extends DOMFactory { + (props?: ClassAttributes & P | null, ...children: ReactNode[]): DetailedReactHTMLElement; + } + + interface SVGFactory extends DOMFactory, SVGElement> { + ( + props?: ClassAttributes & SVGAttributes | null, + ...children: ReactNode[] + ): ReactSVGElement; + } + + /** + * @deprecated - This type is not relevant when using React. Inline the type instead to make the intent clear. + */ + type ReactText = string | number; + /** + * @deprecated - This type is not relevant when using React. Inline the type instead to make the intent clear. + */ + type ReactChild = ReactElement | string | number; + + /** + * @deprecated Use either `ReactNode[]` if you need an array or `Iterable` if its passed to a host component. + */ + interface ReactNodeArray extends ReadonlyArray {} + /** + * WARNING: Not related to `React.Fragment`. + * @deprecated This type is not relevant when using React. Inline the type instead to make the intent clear. + */ + type ReactFragment = Iterable; + + /** + * For internal usage only. + * Different release channels declare additional types of ReactNode this particular release channel accepts. + * App or library types should never augment this interface. + */ + interface DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_REACT_NODES {} + + /** + * Represents all of the things React can render. + * + * Where {@link ReactElement} only represents JSX, `ReactNode` represents everything that can be rendered. + * + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/react-types/reactnode/ React TypeScript Cheatsheet} + * + * @example + * + * ```tsx + * // Typing children + * type Props = { children: ReactNode } + * + * const Component = ({ children }: Props) =>

      {children}
      + * + * hello + * ``` + * + * @example + * + * ```tsx + * // Typing a custom element + * type Props = { customElement: ReactNode } + * + * const Component = ({ customElement }: Props) =>
      {customElement}
      + * + * hello
      } /> + * ``` + */ + // non-thenables need to be kept in sync with AwaitedReactNode + type ReactNode = + | ReactElement + | string + | number + | Iterable + | ReactPortal + | boolean + | null + | undefined + | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_REACT_NODES[ + keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_REACT_NODES + ]; + + // + // Top Level API + // ---------------------------------------------------------------------- + + // DOM Elements + /** @deprecated */ + function createFactory( + type: keyof ReactHTML, + ): HTMLFactory; + /** @deprecated */ + function createFactory( + type: keyof ReactSVG, + ): SVGFactory; + /** @deprecated */ + function createFactory

      , T extends Element>( + type: string, + ): DOMFactory; + + // Custom components + /** @deprecated */ + function createFactory

      (type: FunctionComponent

      ): FunctionComponentFactory

      ; + /** @deprecated */ + function createFactory, C extends ComponentClass

      >( + type: ClassType, + ): CFactory; + /** @deprecated */ + function createFactory

      (type: ComponentClass

      ): Factory

      ; + + // DOM Elements + // TODO: generalize this to everything in `keyof ReactHTML`, not just "input" + function createElement( + type: "input", + props?: InputHTMLAttributes & ClassAttributes | null, + ...children: ReactNode[] + ): DetailedReactHTMLElement, HTMLInputElement>; + function createElement

      , T extends HTMLElement>( + type: keyof ReactHTML, + props?: ClassAttributes & P | null, + ...children: ReactNode[] + ): DetailedReactHTMLElement; + function createElement

      , T extends SVGElement>( + type: keyof ReactSVG, + props?: ClassAttributes & P | null, + ...children: ReactNode[] + ): ReactSVGElement; + function createElement

      , T extends Element>( + type: string, + props?: ClassAttributes & P | null, + ...children: ReactNode[] + ): DOMElement; + + // Custom components + + function createElement

      ( + type: FunctionComponent

      , + props?: Attributes & P | null, + ...children: ReactNode[] + ): FunctionComponentElement

      ; + function createElement

      , C extends ComponentClass

      >( + type: ClassType, + props?: ClassAttributes & P | null, + ...children: ReactNode[] + ): CElement; + function createElement

      ( + type: FunctionComponent

      | ComponentClass

      | string, + props?: Attributes & P | null, + ...children: ReactNode[] + ): ReactElement

      ; + + // DOM Elements + // ReactHTMLElement + function cloneElement

      , T extends HTMLElement>( + element: DetailedReactHTMLElement, + props?: P, + ...children: ReactNode[] + ): DetailedReactHTMLElement; + // ReactHTMLElement, less specific + function cloneElement

      , T extends HTMLElement>( + element: ReactHTMLElement, + props?: P, + ...children: ReactNode[] + ): ReactHTMLElement; + // SVGElement + function cloneElement

      , T extends SVGElement>( + element: ReactSVGElement, + props?: P, + ...children: ReactNode[] + ): ReactSVGElement; + // DOM Element (has to be the last, because type checking stops at first overload that fits) + function cloneElement

      , T extends Element>( + element: DOMElement, + props?: DOMAttributes & P, + ...children: ReactNode[] + ): DOMElement; + + // Custom components + function cloneElement

      ( + element: FunctionComponentElement

      , + props?: Partial

      & Attributes, + ...children: ReactNode[] + ): FunctionComponentElement

      ; + function cloneElement>( + element: CElement, + props?: Partial

      & ClassAttributes, + ...children: ReactNode[] + ): CElement; + function cloneElement

      ( + element: ReactElement

      , + props?: Partial

      & Attributes, + ...children: ReactNode[] + ): ReactElement

      ; + + /** + * Describes the props accepted by a Context {@link Provider}. + * + * @template T The type of the value the context provides. + */ + interface ProviderProps { + value: T; + children?: ReactNode | undefined; + } + + /** + * Describes the props accepted by a Context {@link Consumer}. + * + * @template T The type of the value the context provides. + */ + interface ConsumerProps { + children: (value: T) => ReactNode; + } + + /** + * An object masquerading as a component. These are created by functions + * like {@link forwardRef}, {@link memo}, and {@link createContext}. + * + * In order to make TypeScript work, we pretend that they are normal + * components. + * + * But they are, in fact, not callable - instead, they are objects which + * are treated specially by the renderer. + * + * @template P The props the component accepts. + */ + interface ExoticComponent

      { + (props: P): ReactElement | null; + readonly $$typeof: symbol; + } + + /** + * An {@link ExoticComponent} with a `displayName` property applied to it. + * + * @template P The props the component accepts. + */ + interface NamedExoticComponent

      extends ExoticComponent

      { + /** + * Used in debugging messages. You might want to set it + * explicitly if you want to display a different name for + * debugging purposes. + * + * @see {@link https://legacy.reactjs.org/docs/react-component.html#displayname Legacy React Docs} + */ + displayName?: string | undefined; + } + + /** + * An {@link ExoticComponent} with a `propTypes` property applied to it. + * + * @template P The props the component accepts. + */ + interface ProviderExoticComponent

      extends ExoticComponent

      { + propTypes?: WeakValidationMap

      | undefined; + } + + /** + * Used to retrieve the type of a context object from a {@link Context}. + * + * @template C The context object. + * + * @example + * + * ```tsx + * import { createContext } from 'react'; + * + * const MyContext = createContext({ foo: 'bar' }); + * + * type ContextType = ContextType; + * // ContextType = { foo: string } + * ``` + */ + type ContextType> = C extends Context ? T : never; + + /** + * Wraps your components to specify the value of this context for all components inside. + * + * @see {@link https://react.dev/reference/react/createContext#provider React Docs} + * + * @example + * + * ```tsx + * import { createContext } from 'react'; + * + * const ThemeContext = createContext('light'); + * + * function App() { + * return ( + * + * + * + * ); + * } + * ``` + */ + type Provider = ProviderExoticComponent>; + + /** + * The old way to read context, before {@link useContext} existed. + * + * @see {@link https://react.dev/reference/react/createContext#consumer React Docs} + * + * @example + * + * ```tsx + * import { UserContext } from './user-context'; + * + * function Avatar() { + * return ( + * + * {user => {user.name}} + * + * ); + * } + * ``` + */ + type Consumer = ExoticComponent>; + + /** + * Context lets components pass information deep down without explicitly + * passing props. + * + * Created from {@link createContext} + * + * @see {@link https://react.dev/learn/passing-data-deeply-with-context React Docs} + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/context/ React TypeScript Cheatsheet} + * + * @example + * + * ```tsx + * import { createContext } from 'react'; + * + * const ThemeContext = createContext('light'); + * ``` + */ + interface Context { + Provider: Provider; + Consumer: Consumer; + /** + * Used in debugging messages. You might want to set it + * explicitly if you want to display a different name for + * debugging purposes. + * + * @see {@link https://legacy.reactjs.org/docs/react-component.html#displayname Legacy React Docs} + */ + displayName?: string | undefined; + } + + /** + * Lets you create a {@link Context} that components can provide or read. + * + * @param defaultValue The value you want the context to have when there is no matching + * {@link Provider} in the tree above the component reading the context. This is meant + * as a "last resort" fallback. + * + * @see {@link https://react.dev/reference/react/createContext#reference React Docs} + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/context/ React TypeScript Cheatsheet} + * + * @example + * + * ```tsx + * import { createContext } from 'react'; + * + * const ThemeContext = createContext('light'); + * ``` + */ + function createContext( + // If you thought this should be optional, see + // https://github.com/DefinitelyTyped/DefinitelyTyped/pull/24509#issuecomment-382213106 + defaultValue: T, + ): Context; + + function isValidElement

      (object: {} | null | undefined): object is ReactElement

      ; + + /** + * Maintainer's note: Sync with {@link ReactChildren} until {@link ReactChildren} is removed. + */ + const Children: { + map( + children: C | readonly C[], + fn: (child: C, index: number) => T, + ): C extends null | undefined ? C : Array>; + forEach(children: C | readonly C[], fn: (child: C, index: number) => void): void; + count(children: any): number; + only(children: C): C extends any[] ? never : C; + toArray(children: ReactNode | ReactNode[]): Array>; + }; + /** + * Lets you group elements without a wrapper node. + * + * @see {@link https://react.dev/reference/react/Fragment React Docs} + * + * @example + * + * ```tsx + * import { Fragment } from 'react'; + * + * + * Hello + * World + * + * ``` + * + * @example + * + * ```tsx + * // Using the <> shorthand syntax: + * + * <> + * Hello + * World + * + * ``` + */ + const Fragment: ExoticComponent<{ children?: ReactNode | undefined }>; + + /** + * Lets you find common bugs in your components early during development. + * + * @see {@link https://react.dev/reference/react/StrictMode React Docs} + * + * @example + * + * ```tsx + * import { StrictMode } from 'react'; + * + * + * + * + * ``` + */ + const StrictMode: ExoticComponent<{ children?: ReactNode | undefined }>; + + /** + * The props accepted by {@link Suspense}. + * + * @see {@link https://react.dev/reference/react/Suspense React Docs} + */ + interface SuspenseProps { + children?: ReactNode | undefined; + + /** A fallback react tree to show when a Suspense child (like React.lazy) suspends */ + fallback?: ReactNode; + } + + /** + * Lets you display a fallback until its children have finished loading. + * + * @see {@link https://react.dev/reference/react/Suspense React Docs} + * + * @example + * + * ```tsx + * import { Suspense } from 'react'; + * + * }> + * + * + * ``` + */ + const Suspense: ExoticComponent; + const version: string; + + /** + * The callback passed to {@link ProfilerProps.onRender}. + * + * @see {@link https://react.dev/reference/react/Profiler#onrender-callback React Docs} + */ + type ProfilerOnRenderCallback = ( + /** + * The string id prop of the {@link Profiler} tree that has just committed. This lets + * you identify which part of the tree was committed if you are using multiple + * profilers. + * + * @see {@link https://react.dev/reference/react/Profiler#onrender-callback React Docs} + */ + id: string, + /** + * This lets you know whether the tree has just been mounted for the first time + * or re-rendered due to a change in props, state, or hooks. + * + * @see {@link https://react.dev/reference/react/Profiler#onrender-callback React Docs} + */ + phase: "mount" | "update" | "nested-update", + /** + * The number of milliseconds spent rendering the {@link Profiler} and its descendants + * for the current update. This indicates how well the subtree makes use of + * memoization (e.g. {@link memo} and {@link useMemo}). Ideally this value should decrease + * significantly after the initial mount as many of the descendants will only need to + * re-render if their specific props change. + * + * @see {@link https://react.dev/reference/react/Profiler#onrender-callback React Docs} + */ + actualDuration: number, + /** + * The number of milliseconds estimating how much time it would take to re-render the entire + * {@link Profiler} subtree without any optimizations. It is calculated by summing up the most + * recent render durations of each component in the tree. This value estimates a worst-case + * cost of rendering (e.g. the initial mount or a tree with no memoization). Compare + * {@link actualDuration} against it to see if memoization is working. + * + * @see {@link https://react.dev/reference/react/Profiler#onrender-callback React Docs} + */ + baseDuration: number, + /** + * A numeric timestamp for when React began rendering the current update. + * + * @see {@link https://react.dev/reference/react/Profiler#onrender-callback React Docs} + */ + startTime: number, + /** + * A numeric timestamp for when React committed the current update. This value is shared + * between all profilers in a commit, enabling them to be grouped if desirable. + * + * @see {@link https://react.dev/reference/react/Profiler#onrender-callback React Docs} + */ + commitTime: number, + ) => void; + + /** + * The props accepted by {@link Profiler}. + * + * @see {@link https://react.dev/reference/react/Profiler React Docs} + */ + interface ProfilerProps { + children?: ReactNode | undefined; + id: string; + onRender: ProfilerOnRenderCallback; + } + + /** + * Lets you measure rendering performance of a React tree programmatically. + * + * @see {@link https://react.dev/reference/react/Profiler#onrender-callback React Docs} + * + * @example + * + * ```tsx + * + * + * + * ``` + */ + const Profiler: ExoticComponent; + + // + // Component API + // ---------------------------------------------------------------------- + + type ReactInstance = Component | Element; + + // Base component for plain JS classes + interface Component

      extends ComponentLifecycle {} + class Component { + /** + * If set, `this.context` will be set at runtime to the current value of the given Context. + * + * @example + * + * ```ts + * type MyContext = number + * const Ctx = React.createContext(0) + * + * class Foo extends React.Component { + * static contextType = Ctx + * context!: React.ContextType + * render () { + * return <>My context's value: {this.context}; + * } + * } + * ``` + * + * @see {@link https://react.dev/reference/react/Component#static-contexttype} + */ + static contextType?: Context | undefined; + + /** + * If using the new style context, re-declare this in your class to be the + * `React.ContextType` of your `static contextType`. + * Should be used with type annotation or static contextType. + * + * @example + * ```ts + * static contextType = MyContext + * // For TS pre-3.7: + * context!: React.ContextType + * // For TS 3.7 and above: + * declare context: React.ContextType + * ``` + * + * @see {@link https://react.dev/reference/react/Component#context React Docs} + */ + context: unknown; + + constructor(props: P); + /** + * @deprecated + * @see {@link https://legacy.reactjs.org/docs/legacy-context.html React Docs} + */ + constructor(props: P, context: any); + + // We MUST keep setState() as a unified signature because it allows proper checking of the method return type. + // See: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/18365#issuecomment-351013257 + // Also, the ` | S` allows intellisense to not be dumbisense + setState( + state: ((prevState: Readonly, props: Readonly

      ) => Pick | S | null) | (Pick | S | null), + callback?: () => void, + ): void; + + forceUpdate(callback?: () => void): void; + render(): ReactNode; + + readonly props: Readonly

      ; + state: Readonly; + /** + * @deprecated + * + * @see {@link https://legacy.reactjs.org/docs/refs-and-the-dom.html#legacy-api-string-refs Legacy React Docs} + */ + refs: { + [key: string]: ReactInstance; + }; + } + + class PureComponent

      extends Component {} + + /** + * @deprecated Use `ClassicComponent` from `create-react-class` + * + * @see {@link https://legacy.reactjs.org/docs/react-without-es6.html Legacy React Docs} + * @see {@link https://www.npmjs.com/package/create-react-class `create-react-class` on npm} + */ + interface ClassicComponent

      extends Component { + replaceState(nextState: S, callback?: () => void): void; + isMounted(): boolean; + getInitialState?(): S; + } + + interface ChildContextProvider { + getChildContext(): CC; + } + + // + // Class Interfaces + // ---------------------------------------------------------------------- + + /** + * Represents the type of a function component. Can optionally + * receive a type argument that represents the props the component + * receives. + * + * @template P The props the component accepts. + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/function_components React TypeScript Cheatsheet} + * @alias for {@link FunctionComponent} + * + * @example + * + * ```tsx + * // With props: + * type Props = { name: string } + * + * const MyComponent: FC = (props) => { + * return

      {props.name}
      + * } + * ``` + * + * @example + * + * ```tsx + * // Without props: + * const MyComponentWithoutProps: FC = () => { + * return
      MyComponentWithoutProps
      + * } + * ``` + */ + type FC

      = FunctionComponent

      ; + + /** + * Represents the type of a function component. Can optionally + * receive a type argument that represents the props the component + * accepts. + * + * @template P The props the component accepts. + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/function_components React TypeScript Cheatsheet} + * + * @example + * + * ```tsx + * // With props: + * type Props = { name: string } + * + * const MyComponent: FunctionComponent = (props) => { + * return

      {props.name}
      + * } + * ``` + * + * @example + * + * ```tsx + * // Without props: + * const MyComponentWithoutProps: FunctionComponent = () => { + * return
      MyComponentWithoutProps
      + * } + * ``` + */ + interface FunctionComponent

      { + ( + props: P, + /** + * @deprecated + * + * @see {@link https://legacy.reactjs.org/docs/legacy-context.html#referencing-context-in-lifecycle-methods React Docs} + */ + deprecatedLegacyContext?: any, + ): ReactElement | null; + /** + * Used to declare the types of the props accepted by the + * component. These types will be checked during rendering + * and in development only. + * + * We recommend using TypeScript instead of checking prop + * types at runtime. + * + * @see {@link https://react.dev/reference/react/Component#static-proptypes React Docs} + */ + propTypes?: WeakValidationMap

      | undefined; + /** + * @deprecated + * + * Lets you specify which legacy context is consumed by + * this component. + * + * @see {@link https://legacy.reactjs.org/docs/legacy-context.html Legacy React Docs} + */ + contextTypes?: ValidationMap | undefined; + /** + * Used to define default values for the props accepted by + * the component. + * + * @see {@link https://react.dev/reference/react/Component#static-defaultprops React Docs} + * + * @example + * + * ```tsx + * type Props = { name?: string } + * + * const MyComponent: FC = (props) => { + * return

      {props.name}
      + * } + * + * MyComponent.defaultProps = { + * name: 'John Doe' + * } + * ``` + * + * @deprecated Use {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#default_value|default values for destructuring assignments instead}. + */ + defaultProps?: Partial

      | undefined; + /** + * Used in debugging messages. You might want to set it + * explicitly if you want to display a different name for + * debugging purposes. + * + * @see {@link https://legacy.reactjs.org/docs/react-component.html#displayname Legacy React Docs} + * + * @example + * + * ```tsx + * + * const MyComponent: FC = () => { + * return

      Hello!
      + * } + * + * MyComponent.displayName = 'MyAwesomeComponent' + * ``` + */ + displayName?: string | undefined; + } + + /** + * @deprecated - Equivalent to {@link React.FunctionComponent}. + * + * @see {@link React.FunctionComponent} + * @alias {@link VoidFunctionComponent} + */ + type VFC

      = VoidFunctionComponent

      ; + + /** + * @deprecated - Equivalent to {@link React.FunctionComponent}. + * + * @see {@link React.FunctionComponent} + */ + interface VoidFunctionComponent

      { + ( + props: P, + /** + * @deprecated + * + * @see {@link https://legacy.reactjs.org/docs/legacy-context.html#referencing-context-in-lifecycle-methods React Docs} + */ + deprecatedLegacyContext?: any, + ): ReactElement | null; + propTypes?: WeakValidationMap

      | undefined; + contextTypes?: ValidationMap | undefined; + /** + * @deprecated Use {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#default_value|default values for destructuring assignments instead}. + */ + defaultProps?: Partial

      | undefined; + displayName?: string | undefined; + } + + /** + * The type of the ref received by a {@link ForwardRefRenderFunction}. + * + * @see {@link ForwardRefRenderFunction} + */ + type ForwardedRef = ((instance: T | null) => void) | MutableRefObject | null; + + /** + * The type of the function passed to {@link forwardRef}. This is considered different + * to a normal {@link FunctionComponent} because it receives an additional argument, + * + * @param props Props passed to the component, if any. + * @param ref A ref forwarded to the component of type {@link ForwardedRef}. + * + * @template T The type of the forwarded ref. + * @template P The type of the props the component accepts. + * + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/forward_and_create_ref/ React TypeScript Cheatsheet} + * @see {@link forwardRef} + */ + interface ForwardRefRenderFunction { + (props: P, ref: ForwardedRef): ReactElement | null; + /** + * Used in debugging messages. You might want to set it + * explicitly if you want to display a different name for + * debugging purposes. + * + * Will show `ForwardRef(${Component.displayName || Component.name})` + * in devtools by default, but can be given its own specific name. + * + * @see {@link https://legacy.reactjs.org/docs/react-component.html#displayname Legacy React Docs} + */ + displayName?: string | undefined; + /** + * defaultProps are not supported on render functions passed to forwardRef. + * + * @see {@link https://github.com/microsoft/TypeScript/issues/36826 linked GitHub issue} for context + * @see {@link https://react.dev/reference/react/Component#static-defaultprops React Docs} + */ + defaultProps?: never | undefined; + /** + * propTypes are not supported on render functions passed to forwardRef. + * + * @see {@link https://github.com/microsoft/TypeScript/issues/36826 linked GitHub issue} for context + * @see {@link https://react.dev/reference/react/Component#static-proptypes React Docs} + */ + propTypes?: never | undefined; + } + + /** + * Represents a component class in React. + * + * @template P The props the component accepts. + * @template S The internal state of the component. + */ + interface ComponentClass

      extends StaticLifecycle { + new( + props: P, + /** + * @deprecated + * + * @see {@link https://legacy.reactjs.org/docs/legacy-context.html#referencing-context-in-lifecycle-methods React Docs} + */ + deprecatedLegacyContext?: any, + ): Component; + /** + * Used to declare the types of the props accepted by the + * component. These types will be checked during rendering + * and in development only. + * + * We recommend using TypeScript instead of checking prop + * types at runtime. + * + * @see {@link https://react.dev/reference/react/Component#static-proptypes React Docs} + */ + propTypes?: WeakValidationMap

      | undefined; + contextType?: Context | undefined; + /** + * @deprecated use {@link ComponentClass.contextType} instead + * + * Lets you specify which legacy context is consumed by + * this component. + * + * @see {@link https://legacy.reactjs.org/docs/legacy-context.html Legacy React Docs} + */ + contextTypes?: ValidationMap | undefined; + /** + * @deprecated + * + * @see {@link https://legacy.reactjs.org/docs/legacy-context.html#how-to-use-context Legacy React Docs} + */ + childContextTypes?: ValidationMap | undefined; + /** + * Used to define default values for the props accepted by + * the component. + * + * @see {@link https://react.dev/reference/react/Component#static-defaultprops React Docs} + */ + defaultProps?: Partial

      | undefined; + /** + * Used in debugging messages. You might want to set it + * explicitly if you want to display a different name for + * debugging purposes. + * + * @see {@link https://legacy.reactjs.org/docs/react-component.html#displayname Legacy React Docs} + */ + displayName?: string | undefined; + } + + /** + * @deprecated Use `ClassicComponentClass` from `create-react-class` + * + * @see {@link https://legacy.reactjs.org/docs/react-without-es6.html Legacy React Docs} + * @see {@link https://www.npmjs.com/package/create-react-class `create-react-class` on npm} + */ + interface ClassicComponentClass

      extends ComponentClass

      { + new(props: P, deprecatedLegacyContext?: any): ClassicComponent; + getDefaultProps?(): P; + } + + /** + * Used in {@link createElement} and {@link createFactory} to represent + * a class. + * + * An intersection type is used to infer multiple type parameters from + * a single argument, which is useful for many top-level API defs. + * See {@link https://github.com/Microsoft/TypeScript/issues/7234 this GitHub issue} + * for more info. + */ + type ClassType, C extends ComponentClass

      > = + & C + & (new(props: P, deprecatedLegacyContext?: any) => T); + + // + // Component Specs and Lifecycle + // ---------------------------------------------------------------------- + + // This should actually be something like `Lifecycle | DeprecatedLifecycle`, + // as React will _not_ call the deprecated lifecycle methods if any of the new lifecycle + // methods are present. + interface ComponentLifecycle extends NewLifecycle, DeprecatedLifecycle { + /** + * Called immediately after a component is mounted. Setting state here will trigger re-rendering. + */ + componentDidMount?(): void; + /** + * Called to determine whether the change in props and state should trigger a re-render. + * + * `Component` always returns true. + * `PureComponent` implements a shallow comparison on props and state and returns true if any + * props or states have changed. + * + * If false is returned, {@link Component.render}, `componentWillUpdate` + * and `componentDidUpdate` will not be called. + */ + shouldComponentUpdate?(nextProps: Readonly

      , nextState: Readonly, nextContext: any): boolean; + /** + * Called immediately before a component is destroyed. Perform any necessary cleanup in this method, such as + * cancelled network requests, or cleaning up any DOM elements created in `componentDidMount`. + */ + componentWillUnmount?(): void; + /** + * Catches exceptions generated in descendant components. Unhandled exceptions will cause + * the entire component tree to unmount. + */ + componentDidCatch?(error: Error, errorInfo: ErrorInfo): void; + } + + // Unfortunately, we have no way of declaring that the component constructor must implement this + interface StaticLifecycle { + getDerivedStateFromProps?: GetDerivedStateFromProps | undefined; + getDerivedStateFromError?: GetDerivedStateFromError | undefined; + } + + type GetDerivedStateFromProps = + /** + * Returns an update to a component's state based on its new props and old state. + * + * Note: its presence prevents any of the deprecated lifecycle methods from being invoked + */ + (nextProps: Readonly

      , prevState: S) => Partial | null; + + type GetDerivedStateFromError = + /** + * This lifecycle is invoked after an error has been thrown by a descendant component. + * It receives the error that was thrown as a parameter and should return a value to update state. + * + * Note: its presence prevents any of the deprecated lifecycle methods from being invoked + */ + (error: any) => Partial | null; + + // This should be "infer SS" but can't use it yet + interface NewLifecycle { + /** + * Runs before React applies the result of {@link Component.render render} to the document, and + * returns an object to be given to {@link componentDidUpdate}. Useful for saving + * things such as scroll position before {@link Component.render render} causes changes to it. + * + * Note: the presence of this method prevents any of the deprecated + * lifecycle events from running. + */ + getSnapshotBeforeUpdate?(prevProps: Readonly

      , prevState: Readonly): SS | null; + /** + * Called immediately after updating occurs. Not called for the initial render. + * + * The snapshot is only present if {@link getSnapshotBeforeUpdate} is present and returns non-null. + */ + componentDidUpdate?(prevProps: Readonly

      , prevState: Readonly, snapshot?: SS): void; + } + + interface DeprecatedLifecycle { + /** + * Called immediately before mounting occurs, and before {@link Component.render}. + * Avoid introducing any side-effects or subscriptions in this method. + * + * Note: the presence of {@link NewLifecycle.getSnapshotBeforeUpdate getSnapshotBeforeUpdate} + * or {@link StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps} prevents + * this from being invoked. + * + * @deprecated 16.3, use {@link ComponentLifecycle.componentDidMount componentDidMount} or the constructor instead; will stop working in React 17 + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#initializing-state} + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path} + */ + componentWillMount?(): void; + /** + * Called immediately before mounting occurs, and before {@link Component.render}. + * Avoid introducing any side-effects or subscriptions in this method. + * + * This method will not stop working in React 17. + * + * Note: the presence of {@link NewLifecycle.getSnapshotBeforeUpdate getSnapshotBeforeUpdate} + * or {@link StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps} prevents + * this from being invoked. + * + * @deprecated 16.3, use {@link ComponentLifecycle.componentDidMount componentDidMount} or the constructor instead + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#initializing-state} + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path} + */ + UNSAFE_componentWillMount?(): void; + /** + * Called when the component may be receiving new props. + * React may call this even if props have not changed, so be sure to compare new and existing + * props if you only want to handle changes. + * + * Calling {@link Component.setState} generally does not trigger this method. + * + * Note: the presence of {@link NewLifecycle.getSnapshotBeforeUpdate getSnapshotBeforeUpdate} + * or {@link StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps} prevents + * this from being invoked. + * + * @deprecated 16.3, use static {@link StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps} instead; will stop working in React 17 + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#updating-state-based-on-props} + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path} + */ + componentWillReceiveProps?(nextProps: Readonly

      , nextContext: any): void; + /** + * Called when the component may be receiving new props. + * React may call this even if props have not changed, so be sure to compare new and existing + * props if you only want to handle changes. + * + * Calling {@link Component.setState} generally does not trigger this method. + * + * This method will not stop working in React 17. + * + * Note: the presence of {@link NewLifecycle.getSnapshotBeforeUpdate getSnapshotBeforeUpdate} + * or {@link StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps} prevents + * this from being invoked. + * + * @deprecated 16.3, use static {@link StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps} instead + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#updating-state-based-on-props} + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path} + */ + UNSAFE_componentWillReceiveProps?(nextProps: Readonly

      , nextContext: any): void; + /** + * Called immediately before rendering when new props or state is received. Not called for the initial render. + * + * Note: You cannot call {@link Component.setState} here. + * + * Note: the presence of {@link NewLifecycle.getSnapshotBeforeUpdate getSnapshotBeforeUpdate} + * or {@link StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps} prevents + * this from being invoked. + * + * @deprecated 16.3, use getSnapshotBeforeUpdate instead; will stop working in React 17 + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#reading-dom-properties-before-an-update} + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path} + */ + componentWillUpdate?(nextProps: Readonly

      , nextState: Readonly, nextContext: any): void; + /** + * Called immediately before rendering when new props or state is received. Not called for the initial render. + * + * Note: You cannot call {@link Component.setState} here. + * + * This method will not stop working in React 17. + * + * Note: the presence of {@link NewLifecycle.getSnapshotBeforeUpdate getSnapshotBeforeUpdate} + * or {@link StaticLifecycle.getDerivedStateFromProps getDerivedStateFromProps} prevents + * this from being invoked. + * + * @deprecated 16.3, use getSnapshotBeforeUpdate instead + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#reading-dom-properties-before-an-update} + * @see {@link https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path} + */ + UNSAFE_componentWillUpdate?(nextProps: Readonly

      , nextState: Readonly, nextContext: any): void; + } + + /** + * @deprecated + * + * @see {@link https://legacy.reactjs.org/blog/2016/07/13/mixins-considered-harmful.html Mixins Considered Harmful} + */ + interface Mixin extends ComponentLifecycle { + mixins?: Array> | undefined; + statics?: { + [key: string]: any; + } | undefined; + + displayName?: string | undefined; + propTypes?: ValidationMap | undefined; + contextTypes?: ValidationMap | undefined; + childContextTypes?: ValidationMap | undefined; + + getDefaultProps?(): P; + getInitialState?(): S; + } + + /** + * @deprecated + * + * @see {@link https://legacy.reactjs.org/blog/2016/07/13/mixins-considered-harmful.html Mixins Considered Harmful} + */ + interface ComponentSpec extends Mixin { + render(): ReactNode; + + [propertyName: string]: any; + } + + function createRef(): RefObject; + + /** + * The type of the component returned from {@link forwardRef}. + * + * @template P The props the component accepts, if any. + * + * @see {@link ExoticComponent} + */ + interface ForwardRefExoticComponent

      extends NamedExoticComponent

      { + /** + * @deprecated Use {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#default_value|default values for destructuring assignments instead}. + */ + defaultProps?: Partial

      | undefined; + propTypes?: WeakValidationMap

      | undefined; + } + + /** + * Lets your component expose a DOM node to a parent component + * using a ref. + * + * @see {@link https://react.dev/reference/react/forwardRef React Docs} + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/basic/getting-started/forward_and_create_ref/ React TypeScript Cheatsheet} + * + * @param render See the {@link ForwardRefRenderFunction}. + * + * @template T The type of the DOM node. + * @template P The props the component accepts, if any. + * + * @example + * + * ```tsx + * interface Props { + * children?: ReactNode; + * type: "submit" | "button"; + * } + * + * export const FancyButton = forwardRef((props, ref) => ( + * + * )); + * ``` + */ + function forwardRef( + render: ForwardRefRenderFunction, + ): ForwardRefExoticComponent & RefAttributes>; + + /** + * Omits the 'ref' attribute from the given props object. + * + * @template P The props object type. + */ + type PropsWithoutRef

      = + // Omit would not be sufficient for this. We'd like to avoid unnecessary mapping and need a distributive conditional to support unions. + // see: https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types + // https://github.com/Microsoft/TypeScript/issues/28339 + P extends any ? ("ref" extends keyof P ? Omit : P) : P; + /** Ensures that the props do not include string ref, which cannot be forwarded */ + type PropsWithRef

      = + // Note: String refs can be forwarded. We can't fix this bug without breaking a bunch of libraries now though. + // Just "P extends { ref?: infer R }" looks sufficient, but R will infer as {} if P is {}. + "ref" extends keyof P + ? P extends { ref?: infer R | undefined } + ? string extends R ? PropsWithoutRef

      & { ref?: Exclude | undefined } + : P + : P + : P; + + type PropsWithChildren

      = P & { children?: ReactNode | undefined }; + + /** + * Used to retrieve the props a component accepts. Can either be passed a string, + * indicating a DOM element (e.g. 'div', 'span', etc.) or the type of a React + * component. + * + * It's usually better to use {@link ComponentPropsWithRef} or {@link ComponentPropsWithoutRef} + * instead of this type, as they let you be explicit about whether or not to include + * the `ref` prop. + * + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/react-types/componentprops/ React TypeScript Cheatsheet} + * + * @example + * + * ```tsx + * // Retrieves the props an 'input' element accepts + * type InputProps = React.ComponentProps<'input'>; + * ``` + * + * @example + * + * ```tsx + * const MyComponent = (props: { foo: number, bar: string }) =>

      ; + * + * // Retrieves the props 'MyComponent' accepts + * type MyComponentProps = React.ComponentProps; + * ``` + */ + type ComponentProps> = T extends + JSXElementConstructor ? P + : T extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[T] + : {}; + + /** + * Used to retrieve the props a component accepts with its ref. Can either be + * passed a string, indicating a DOM element (e.g. 'div', 'span', etc.) or the + * type of a React component. + * + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/react-types/componentprops/ React TypeScript Cheatsheet} + * + * @example + * + * ```tsx + * // Retrieves the props an 'input' element accepts + * type InputProps = React.ComponentPropsWithRef<'input'>; + * ``` + * + * @example + * + * ```tsx + * const MyComponent = (props: { foo: number, bar: string }) =>
      ; + * + * // Retrieves the props 'MyComponent' accepts + * type MyComponentPropsWithRef = React.ComponentPropsWithRef; + * ``` + */ + type ComponentPropsWithRef = T extends (new(props: infer P) => Component) + ? PropsWithoutRef

      & RefAttributes> + : PropsWithRef>; + /** + * Used to retrieve the props a custom component accepts with its ref. + * + * Unlike {@link ComponentPropsWithRef}, this only works with custom + * components, i.e. components you define yourself. This is to improve + * type-checking performance. + * + * @example + * + * ```tsx + * const MyComponent = (props: { foo: number, bar: string }) =>

      ; + * + * // Retrieves the props 'MyComponent' accepts + * type MyComponentPropsWithRef = React.CustomComponentPropsWithRef; + * ``` + */ + type CustomComponentPropsWithRef = T extends (new(props: infer P) => Component) + ? (PropsWithoutRef

      & RefAttributes>) + : T extends ((props: infer P, legacyContext?: any) => ReactNode) ? PropsWithRef

      + : never; + + /** + * Used to retrieve the props a component accepts without its ref. Can either be + * passed a string, indicating a DOM element (e.g. 'div', 'span', etc.) or the + * type of a React component. + * + * @see {@link https://react-typescript-cheatsheet.netlify.app/docs/react-types/componentprops/ React TypeScript Cheatsheet} + * + * @example + * + * ```tsx + * // Retrieves the props an 'input' element accepts + * type InputProps = React.ComponentPropsWithoutRef<'input'>; + * ``` + * + * @example + * + * ```tsx + * const MyComponent = (props: { foo: number, bar: string }) =>

      ; + * + * // Retrieves the props 'MyComponent' accepts + * type MyComponentPropsWithoutRef = React.ComponentPropsWithoutRef; + * ``` + */ + type ComponentPropsWithoutRef = PropsWithoutRef>; + + type ComponentRef = T extends NamedExoticComponent< + ComponentPropsWithoutRef & RefAttributes + > ? Method + : ComponentPropsWithRef extends RefAttributes ? Method + : never; + + // will show `Memo(${Component.displayName || Component.name})` in devtools by default, + // but can be given its own specific name + type MemoExoticComponent> = NamedExoticComponent> & { + readonly type: T; + }; + + /** + * Lets you skip re-rendering a component when its props are unchanged. + * + * @see {@link https://react.dev/reference/react/memo React Docs} + * + * @param Component The component to memoize. + * @param propsAreEqual A function that will be used to determine if the props have changed. + * + * @example + * + * ```tsx + * import { memo } from 'react'; + * + * const SomeComponent = memo(function SomeComponent(props: { foo: string }) { + * // ... + * }); + * ``` + */ + function memo

      ( + Component: FunctionComponent

      , + propsAreEqual?: (prevProps: Readonly

      , nextProps: Readonly

      ) => boolean, + ): NamedExoticComponent

      ; + function memo>( + Component: T, + propsAreEqual?: (prevProps: Readonly>, nextProps: Readonly>) => boolean, + ): MemoExoticComponent; + + interface LazyExoticComponent> + extends ExoticComponent> + { + readonly _result: T; + } + + /** + * Lets you defer loading a component’s code until it is rendered for the first time. + * + * @see {@link https://react.dev/reference/react/lazy React Docs} + * + * @param load A function that returns a `Promise` or another thenable (a `Promise`-like object with a + * then method). React will not call `load` until the first time you attempt to render the returned + * component. After React first calls load, it will wait for it to resolve, and then render the + * resolved value’s `.default` as a React component. Both the returned `Promise` and the `Promise`’s + * resolved value will be cached, so React will not call load more than once. If the `Promise` rejects, + * React will throw the rejection reason for the nearest Error Boundary to handle. + * + * @example + * + * ```tsx + * import { lazy } from 'react'; + * + * const MarkdownPreview = lazy(() => import('./MarkdownPreview.js')); + * ``` + */ + function lazy>( + load: () => Promise<{ default: T }>, + ): LazyExoticComponent; + + // + // React Hooks + // ---------------------------------------------------------------------- + + /** + * The instruction passed to a {@link Dispatch} function in {@link useState} + * to tell React what the next value of the {@link useState} should be. + * + * Often found wrapped in {@link Dispatch}. + * + * @template S The type of the state. + * + * @example + * + * ```tsx + * // This return type correctly represents the type of + * // `setCount` in the example below. + * const useCustomState = (): Dispatch> => { + * const [count, setCount] = useState(0); + * + * return setCount; + * } + * ``` + */ + type SetStateAction = S | ((prevState: S) => S); + + /** + * A function that can be used to update the state of a {@link useState} + * or {@link useReducer} hook. + */ + type Dispatch = (value: A) => void; + /** + * A {@link Dispatch} function can sometimes be called without any arguments. + */ + type DispatchWithoutAction = () => void; + // Unlike redux, the actions _can_ be anything + type Reducer = (prevState: S, action: A) => S; + // If useReducer accepts a reducer without action, dispatch may be called without any parameters. + type ReducerWithoutAction = (prevState: S) => S; + // types used to try and prevent the compiler from reducing S + // to a supertype common with the second argument to useReducer() + type ReducerState> = R extends Reducer ? S : never; + type ReducerAction> = R extends Reducer ? A : never; + // The identity check is done with the SameValue algorithm (Object.is), which is stricter than === + type ReducerStateWithoutAction> = R extends ReducerWithoutAction ? S + : never; + type DependencyList = readonly unknown[]; + + // NOTE: callbacks are _only_ allowed to return either void, or a destructor. + type EffectCallback = () => void | Destructor; + + interface MutableRefObject { + current: T; + } + + // This will technically work if you give a Consumer or Provider but it's deprecated and warns + /** + * Accepts a context object (the value returned from `React.createContext`) and returns the current + * context value, as given by the nearest context provider for the given context. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useContext} + */ + function useContext(context: Context /*, (not public API) observedBits?: number|boolean */): T; + /** + * Returns a stateful value, and a function to update it. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useState} + */ + function useState(initialState: S | (() => S)): [S, Dispatch>]; + // convenience overload when first argument is omitted + /** + * Returns a stateful value, and a function to update it. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useState} + */ + function useState(): [S | undefined, Dispatch>]; + /** + * An alternative to `useState`. + * + * `useReducer` is usually preferable to `useState` when you have complex state logic that involves + * multiple sub-values. It also lets you optimize performance for components that trigger deep + * updates because you can pass `dispatch` down instead of callbacks. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useReducer} + */ + // overload where dispatch could accept 0 arguments. + function useReducer, I>( + reducer: R, + initializerArg: I, + initializer: (arg: I) => ReducerStateWithoutAction, + ): [ReducerStateWithoutAction, DispatchWithoutAction]; + /** + * An alternative to `useState`. + * + * `useReducer` is usually preferable to `useState` when you have complex state logic that involves + * multiple sub-values. It also lets you optimize performance for components that trigger deep + * updates because you can pass `dispatch` down instead of callbacks. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useReducer} + */ + // overload where dispatch could accept 0 arguments. + function useReducer>( + reducer: R, + initializerArg: ReducerStateWithoutAction, + initializer?: undefined, + ): [ReducerStateWithoutAction, DispatchWithoutAction]; + /** + * An alternative to `useState`. + * + * `useReducer` is usually preferable to `useState` when you have complex state logic that involves + * multiple sub-values. It also lets you optimize performance for components that trigger deep + * updates because you can pass `dispatch` down instead of callbacks. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useReducer} + */ + // overload where "I" may be a subset of ReducerState; used to provide autocompletion. + // If "I" matches ReducerState exactly then the last overload will allow initializer to be omitted. + // the last overload effectively behaves as if the identity function (x => x) is the initializer. + function useReducer, I>( + reducer: R, + initializerArg: I & ReducerState, + initializer: (arg: I & ReducerState) => ReducerState, + ): [ReducerState, Dispatch>]; + /** + * An alternative to `useState`. + * + * `useReducer` is usually preferable to `useState` when you have complex state logic that involves + * multiple sub-values. It also lets you optimize performance for components that trigger deep + * updates because you can pass `dispatch` down instead of callbacks. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useReducer} + */ + // overload for free "I"; all goes as long as initializer converts it into "ReducerState". + function useReducer, I>( + reducer: R, + initializerArg: I, + initializer: (arg: I) => ReducerState, + ): [ReducerState, Dispatch>]; + /** + * An alternative to `useState`. + * + * `useReducer` is usually preferable to `useState` when you have complex state logic that involves + * multiple sub-values. It also lets you optimize performance for components that trigger deep + * updates because you can pass `dispatch` down instead of callbacks. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useReducer} + */ + + // I'm not sure if I keep this 2-ary or if I make it (2,3)-ary; it's currently (2,3)-ary. + // The Flow types do have an overload for 3-ary invocation with undefined initializer. + + // NOTE: without the ReducerState indirection, TypeScript would reduce S to be the most common + // supertype between the reducer's return type and the initialState (or the initializer's return type), + // which would prevent autocompletion from ever working. + + // TODO: double-check if this weird overload logic is necessary. It is possible it's either a bug + // in older versions, or a regression in newer versions of the typescript completion service. + function useReducer>( + reducer: R, + initialState: ReducerState, + initializer?: undefined, + ): [ReducerState, Dispatch>]; + /** + * `useRef` returns a mutable ref object whose `.current` property is initialized to the passed argument + * (`initialValue`). The returned object will persist for the full lifetime of the component. + * + * Note that `useRef()` is useful for more than the `ref` attribute. It’s handy for keeping any mutable + * value around similar to how you’d use instance fields in classes. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useRef} + */ + function useRef(initialValue: T): MutableRefObject; + // convenience overload for refs given as a ref prop as they typically start with a null value + /** + * `useRef` returns a mutable ref object whose `.current` property is initialized to the passed argument + * (`initialValue`). The returned object will persist for the full lifetime of the component. + * + * Note that `useRef()` is useful for more than the `ref` attribute. It’s handy for keeping any mutable + * value around similar to how you’d use instance fields in classes. + * + * Usage note: if you need the result of useRef to be directly mutable, include `| null` in the type + * of the generic argument. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useRef} + */ + function useRef(initialValue: T | null): RefObject; + // convenience overload for potentially undefined initialValue / call with 0 arguments + // has a default to stop it from defaulting to {} instead + /** + * `useRef` returns a mutable ref object whose `.current` property is initialized to the passed argument + * (`initialValue`). The returned object will persist for the full lifetime of the component. + * + * Note that `useRef()` is useful for more than the `ref` attribute. It’s handy for keeping any mutable + * value around similar to how you’d use instance fields in classes. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useRef} + */ + function useRef(): MutableRefObject; + /** + * The signature is identical to `useEffect`, but it fires synchronously after all DOM mutations. + * Use this to read layout from the DOM and synchronously re-render. Updates scheduled inside + * `useLayoutEffect` will be flushed synchronously, before the browser has a chance to paint. + * + * Prefer the standard `useEffect` when possible to avoid blocking visual updates. + * + * If you’re migrating code from a class component, `useLayoutEffect` fires in the same phase as + * `componentDidMount` and `componentDidUpdate`. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useLayoutEffect} + */ + function useLayoutEffect(effect: EffectCallback, deps?: DependencyList): void; + /** + * Accepts a function that contains imperative, possibly effectful code. + * + * @param effect Imperative function that can return a cleanup function + * @param deps If present, effect will only activate if the values in the list change. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useEffect} + */ + function useEffect(effect: EffectCallback, deps?: DependencyList): void; + // NOTE: this does not accept strings, but this will have to be fixed by removing strings from type Ref + /** + * `useImperativeHandle` customizes the instance value that is exposed to parent components when using + * `ref`. As always, imperative code using refs should be avoided in most cases. + * + * `useImperativeHandle` should be used with `React.forwardRef`. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useImperativeHandle} + */ + function useImperativeHandle(ref: Ref | undefined, init: () => R, deps?: DependencyList): void; + // I made 'inputs' required here and in useMemo as there's no point to memoizing without the memoization key + // useCallback(X) is identical to just using X, useMemo(() => Y) is identical to just using Y. + /** + * `useCallback` will return a memoized version of the callback that only changes if one of the `inputs` + * has changed. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useCallback} + */ + // A specific function type would not trigger implicit any. + // See https://github.com/DefinitelyTyped/DefinitelyTyped/issues/52873#issuecomment-845806435 for a comparison between `Function` and more specific types. + // eslint-disable-next-line @typescript-eslint/ban-types + function useCallback(callback: T, deps: DependencyList): T; + /** + * `useMemo` will only recompute the memoized value when one of the `deps` has changed. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useMemo} + */ + // allow undefined, but don't make it optional as that is very likely a mistake + function useMemo(factory: () => T, deps: DependencyList): T; + /** + * `useDebugValue` can be used to display a label for custom hooks in React DevTools. + * + * NOTE: We don’t recommend adding debug values to every custom hook. + * It’s most valuable for custom hooks that are part of shared libraries. + * + * @version 16.8.0 + * @see {@link https://react.dev/reference/react/useDebugValue} + */ + // the name of the custom hook is itself derived from the function name at runtime: + // it's just the function name without the "use" prefix. + function useDebugValue(value: T, format?: (value: T) => any): void; + + // must be synchronous + export type TransitionFunction = () => VoidOrUndefinedOnly; + // strange definition to allow vscode to show documentation on the invocation + export interface TransitionStartFunction { + /** + * State updates caused inside the callback are allowed to be deferred. + * + * **If some state update causes a component to suspend, that state update should be wrapped in a transition.** + * + * @param callback A _synchronous_ function which causes state updates that can be deferred. + */ + (callback: TransitionFunction): void; + } + + /** + * Returns a deferred version of the value that may “lag behind” it. + * + * This is commonly used to keep the interface responsive when you have something that renders immediately + * based on user input and something that needs to wait for a data fetch. + * + * A good example of this is a text input. + * + * @param value The value that is going to be deferred + * + * @see {@link https://react.dev/reference/react/useDeferredValue} + */ + export function useDeferredValue(value: T): T; + + /** + * Allows components to avoid undesirable loading states by waiting for content to load + * before transitioning to the next screen. It also allows components to defer slower, + * data fetching updates until subsequent renders so that more crucial updates can be + * rendered immediately. + * + * The `useTransition` hook returns two values in an array. + * + * The first is a boolean, React’s way of informing us whether we’re waiting for the transition to finish. + * The second is a function that takes a callback. We can use it to tell React which state we want to defer. + * + * **If some state update causes a component to suspend, that state update should be wrapped in a transition.** + * + * @see {@link https://react.dev/reference/react/useTransition} + */ + export function useTransition(): [boolean, TransitionStartFunction]; + + /** + * Similar to `useTransition` but allows uses where hooks are not available. + * + * @param callback A _synchronous_ function which causes state updates that can be deferred. + */ + export function startTransition(scope: TransitionFunction): void; + + /** + * Wrap any code rendering and triggering updates to your components into `act()` calls. + * + * Ensures that the behavior in your tests matches what happens in the browser + * more closely by executing pending `useEffect`s before returning. This also + * reduces the amount of re-renders done. + * + * @param callback A synchronous, void callback that will execute as a single, complete React commit. + * + * @see https://reactjs.org/blog/2019/02/06/react-v16.8.0.html#testing-hooks + */ + // While act does always return Thenable, if a void function is passed, we pretend the return value is also void to not trigger dangling Promise lint rules. + export function act(callback: () => VoidOrUndefinedOnly): void; + export function act(callback: () => T | Promise): Promise; + + export function useId(): string; + + /** + * @param effect Imperative function that can return a cleanup function + * @param deps If present, effect will only activate if the values in the list change. + * + * @see {@link https://github.com/facebook/react/pull/21913} + */ + export function useInsertionEffect(effect: EffectCallback, deps?: DependencyList): void; + + /** + * @param subscribe + * @param getSnapshot + * + * @see {@link https://github.com/reactwg/react-18/discussions/86} + */ + // keep in sync with `useSyncExternalStore` from `use-sync-external-store` + export function useSyncExternalStore( + subscribe: (onStoreChange: () => void) => () => void, + getSnapshot: () => Snapshot, + getServerSnapshot?: () => Snapshot, + ): Snapshot; + + // + // Event System + // ---------------------------------------------------------------------- + // TODO: change any to unknown when moving to TS v3 + interface BaseSyntheticEvent { + nativeEvent: E; + currentTarget: C; + target: T; + bubbles: boolean; + cancelable: boolean; + defaultPrevented: boolean; + eventPhase: number; + isTrusted: boolean; + preventDefault(): void; + isDefaultPrevented(): boolean; + stopPropagation(): void; + isPropagationStopped(): boolean; + persist(): void; + timeStamp: number; + type: string; + } + + /** + * currentTarget - a reference to the element on which the event listener is registered. + * + * target - a reference to the element from which the event was originally dispatched. + * This might be a child element to the element on which the event listener is registered. + * If you thought this should be `EventTarget & T`, see https://github.com/DefinitelyTyped/DefinitelyTyped/issues/11508#issuecomment-256045682 + */ + interface SyntheticEvent extends BaseSyntheticEvent {} + + interface ClipboardEvent extends SyntheticEvent { + clipboardData: DataTransfer; + } + + interface CompositionEvent extends SyntheticEvent { + data: string; + } + + interface DragEvent extends MouseEvent { + dataTransfer: DataTransfer; + } + + interface PointerEvent extends MouseEvent { + pointerId: number; + pressure: number; + tangentialPressure: number; + tiltX: number; + tiltY: number; + twist: number; + width: number; + height: number; + pointerType: "mouse" | "pen" | "touch"; + isPrimary: boolean; + } + + interface FocusEvent extends SyntheticEvent { + relatedTarget: (EventTarget & RelatedTarget) | null; + target: EventTarget & Target; + } + + interface FormEvent extends SyntheticEvent { + } + + interface InvalidEvent extends SyntheticEvent { + target: EventTarget & T; + } + + interface ChangeEvent extends SyntheticEvent { + target: EventTarget & T; + } + + export type ModifierKey = + | "Alt" + | "AltGraph" + | "CapsLock" + | "Control" + | "Fn" + | "FnLock" + | "Hyper" + | "Meta" + | "NumLock" + | "ScrollLock" + | "Shift" + | "Super" + | "Symbol" + | "SymbolLock"; + + interface KeyboardEvent extends UIEvent { + altKey: boolean; + /** @deprecated */ + charCode: number; + ctrlKey: boolean; + code: string; + /** + * See [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#keys-modifier). for a list of valid (case-sensitive) arguments to this method. + */ + getModifierState(key: ModifierKey): boolean; + /** + * See the [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#named-key-attribute-values). for possible values + */ + key: string; + /** @deprecated */ + keyCode: number; + locale: string; + location: number; + metaKey: boolean; + repeat: boolean; + shiftKey: boolean; + /** @deprecated */ + which: number; + } + + interface MouseEvent extends UIEvent { + altKey: boolean; + button: number; + buttons: number; + clientX: number; + clientY: number; + ctrlKey: boolean; + /** + * See [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#keys-modifier). for a list of valid (case-sensitive) arguments to this method. + */ + getModifierState(key: ModifierKey): boolean; + metaKey: boolean; + movementX: number; + movementY: number; + pageX: number; + pageY: number; + relatedTarget: EventTarget | null; + screenX: number; + screenY: number; + shiftKey: boolean; + } + + interface TouchEvent extends UIEvent { + altKey: boolean; + changedTouches: TouchList; + ctrlKey: boolean; + /** + * See [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#keys-modifier). for a list of valid (case-sensitive) arguments to this method. + */ + getModifierState(key: ModifierKey): boolean; + metaKey: boolean; + shiftKey: boolean; + targetTouches: TouchList; + touches: TouchList; + } + + interface UIEvent extends SyntheticEvent { + detail: number; + view: AbstractView; + } + + interface WheelEvent extends MouseEvent { + deltaMode: number; + deltaX: number; + deltaY: number; + deltaZ: number; + } + + interface AnimationEvent extends SyntheticEvent { + animationName: string; + elapsedTime: number; + pseudoElement: string; + } + + interface TransitionEvent extends SyntheticEvent { + elapsedTime: number; + propertyName: string; + pseudoElement: string; + } + + // + // Event Handler Types + // ---------------------------------------------------------------------- + + type EventHandler> = { bivarianceHack(event: E): void }["bivarianceHack"]; + + type ReactEventHandler = EventHandler>; + + type ClipboardEventHandler = EventHandler>; + type CompositionEventHandler = EventHandler>; + type DragEventHandler = EventHandler>; + type FocusEventHandler = EventHandler>; + type FormEventHandler = EventHandler>; + type ChangeEventHandler = EventHandler>; + type KeyboardEventHandler = EventHandler>; + type MouseEventHandler = EventHandler>; + type TouchEventHandler = EventHandler>; + type PointerEventHandler = EventHandler>; + type UIEventHandler = EventHandler>; + type WheelEventHandler = EventHandler>; + type AnimationEventHandler = EventHandler>; + type TransitionEventHandler = EventHandler>; + + // + // Props / DOM Attributes + // ---------------------------------------------------------------------- + + interface HTMLProps extends AllHTMLAttributes, ClassAttributes { + } + + type DetailedHTMLProps, T> = ClassAttributes & E; + + interface SVGProps extends SVGAttributes, ClassAttributes { + } + + interface SVGLineElementAttributes extends SVGProps {} + interface SVGTextElementAttributes extends SVGProps {} + + interface DOMAttributes { + children?: ReactNode | undefined; + dangerouslySetInnerHTML?: { + // Should be InnerHTML['innerHTML']. + // But unfortunately we're mixing renderer-specific type declarations. + __html: string | TrustedHTML; + } | undefined; + + // Clipboard Events + onCopy?: ClipboardEventHandler | undefined; + onCopyCapture?: ClipboardEventHandler | undefined; + onCut?: ClipboardEventHandler | undefined; + onCutCapture?: ClipboardEventHandler | undefined; + onPaste?: ClipboardEventHandler | undefined; + onPasteCapture?: ClipboardEventHandler | undefined; + + // Composition Events + onCompositionEnd?: CompositionEventHandler | undefined; + onCompositionEndCapture?: CompositionEventHandler | undefined; + onCompositionStart?: CompositionEventHandler | undefined; + onCompositionStartCapture?: CompositionEventHandler | undefined; + onCompositionUpdate?: CompositionEventHandler | undefined; + onCompositionUpdateCapture?: CompositionEventHandler | undefined; + + // Focus Events + onFocus?: FocusEventHandler | undefined; + onFocusCapture?: FocusEventHandler | undefined; + onBlur?: FocusEventHandler | undefined; + onBlurCapture?: FocusEventHandler | undefined; + + // Form Events + onChange?: FormEventHandler | undefined; + onChangeCapture?: FormEventHandler | undefined; + onBeforeInput?: FormEventHandler | undefined; + onBeforeInputCapture?: FormEventHandler | undefined; + onInput?: FormEventHandler | undefined; + onInputCapture?: FormEventHandler | undefined; + onReset?: FormEventHandler | undefined; + onResetCapture?: FormEventHandler | undefined; + onSubmit?: FormEventHandler | undefined; + onSubmitCapture?: FormEventHandler | undefined; + onInvalid?: FormEventHandler | undefined; + onInvalidCapture?: FormEventHandler | undefined; + + // Image Events + onLoad?: ReactEventHandler | undefined; + onLoadCapture?: ReactEventHandler | undefined; + onError?: ReactEventHandler | undefined; // also a Media Event + onErrorCapture?: ReactEventHandler | undefined; // also a Media Event + + // Keyboard Events + onKeyDown?: KeyboardEventHandler | undefined; + onKeyDownCapture?: KeyboardEventHandler | undefined; + /** @deprecated Use `onKeyUp` or `onKeyDown` instead */ + onKeyPress?: KeyboardEventHandler | undefined; + /** @deprecated Use `onKeyUpCapture` or `onKeyDownCapture` instead */ + onKeyPressCapture?: KeyboardEventHandler | undefined; + onKeyUp?: KeyboardEventHandler | undefined; + onKeyUpCapture?: KeyboardEventHandler | undefined; + + // Media Events + onAbort?: ReactEventHandler | undefined; + onAbortCapture?: ReactEventHandler | undefined; + onCanPlay?: ReactEventHandler | undefined; + onCanPlayCapture?: ReactEventHandler | undefined; + onCanPlayThrough?: ReactEventHandler | undefined; + onCanPlayThroughCapture?: ReactEventHandler | undefined; + onDurationChange?: ReactEventHandler | undefined; + onDurationChangeCapture?: ReactEventHandler | undefined; + onEmptied?: ReactEventHandler | undefined; + onEmptiedCapture?: ReactEventHandler | undefined; + onEncrypted?: ReactEventHandler | undefined; + onEncryptedCapture?: ReactEventHandler | undefined; + onEnded?: ReactEventHandler | undefined; + onEndedCapture?: ReactEventHandler | undefined; + onLoadedData?: ReactEventHandler | undefined; + onLoadedDataCapture?: ReactEventHandler | undefined; + onLoadedMetadata?: ReactEventHandler | undefined; + onLoadedMetadataCapture?: ReactEventHandler | undefined; + onLoadStart?: ReactEventHandler | undefined; + onLoadStartCapture?: ReactEventHandler | undefined; + onPause?: ReactEventHandler | undefined; + onPauseCapture?: ReactEventHandler | undefined; + onPlay?: ReactEventHandler | undefined; + onPlayCapture?: ReactEventHandler | undefined; + onPlaying?: ReactEventHandler | undefined; + onPlayingCapture?: ReactEventHandler | undefined; + onProgress?: ReactEventHandler | undefined; + onProgressCapture?: ReactEventHandler | undefined; + onRateChange?: ReactEventHandler | undefined; + onRateChangeCapture?: ReactEventHandler | undefined; + onResize?: ReactEventHandler | undefined; + onResizeCapture?: ReactEventHandler | undefined; + onSeeked?: ReactEventHandler | undefined; + onSeekedCapture?: ReactEventHandler | undefined; + onSeeking?: ReactEventHandler | undefined; + onSeekingCapture?: ReactEventHandler | undefined; + onStalled?: ReactEventHandler | undefined; + onStalledCapture?: ReactEventHandler | undefined; + onSuspend?: ReactEventHandler | undefined; + onSuspendCapture?: ReactEventHandler | undefined; + onTimeUpdate?: ReactEventHandler | undefined; + onTimeUpdateCapture?: ReactEventHandler | undefined; + onVolumeChange?: ReactEventHandler | undefined; + onVolumeChangeCapture?: ReactEventHandler | undefined; + onWaiting?: ReactEventHandler | undefined; + onWaitingCapture?: ReactEventHandler | undefined; + + // MouseEvents + onAuxClick?: MouseEventHandler | undefined; + onAuxClickCapture?: MouseEventHandler | undefined; + onClick?: MouseEventHandler | undefined; + onClickCapture?: MouseEventHandler | undefined; + onContextMenu?: MouseEventHandler | undefined; + onContextMenuCapture?: MouseEventHandler | undefined; + onDoubleClick?: MouseEventHandler | undefined; + onDoubleClickCapture?: MouseEventHandler | undefined; + onDrag?: DragEventHandler | undefined; + onDragCapture?: DragEventHandler | undefined; + onDragEnd?: DragEventHandler | undefined; + onDragEndCapture?: DragEventHandler | undefined; + onDragEnter?: DragEventHandler | undefined; + onDragEnterCapture?: DragEventHandler | undefined; + onDragExit?: DragEventHandler | undefined; + onDragExitCapture?: DragEventHandler | undefined; + onDragLeave?: DragEventHandler | undefined; + onDragLeaveCapture?: DragEventHandler | undefined; + onDragOver?: DragEventHandler | undefined; + onDragOverCapture?: DragEventHandler | undefined; + onDragStart?: DragEventHandler | undefined; + onDragStartCapture?: DragEventHandler | undefined; + onDrop?: DragEventHandler | undefined; + onDropCapture?: DragEventHandler | undefined; + onMouseDown?: MouseEventHandler | undefined; + onMouseDownCapture?: MouseEventHandler | undefined; + onMouseEnter?: MouseEventHandler | undefined; + onMouseLeave?: MouseEventHandler | undefined; + onMouseMove?: MouseEventHandler | undefined; + onMouseMoveCapture?: MouseEventHandler | undefined; + onMouseOut?: MouseEventHandler | undefined; + onMouseOutCapture?: MouseEventHandler | undefined; + onMouseOver?: MouseEventHandler | undefined; + onMouseOverCapture?: MouseEventHandler | undefined; + onMouseUp?: MouseEventHandler | undefined; + onMouseUpCapture?: MouseEventHandler | undefined; + + // Selection Events + onSelect?: ReactEventHandler | undefined; + onSelectCapture?: ReactEventHandler | undefined; + + // Touch Events + onTouchCancel?: TouchEventHandler | undefined; + onTouchCancelCapture?: TouchEventHandler | undefined; + onTouchEnd?: TouchEventHandler | undefined; + onTouchEndCapture?: TouchEventHandler | undefined; + onTouchMove?: TouchEventHandler | undefined; + onTouchMoveCapture?: TouchEventHandler | undefined; + onTouchStart?: TouchEventHandler | undefined; + onTouchStartCapture?: TouchEventHandler | undefined; + + // Pointer Events + onPointerDown?: PointerEventHandler | undefined; + onPointerDownCapture?: PointerEventHandler | undefined; + onPointerMove?: PointerEventHandler | undefined; + onPointerMoveCapture?: PointerEventHandler | undefined; + onPointerUp?: PointerEventHandler | undefined; + onPointerUpCapture?: PointerEventHandler | undefined; + onPointerCancel?: PointerEventHandler | undefined; + onPointerCancelCapture?: PointerEventHandler | undefined; + onPointerEnter?: PointerEventHandler | undefined; + onPointerLeave?: PointerEventHandler | undefined; + onPointerOver?: PointerEventHandler | undefined; + onPointerOverCapture?: PointerEventHandler | undefined; + onPointerOut?: PointerEventHandler | undefined; + onPointerOutCapture?: PointerEventHandler | undefined; + onGotPointerCapture?: PointerEventHandler | undefined; + onGotPointerCaptureCapture?: PointerEventHandler | undefined; + onLostPointerCapture?: PointerEventHandler | undefined; + onLostPointerCaptureCapture?: PointerEventHandler | undefined; + + // UI Events + onScroll?: UIEventHandler | undefined; + onScrollCapture?: UIEventHandler | undefined; + + // Wheel Events + onWheel?: WheelEventHandler | undefined; + onWheelCapture?: WheelEventHandler | undefined; + + // Animation Events + onAnimationStart?: AnimationEventHandler | undefined; + onAnimationStartCapture?: AnimationEventHandler | undefined; + onAnimationEnd?: AnimationEventHandler | undefined; + onAnimationEndCapture?: AnimationEventHandler | undefined; + onAnimationIteration?: AnimationEventHandler | undefined; + onAnimationIterationCapture?: AnimationEventHandler | undefined; + + // Transition Events + onTransitionEnd?: TransitionEventHandler | undefined; + onTransitionEndCapture?: TransitionEventHandler | undefined; + } + + export interface CSSProperties extends CSS.Properties { + /** + * The index signature was removed to enable closed typing for style + * using CSSType. You're able to use type assertion or module augmentation + * to add properties or an index signature of your own. + * + * For examples and more information, visit: + * https://github.com/frenic/csstype#what-should-i-do-when-i-get-type-errors + */ + } + + // All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/ + interface AriaAttributes { + /** Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application. */ + "aria-activedescendant"?: string | undefined; + /** Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute. */ + "aria-atomic"?: Booleanish | undefined; + /** + * Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be + * presented if they are made. + */ + "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined; + /** Indicates an element is being modified and that assistive technologies MAY want to wait until the modifications are complete before exposing them to the user. */ + /** + * Defines a string value that labels the current element, which is intended to be converted into Braille. + * @see aria-label. + */ + "aria-braillelabel"?: string | undefined; + /** + * Defines a human-readable, author-localized abbreviated description for the role of an element, which is intended to be converted into Braille. + * @see aria-roledescription. + */ + "aria-brailleroledescription"?: string | undefined; + "aria-busy"?: Booleanish | undefined; + /** + * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets. + * @see aria-pressed @see aria-selected. + */ + "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined; + /** + * Defines the total number of columns in a table, grid, or treegrid. + * @see aria-colindex. + */ + "aria-colcount"?: number | undefined; + /** + * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid. + * @see aria-colcount @see aria-colspan. + */ + "aria-colindex"?: number | undefined; + /** + * Defines a human readable text alternative of aria-colindex. + * @see aria-rowindextext. + */ + "aria-colindextext"?: string | undefined; + /** + * Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid. + * @see aria-colindex @see aria-rowspan. + */ + "aria-colspan"?: number | undefined; + /** + * Identifies the element (or elements) whose contents or presence are controlled by the current element. + * @see aria-owns. + */ + "aria-controls"?: string | undefined; + /** Indicates the element that represents the current item within a container or set of related elements. */ + "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined; + /** + * Identifies the element (or elements) that describes the object. + * @see aria-labelledby + */ + "aria-describedby"?: string | undefined; + /** + * Defines a string value that describes or annotates the current element. + * @see related aria-describedby. + */ + "aria-description"?: string | undefined; + /** + * Identifies the element that provides a detailed, extended description for the object. + * @see aria-describedby. + */ + "aria-details"?: string | undefined; + /** + * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable. + * @see aria-hidden @see aria-readonly. + */ + "aria-disabled"?: Booleanish | undefined; + /** + * Indicates what functions can be performed when a dragged object is released on the drop target. + * @deprecated in ARIA 1.1 + */ + "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined; + /** + * Identifies the element that provides an error message for the object. + * @see aria-invalid @see aria-describedby. + */ + "aria-errormessage"?: string | undefined; + /** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */ + "aria-expanded"?: Booleanish | undefined; + /** + * Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion, + * allows assistive technology to override the general default of reading in document source order. + */ + "aria-flowto"?: string | undefined; + /** + * Indicates an element's "grabbed" state in a drag-and-drop operation. + * @deprecated in ARIA 1.1 + */ + "aria-grabbed"?: Booleanish | undefined; + /** Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. */ + "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined; + /** + * Indicates whether the element is exposed to an accessibility API. + * @see aria-disabled. + */ + "aria-hidden"?: Booleanish | undefined; + /** + * Indicates the entered value does not conform to the format expected by the application. + * @see aria-errormessage. + */ + "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined; + /** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */ + "aria-keyshortcuts"?: string | undefined; + /** + * Defines a string value that labels the current element. + * @see aria-labelledby. + */ + "aria-label"?: string | undefined; + /** + * Identifies the element (or elements) that labels the current element. + * @see aria-describedby. + */ + "aria-labelledby"?: string | undefined; + /** Defines the hierarchical level of an element within a structure. */ + "aria-level"?: number | undefined; + /** Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. */ + "aria-live"?: "off" | "assertive" | "polite" | undefined; + /** Indicates whether an element is modal when displayed. */ + "aria-modal"?: Booleanish | undefined; + /** Indicates whether a text box accepts multiple lines of input or only a single line. */ + "aria-multiline"?: Booleanish | undefined; + /** Indicates that the user may select more than one item from the current selectable descendants. */ + "aria-multiselectable"?: Booleanish | undefined; + /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */ + "aria-orientation"?: "horizontal" | "vertical" | undefined; + /** + * Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship + * between DOM elements where the DOM hierarchy cannot be used to represent the relationship. + * @see aria-controls. + */ + "aria-owns"?: string | undefined; + /** + * Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. + * A hint could be a sample value or a brief description of the expected format. + */ + "aria-placeholder"?: string | undefined; + /** + * Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. + * @see aria-setsize. + */ + "aria-posinset"?: number | undefined; + /** + * Indicates the current "pressed" state of toggle buttons. + * @see aria-checked @see aria-selected. + */ + "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined; + /** + * Indicates that the element is not editable, but is otherwise operable. + * @see aria-disabled. + */ + "aria-readonly"?: Booleanish | undefined; + /** + * Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. + * @see aria-atomic. + */ + "aria-relevant"?: + | "additions" + | "additions removals" + | "additions text" + | "all" + | "removals" + | "removals additions" + | "removals text" + | "text" + | "text additions" + | "text removals" + | undefined; + /** Indicates that user input is required on the element before a form may be submitted. */ + "aria-required"?: Booleanish | undefined; + /** Defines a human-readable, author-localized description for the role of an element. */ + "aria-roledescription"?: string | undefined; + /** + * Defines the total number of rows in a table, grid, or treegrid. + * @see aria-rowindex. + */ + "aria-rowcount"?: number | undefined; + /** + * Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid. + * @see aria-rowcount @see aria-rowspan. + */ + "aria-rowindex"?: number | undefined; + /** + * Defines a human readable text alternative of aria-rowindex. + * @see aria-colindextext. + */ + "aria-rowindextext"?: string | undefined; + /** + * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid. + * @see aria-rowindex @see aria-colspan. + */ + "aria-rowspan"?: number | undefined; + /** + * Indicates the current "selected" state of various widgets. + * @see aria-checked @see aria-pressed. + */ + "aria-selected"?: Booleanish | undefined; + /** + * Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. + * @see aria-posinset. + */ + "aria-setsize"?: number | undefined; + /** Indicates if items in a table or grid are sorted in ascending or descending order. */ + "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined; + /** Defines the maximum allowed value for a range widget. */ + "aria-valuemax"?: number | undefined; + /** Defines the minimum allowed value for a range widget. */ + "aria-valuemin"?: number | undefined; + /** + * Defines the current value for a range widget. + * @see aria-valuetext. + */ + "aria-valuenow"?: number | undefined; + /** Defines the human readable text alternative of aria-valuenow for a range widget. */ + "aria-valuetext"?: string | undefined; + } + + // All the WAI-ARIA 1.1 role attribute values from https://www.w3.org/TR/wai-aria-1.1/#role_definitions + type AriaRole = + | "alert" + | "alertdialog" + | "application" + | "article" + | "banner" + | "button" + | "cell" + | "checkbox" + | "columnheader" + | "combobox" + | "complementary" + | "contentinfo" + | "definition" + | "dialog" + | "directory" + | "document" + | "feed" + | "figure" + | "form" + | "grid" + | "gridcell" + | "group" + | "heading" + | "img" + | "link" + | "list" + | "listbox" + | "listitem" + | "log" + | "main" + | "marquee" + | "math" + | "menu" + | "menubar" + | "menuitem" + | "menuitemcheckbox" + | "menuitemradio" + | "navigation" + | "none" + | "note" + | "option" + | "presentation" + | "progressbar" + | "radio" + | "radiogroup" + | "region" + | "row" + | "rowgroup" + | "rowheader" + | "scrollbar" + | "search" + | "searchbox" + | "separator" + | "slider" + | "spinbutton" + | "status" + | "switch" + | "tab" + | "table" + | "tablist" + | "tabpanel" + | "term" + | "textbox" + | "timer" + | "toolbar" + | "tooltip" + | "tree" + | "treegrid" + | "treeitem" + | (string & {}); + + interface HTMLAttributes extends AriaAttributes, DOMAttributes { + // React-specific Attributes + defaultChecked?: boolean | undefined; + defaultValue?: string | number | readonly string[] | undefined; + suppressContentEditableWarning?: boolean | undefined; + suppressHydrationWarning?: boolean | undefined; + + // Standard HTML Attributes + accessKey?: string | undefined; + autoFocus?: boolean | undefined; + className?: string | undefined; + contentEditable?: Booleanish | "inherit" | "plaintext-only" | undefined; + contextMenu?: string | undefined; + dir?: string | undefined; + draggable?: Booleanish | undefined; + hidden?: boolean | undefined; + id?: string | undefined; + lang?: string | undefined; + nonce?: string | undefined; + slot?: string | undefined; + spellCheck?: Booleanish | undefined; + style?: CSSProperties | undefined; + tabIndex?: number | undefined; + title?: string | undefined; + translate?: "yes" | "no" | undefined; + + // Unknown + radioGroup?: string | undefined; // , + + // WAI-ARIA + role?: AriaRole | undefined; + + // RDFa Attributes + about?: string | undefined; + content?: string | undefined; + datatype?: string | undefined; + inlist?: any; + prefix?: string | undefined; + property?: string | undefined; + rel?: string | undefined; + resource?: string | undefined; + rev?: string | undefined; + typeof?: string | undefined; + vocab?: string | undefined; + + // Non-standard Attributes + autoCapitalize?: string | undefined; + autoCorrect?: string | undefined; + autoSave?: string | undefined; + color?: string | undefined; + itemProp?: string | undefined; + itemScope?: boolean | undefined; + itemType?: string | undefined; + itemID?: string | undefined; + itemRef?: string | undefined; + results?: number | undefined; + security?: string | undefined; + unselectable?: "on" | "off" | undefined; + + // Living Standard + /** + * Hints at the type of data that might be entered by the user while editing the element or its contents + * @see {@link https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-inputmode-attribute} + */ + inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined; + /** + * Specify that a standard HTML element should behave like a defined custom built-in element + * @see {@link https://html.spec.whatwg.org/multipage/custom-elements.html#attr-is} + */ + is?: string | undefined; + } + + /** + * For internal usage only. + * Different release channels declare additional types of ReactNode this particular release channel accepts. + * App or library types should never augment this interface. + */ + interface DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS {} + + interface AllHTMLAttributes extends HTMLAttributes { + // Standard HTML Attributes + accept?: string | undefined; + acceptCharset?: string | undefined; + action?: + | string + | undefined + | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS[ + keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS + ]; + allowFullScreen?: boolean | undefined; + allowTransparency?: boolean | undefined; + alt?: string | undefined; + as?: string | undefined; + async?: boolean | undefined; + autoComplete?: string | undefined; + autoPlay?: boolean | undefined; + capture?: boolean | "user" | "environment" | undefined; + cellPadding?: number | string | undefined; + cellSpacing?: number | string | undefined; + charSet?: string | undefined; + challenge?: string | undefined; + checked?: boolean | undefined; + cite?: string | undefined; + classID?: string | undefined; + cols?: number | undefined; + colSpan?: number | undefined; + controls?: boolean | undefined; + coords?: string | undefined; + crossOrigin?: CrossOrigin; + data?: string | undefined; + dateTime?: string | undefined; + default?: boolean | undefined; + defer?: boolean | undefined; + disabled?: boolean | undefined; + download?: any; + encType?: string | undefined; + form?: string | undefined; + formAction?: + | string + | undefined + | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS[ + keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS + ]; + formEncType?: string | undefined; + formMethod?: string | undefined; + formNoValidate?: boolean | undefined; + formTarget?: string | undefined; + frameBorder?: number | string | undefined; + headers?: string | undefined; + height?: number | string | undefined; + high?: number | undefined; + href?: string | undefined; + hrefLang?: string | undefined; + htmlFor?: string | undefined; + httpEquiv?: string | undefined; + integrity?: string | undefined; + keyParams?: string | undefined; + keyType?: string | undefined; + kind?: string | undefined; + label?: string | undefined; + list?: string | undefined; + loop?: boolean | undefined; + low?: number | undefined; + manifest?: string | undefined; + marginHeight?: number | undefined; + marginWidth?: number | undefined; + max?: number | string | undefined; + maxLength?: number | undefined; + media?: string | undefined; + mediaGroup?: string | undefined; + method?: string | undefined; + min?: number | string | undefined; + minLength?: number | undefined; + multiple?: boolean | undefined; + muted?: boolean | undefined; + name?: string | undefined; + noValidate?: boolean | undefined; + open?: boolean | undefined; + optimum?: number | undefined; + pattern?: string | undefined; + placeholder?: string | undefined; + playsInline?: boolean | undefined; + poster?: string | undefined; + preload?: string | undefined; + readOnly?: boolean | undefined; + required?: boolean | undefined; + reversed?: boolean | undefined; + rows?: number | undefined; + rowSpan?: number | undefined; + sandbox?: string | undefined; + scope?: string | undefined; + scoped?: boolean | undefined; + scrolling?: string | undefined; + seamless?: boolean | undefined; + selected?: boolean | undefined; + shape?: string | undefined; + size?: number | undefined; + sizes?: string | undefined; + span?: number | undefined; + src?: string | undefined; + srcDoc?: string | undefined; + srcLang?: string | undefined; + srcSet?: string | undefined; + start?: number | undefined; + step?: number | string | undefined; + summary?: string | undefined; + target?: string | undefined; + type?: string | undefined; + useMap?: string | undefined; + value?: string | readonly string[] | number | undefined; + width?: number | string | undefined; + wmode?: string | undefined; + wrap?: string | undefined; + } + + type HTMLAttributeReferrerPolicy = + | "" + | "no-referrer" + | "no-referrer-when-downgrade" + | "origin" + | "origin-when-cross-origin" + | "same-origin" + | "strict-origin" + | "strict-origin-when-cross-origin" + | "unsafe-url"; + + type HTMLAttributeAnchorTarget = + | "_self" + | "_blank" + | "_parent" + | "_top" + | (string & {}); + + interface AnchorHTMLAttributes extends HTMLAttributes { + download?: any; + href?: string | undefined; + hrefLang?: string | undefined; + media?: string | undefined; + ping?: string | undefined; + target?: HTMLAttributeAnchorTarget | undefined; + type?: string | undefined; + referrerPolicy?: HTMLAttributeReferrerPolicy | undefined; + } + + interface AudioHTMLAttributes extends MediaHTMLAttributes {} + + interface AreaHTMLAttributes extends HTMLAttributes { + alt?: string | undefined; + coords?: string | undefined; + download?: any; + href?: string | undefined; + hrefLang?: string | undefined; + media?: string | undefined; + referrerPolicy?: HTMLAttributeReferrerPolicy | undefined; + shape?: string | undefined; + target?: string | undefined; + } + + interface BaseHTMLAttributes extends HTMLAttributes { + href?: string | undefined; + target?: string | undefined; + } + + interface BlockquoteHTMLAttributes extends HTMLAttributes { + cite?: string | undefined; + } + + interface ButtonHTMLAttributes extends HTMLAttributes { + disabled?: boolean | undefined; + form?: string | undefined; + formAction?: + | string + | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS[ + keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS + ] + | undefined; + formEncType?: string | undefined; + formMethod?: string | undefined; + formNoValidate?: boolean | undefined; + formTarget?: string | undefined; + name?: string | undefined; + type?: "submit" | "reset" | "button" | undefined; + value?: string | readonly string[] | number | undefined; + } + + interface CanvasHTMLAttributes extends HTMLAttributes { + height?: number | string | undefined; + width?: number | string | undefined; + } + + interface ColHTMLAttributes extends HTMLAttributes { + span?: number | undefined; + width?: number | string | undefined; + } + + interface ColgroupHTMLAttributes extends HTMLAttributes { + span?: number | undefined; + } + + interface DataHTMLAttributes extends HTMLAttributes { + value?: string | readonly string[] | number | undefined; + } + + interface DetailsHTMLAttributes extends HTMLAttributes { + open?: boolean | undefined; + onToggle?: ReactEventHandler | undefined; + name?: string | undefined; + } + + interface DelHTMLAttributes extends HTMLAttributes { + cite?: string | undefined; + dateTime?: string | undefined; + } + + interface DialogHTMLAttributes extends HTMLAttributes { + onCancel?: ReactEventHandler | undefined; + onClose?: ReactEventHandler | undefined; + open?: boolean | undefined; + } + + interface EmbedHTMLAttributes extends HTMLAttributes { + height?: number | string | undefined; + src?: string | undefined; + type?: string | undefined; + width?: number | string | undefined; + } + + interface FieldsetHTMLAttributes extends HTMLAttributes { + disabled?: boolean | undefined; + form?: string | undefined; + name?: string | undefined; + } + + interface FormHTMLAttributes extends HTMLAttributes { + acceptCharset?: string | undefined; + action?: + | string + | undefined + | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS[ + keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS + ]; + autoComplete?: string | undefined; + encType?: string | undefined; + method?: string | undefined; + name?: string | undefined; + noValidate?: boolean | undefined; + target?: string | undefined; + } + + interface HtmlHTMLAttributes extends HTMLAttributes { + manifest?: string | undefined; + } + + interface IframeHTMLAttributes extends HTMLAttributes { + allow?: string | undefined; + allowFullScreen?: boolean | undefined; + allowTransparency?: boolean | undefined; + /** @deprecated */ + frameBorder?: number | string | undefined; + height?: number | string | undefined; + loading?: "eager" | "lazy" | undefined; + /** @deprecated */ + marginHeight?: number | undefined; + /** @deprecated */ + marginWidth?: number | undefined; + name?: string | undefined; + referrerPolicy?: HTMLAttributeReferrerPolicy | undefined; + sandbox?: string | undefined; + /** @deprecated */ + scrolling?: string | undefined; + seamless?: boolean | undefined; + src?: string | undefined; + srcDoc?: string | undefined; + width?: number | string | undefined; + } + + interface ImgHTMLAttributes extends HTMLAttributes { + alt?: string | undefined; + crossOrigin?: CrossOrigin; + decoding?: "async" | "auto" | "sync" | undefined; + fetchPriority?: "high" | "low" | "auto"; + height?: number | string | undefined; + loading?: "eager" | "lazy" | undefined; + referrerPolicy?: HTMLAttributeReferrerPolicy | undefined; + sizes?: string | undefined; + src?: string | undefined; + srcSet?: string | undefined; + useMap?: string | undefined; + width?: number | string | undefined; + } + + interface InsHTMLAttributes extends HTMLAttributes { + cite?: string | undefined; + dateTime?: string | undefined; + } + + type HTMLInputTypeAttribute = + | "button" + | "checkbox" + | "color" + | "date" + | "datetime-local" + | "email" + | "file" + | "hidden" + | "image" + | "month" + | "number" + | "password" + | "radio" + | "range" + | "reset" + | "search" + | "submit" + | "tel" + | "text" + | "time" + | "url" + | "week" + | (string & {}); + + type AutoFillAddressKind = "billing" | "shipping"; + type AutoFillBase = "" | "off" | "on"; + type AutoFillContactField = + | "email" + | "tel" + | "tel-area-code" + | "tel-country-code" + | "tel-extension" + | "tel-local" + | "tel-local-prefix" + | "tel-local-suffix" + | "tel-national"; + type AutoFillContactKind = "home" | "mobile" | "work"; + type AutoFillCredentialField = "webauthn"; + type AutoFillNormalField = + | "additional-name" + | "address-level1" + | "address-level2" + | "address-level3" + | "address-level4" + | "address-line1" + | "address-line2" + | "address-line3" + | "bday-day" + | "bday-month" + | "bday-year" + | "cc-csc" + | "cc-exp" + | "cc-exp-month" + | "cc-exp-year" + | "cc-family-name" + | "cc-given-name" + | "cc-name" + | "cc-number" + | "cc-type" + | "country" + | "country-name" + | "current-password" + | "family-name" + | "given-name" + | "honorific-prefix" + | "honorific-suffix" + | "name" + | "new-password" + | "one-time-code" + | "organization" + | "postal-code" + | "street-address" + | "transaction-amount" + | "transaction-currency" + | "username"; + type OptionalPrefixToken = `${T} ` | ""; + type OptionalPostfixToken = ` ${T}` | ""; + type AutoFillField = AutoFillNormalField | `${OptionalPrefixToken}${AutoFillContactField}`; + type AutoFillSection = `section-${string}`; + type AutoFill = + | AutoFillBase + | `${OptionalPrefixToken}${OptionalPrefixToken< + AutoFillAddressKind + >}${AutoFillField}${OptionalPostfixToken}`; + type HTMLInputAutoCompleteAttribute = AutoFill | (string & {}); + + interface InputHTMLAttributes extends HTMLAttributes { + accept?: string | undefined; + alt?: string | undefined; + autoComplete?: HTMLInputAutoCompleteAttribute | undefined; + capture?: boolean | "user" | "environment" | undefined; // https://www.w3.org/TR/html-media-capture/#the-capture-attribute + checked?: boolean | undefined; + disabled?: boolean | undefined; + enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined; + form?: string | undefined; + formAction?: + | string + | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS[ + keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS + ] + | undefined; + formEncType?: string | undefined; + formMethod?: string | undefined; + formNoValidate?: boolean | undefined; + formTarget?: string | undefined; + height?: number | string | undefined; + list?: string | undefined; + max?: number | string | undefined; + maxLength?: number | undefined; + min?: number | string | undefined; + minLength?: number | undefined; + multiple?: boolean | undefined; + name?: string | undefined; + pattern?: string | undefined; + placeholder?: string | undefined; + readOnly?: boolean | undefined; + required?: boolean | undefined; + size?: number | undefined; + src?: string | undefined; + step?: number | string | undefined; + type?: HTMLInputTypeAttribute | undefined; + value?: string | readonly string[] | number | undefined; + width?: number | string | undefined; + + onChange?: ChangeEventHandler | undefined; + } + + interface KeygenHTMLAttributes extends HTMLAttributes { + challenge?: string | undefined; + disabled?: boolean | undefined; + form?: string | undefined; + keyType?: string | undefined; + keyParams?: string | undefined; + name?: string | undefined; + } + + interface LabelHTMLAttributes extends HTMLAttributes { + form?: string | undefined; + htmlFor?: string | undefined; + } + + interface LiHTMLAttributes extends HTMLAttributes { + value?: string | readonly string[] | number | undefined; + } + + interface LinkHTMLAttributes extends HTMLAttributes { + as?: string | undefined; + crossOrigin?: CrossOrigin; + fetchPriority?: "high" | "low" | "auto"; + href?: string | undefined; + hrefLang?: string | undefined; + integrity?: string | undefined; + media?: string | undefined; + imageSrcSet?: string | undefined; + imageSizes?: string | undefined; + referrerPolicy?: HTMLAttributeReferrerPolicy | undefined; + sizes?: string | undefined; + type?: string | undefined; + charSet?: string | undefined; + } + + interface MapHTMLAttributes extends HTMLAttributes { + name?: string | undefined; + } + + interface MenuHTMLAttributes extends HTMLAttributes { + type?: string | undefined; + } + + interface MediaHTMLAttributes extends HTMLAttributes { + autoPlay?: boolean | undefined; + controls?: boolean | undefined; + controlsList?: string | undefined; + crossOrigin?: CrossOrigin; + loop?: boolean | undefined; + mediaGroup?: string | undefined; + muted?: boolean | undefined; + playsInline?: boolean | undefined; + preload?: string | undefined; + src?: string | undefined; + } + + interface MetaHTMLAttributes extends HTMLAttributes { + charSet?: string | undefined; + content?: string | undefined; + httpEquiv?: string | undefined; + media?: string | undefined; + name?: string | undefined; + } + + interface MeterHTMLAttributes extends HTMLAttributes { + form?: string | undefined; + high?: number | undefined; + low?: number | undefined; + max?: number | string | undefined; + min?: number | string | undefined; + optimum?: number | undefined; + value?: string | readonly string[] | number | undefined; + } + + interface QuoteHTMLAttributes extends HTMLAttributes { + cite?: string | undefined; + } + + interface ObjectHTMLAttributes extends HTMLAttributes { + classID?: string | undefined; + data?: string | undefined; + form?: string | undefined; + height?: number | string | undefined; + name?: string | undefined; + type?: string | undefined; + useMap?: string | undefined; + width?: number | string | undefined; + wmode?: string | undefined; + } + + interface OlHTMLAttributes extends HTMLAttributes { + reversed?: boolean | undefined; + start?: number | undefined; + type?: "1" | "a" | "A" | "i" | "I" | undefined; + } + + interface OptgroupHTMLAttributes extends HTMLAttributes { + disabled?: boolean | undefined; + label?: string | undefined; + } + + interface OptionHTMLAttributes extends HTMLAttributes { + disabled?: boolean | undefined; + label?: string | undefined; + selected?: boolean | undefined; + value?: string | readonly string[] | number | undefined; + } + + interface OutputHTMLAttributes extends HTMLAttributes { + form?: string | undefined; + htmlFor?: string | undefined; + name?: string | undefined; + } + + interface ParamHTMLAttributes extends HTMLAttributes { + name?: string | undefined; + value?: string | readonly string[] | number | undefined; + } + + interface ProgressHTMLAttributes extends HTMLAttributes { + max?: number | string | undefined; + value?: string | readonly string[] | number | undefined; + } + + interface SlotHTMLAttributes extends HTMLAttributes { + name?: string | undefined; + } + + interface ScriptHTMLAttributes extends HTMLAttributes { + async?: boolean | undefined; + /** @deprecated */ + charSet?: string | undefined; + crossOrigin?: CrossOrigin; + defer?: boolean | undefined; + integrity?: string | undefined; + noModule?: boolean | undefined; + referrerPolicy?: HTMLAttributeReferrerPolicy | undefined; + src?: string | undefined; + type?: string | undefined; + } + + interface SelectHTMLAttributes extends HTMLAttributes { + autoComplete?: string | undefined; + disabled?: boolean | undefined; + form?: string | undefined; + multiple?: boolean | undefined; + name?: string | undefined; + required?: boolean | undefined; + size?: number | undefined; + value?: string | readonly string[] | number | undefined; + onChange?: ChangeEventHandler | undefined; + } + + interface SourceHTMLAttributes extends HTMLAttributes { + height?: number | string | undefined; + media?: string | undefined; + sizes?: string | undefined; + src?: string | undefined; + srcSet?: string | undefined; + type?: string | undefined; + width?: number | string | undefined; + } + + interface StyleHTMLAttributes extends HTMLAttributes { + media?: string | undefined; + scoped?: boolean | undefined; + type?: string | undefined; + } + + interface TableHTMLAttributes extends HTMLAttributes { + align?: "left" | "center" | "right" | undefined; + bgcolor?: string | undefined; + border?: number | undefined; + cellPadding?: number | string | undefined; + cellSpacing?: number | string | undefined; + frame?: boolean | undefined; + rules?: "none" | "groups" | "rows" | "columns" | "all" | undefined; + summary?: string | undefined; + width?: number | string | undefined; + } + + interface TextareaHTMLAttributes extends HTMLAttributes { + autoComplete?: string | undefined; + cols?: number | undefined; + dirName?: string | undefined; + disabled?: boolean | undefined; + form?: string | undefined; + maxLength?: number | undefined; + minLength?: number | undefined; + name?: string | undefined; + placeholder?: string | undefined; + readOnly?: boolean | undefined; + required?: boolean | undefined; + rows?: number | undefined; + value?: string | readonly string[] | number | undefined; + wrap?: string | undefined; + + onChange?: ChangeEventHandler | undefined; + } + + interface TdHTMLAttributes extends HTMLAttributes { + align?: "left" | "center" | "right" | "justify" | "char" | undefined; + colSpan?: number | undefined; + headers?: string | undefined; + rowSpan?: number | undefined; + scope?: string | undefined; + abbr?: string | undefined; + height?: number | string | undefined; + width?: number | string | undefined; + valign?: "top" | "middle" | "bottom" | "baseline" | undefined; + } + + interface ThHTMLAttributes extends HTMLAttributes { + align?: "left" | "center" | "right" | "justify" | "char" | undefined; + colSpan?: number | undefined; + headers?: string | undefined; + rowSpan?: number | undefined; + scope?: string | undefined; + abbr?: string | undefined; + } + + interface TimeHTMLAttributes extends HTMLAttributes { + dateTime?: string | undefined; + } + + interface TrackHTMLAttributes extends HTMLAttributes { + default?: boolean | undefined; + kind?: string | undefined; + label?: string | undefined; + src?: string | undefined; + srcLang?: string | undefined; + } + + interface VideoHTMLAttributes extends MediaHTMLAttributes { + height?: number | string | undefined; + playsInline?: boolean | undefined; + poster?: string | undefined; + width?: number | string | undefined; + disablePictureInPicture?: boolean | undefined; + disableRemotePlayback?: boolean | undefined; + } + + // this list is "complete" in that it contains every SVG attribute + // that React supports, but the types can be improved. + // Full list here: https://facebook.github.io/react/docs/dom-elements.html + // + // The three broad type categories are (in order of restrictiveness): + // - "number | string" + // - "string" + // - union of string literals + interface SVGAttributes extends AriaAttributes, DOMAttributes { + // React-specific Attributes + suppressHydrationWarning?: boolean | undefined; + + // Attributes which also defined in HTMLAttributes + // See comment in SVGDOMPropertyConfig.js + className?: string | undefined; + color?: string | undefined; + height?: number | string | undefined; + id?: string | undefined; + lang?: string | undefined; + max?: number | string | undefined; + media?: string | undefined; + method?: string | undefined; + min?: number | string | undefined; + name?: string | undefined; + style?: CSSProperties | undefined; + target?: string | undefined; + type?: string | undefined; + width?: number | string | undefined; + + // Other HTML properties supported by SVG elements in browsers + role?: AriaRole | undefined; + tabIndex?: number | undefined; + crossOrigin?: CrossOrigin; + + // SVG Specific attributes + accentHeight?: number | string | undefined; + accumulate?: "none" | "sum" | undefined; + additive?: "replace" | "sum" | undefined; + alignmentBaseline?: + | "auto" + | "baseline" + | "before-edge" + | "text-before-edge" + | "middle" + | "central" + | "after-edge" + | "text-after-edge" + | "ideographic" + | "alphabetic" + | "hanging" + | "mathematical" + | "inherit" + | undefined; + allowReorder?: "no" | "yes" | undefined; + alphabetic?: number | string | undefined; + amplitude?: number | string | undefined; + arabicForm?: "initial" | "medial" | "terminal" | "isolated" | undefined; + ascent?: number | string | undefined; + attributeName?: string | undefined; + attributeType?: string | undefined; + autoReverse?: Booleanish | undefined; + azimuth?: number | string | undefined; + baseFrequency?: number | string | undefined; + baselineShift?: number | string | undefined; + baseProfile?: number | string | undefined; + bbox?: number | string | undefined; + begin?: number | string | undefined; + bias?: number | string | undefined; + by?: number | string | undefined; + calcMode?: number | string | undefined; + capHeight?: number | string | undefined; + clip?: number | string | undefined; + clipPath?: string | undefined; + clipPathUnits?: number | string | undefined; + clipRule?: number | string | undefined; + colorInterpolation?: number | string | undefined; + colorInterpolationFilters?: "auto" | "sRGB" | "linearRGB" | "inherit" | undefined; + colorProfile?: number | string | undefined; + colorRendering?: number | string | undefined; + contentScriptType?: number | string | undefined; + contentStyleType?: number | string | undefined; + cursor?: number | string | undefined; + cx?: number | string | undefined; + cy?: number | string | undefined; + d?: string | undefined; + decelerate?: number | string | undefined; + descent?: number | string | undefined; + diffuseConstant?: number | string | undefined; + direction?: number | string | undefined; + display?: number | string | undefined; + divisor?: number | string | undefined; + dominantBaseline?: number | string | undefined; + dur?: number | string | undefined; + dx?: number | string | undefined; + dy?: number | string | undefined; + edgeMode?: number | string | undefined; + elevation?: number | string | undefined; + enableBackground?: number | string | undefined; + end?: number | string | undefined; + exponent?: number | string | undefined; + externalResourcesRequired?: Booleanish | undefined; + fill?: string | undefined; + fillOpacity?: number | string | undefined; + fillRule?: "nonzero" | "evenodd" | "inherit" | undefined; + filter?: string | undefined; + filterRes?: number | string | undefined; + filterUnits?: number | string | undefined; + floodColor?: number | string | undefined; + floodOpacity?: number | string | undefined; + focusable?: Booleanish | "auto" | undefined; + fontFamily?: string | undefined; + fontSize?: number | string | undefined; + fontSizeAdjust?: number | string | undefined; + fontStretch?: number | string | undefined; + fontStyle?: number | string | undefined; + fontVariant?: number | string | undefined; + fontWeight?: number | string | undefined; + format?: number | string | undefined; + fr?: number | string | undefined; + from?: number | string | undefined; + fx?: number | string | undefined; + fy?: number | string | undefined; + g1?: number | string | undefined; + g2?: number | string | undefined; + glyphName?: number | string | undefined; + glyphOrientationHorizontal?: number | string | undefined; + glyphOrientationVertical?: number | string | undefined; + glyphRef?: number | string | undefined; + gradientTransform?: string | undefined; + gradientUnits?: string | undefined; + hanging?: number | string | undefined; + horizAdvX?: number | string | undefined; + horizOriginX?: number | string | undefined; + href?: string | undefined; + ideographic?: number | string | undefined; + imageRendering?: number | string | undefined; + in2?: number | string | undefined; + in?: string | undefined; + intercept?: number | string | undefined; + k1?: number | string | undefined; + k2?: number | string | undefined; + k3?: number | string | undefined; + k4?: number | string | undefined; + k?: number | string | undefined; + kernelMatrix?: number | string | undefined; + kernelUnitLength?: number | string | undefined; + kerning?: number | string | undefined; + keyPoints?: number | string | undefined; + keySplines?: number | string | undefined; + keyTimes?: number | string | undefined; + lengthAdjust?: number | string | undefined; + letterSpacing?: number | string | undefined; + lightingColor?: number | string | undefined; + limitingConeAngle?: number | string | undefined; + local?: number | string | undefined; + markerEnd?: string | undefined; + markerHeight?: number | string | undefined; + markerMid?: string | undefined; + markerStart?: string | undefined; + markerUnits?: number | string | undefined; + markerWidth?: number | string | undefined; + mask?: string | undefined; + maskContentUnits?: number | string | undefined; + maskUnits?: number | string | undefined; + mathematical?: number | string | undefined; + mode?: number | string | undefined; + numOctaves?: number | string | undefined; + offset?: number | string | undefined; + opacity?: number | string | undefined; + operator?: number | string | undefined; + order?: number | string | undefined; + orient?: number | string | undefined; + orientation?: number | string | undefined; + origin?: number | string | undefined; + overflow?: number | string | undefined; + overlinePosition?: number | string | undefined; + overlineThickness?: number | string | undefined; + paintOrder?: number | string | undefined; + panose1?: number | string | undefined; + path?: string | undefined; + pathLength?: number | string | undefined; + patternContentUnits?: string | undefined; + patternTransform?: number | string | undefined; + patternUnits?: string | undefined; + pointerEvents?: number | string | undefined; + points?: string | undefined; + pointsAtX?: number | string | undefined; + pointsAtY?: number | string | undefined; + pointsAtZ?: number | string | undefined; + preserveAlpha?: Booleanish | undefined; + preserveAspectRatio?: string | undefined; + primitiveUnits?: number | string | undefined; + r?: number | string | undefined; + radius?: number | string | undefined; + refX?: number | string | undefined; + refY?: number | string | undefined; + renderingIntent?: number | string | undefined; + repeatCount?: number | string | undefined; + repeatDur?: number | string | undefined; + requiredExtensions?: number | string | undefined; + requiredFeatures?: number | string | undefined; + restart?: number | string | undefined; + result?: string | undefined; + rotate?: number | string | undefined; + rx?: number | string | undefined; + ry?: number | string | undefined; + scale?: number | string | undefined; + seed?: number | string | undefined; + shapeRendering?: number | string | undefined; + slope?: number | string | undefined; + spacing?: number | string | undefined; + specularConstant?: number | string | undefined; + specularExponent?: number | string | undefined; + speed?: number | string | undefined; + spreadMethod?: string | undefined; + startOffset?: number | string | undefined; + stdDeviation?: number | string | undefined; + stemh?: number | string | undefined; + stemv?: number | string | undefined; + stitchTiles?: number | string | undefined; + stopColor?: string | undefined; + stopOpacity?: number | string | undefined; + strikethroughPosition?: number | string | undefined; + strikethroughThickness?: number | string | undefined; + string?: number | string | undefined; + stroke?: string | undefined; + strokeDasharray?: string | number | undefined; + strokeDashoffset?: string | number | undefined; + strokeLinecap?: "butt" | "round" | "square" | "inherit" | undefined; + strokeLinejoin?: "miter" | "round" | "bevel" | "inherit" | undefined; + strokeMiterlimit?: number | string | undefined; + strokeOpacity?: number | string | undefined; + strokeWidth?: number | string | undefined; + surfaceScale?: number | string | undefined; + systemLanguage?: number | string | undefined; + tableValues?: number | string | undefined; + targetX?: number | string | undefined; + targetY?: number | string | undefined; + textAnchor?: string | undefined; + textDecoration?: number | string | undefined; + textLength?: number | string | undefined; + textRendering?: number | string | undefined; + to?: number | string | undefined; + transform?: string | undefined; + u1?: number | string | undefined; + u2?: number | string | undefined; + underlinePosition?: number | string | undefined; + underlineThickness?: number | string | undefined; + unicode?: number | string | undefined; + unicodeBidi?: number | string | undefined; + unicodeRange?: number | string | undefined; + unitsPerEm?: number | string | undefined; + vAlphabetic?: number | string | undefined; + values?: string | undefined; + vectorEffect?: number | string | undefined; + version?: string | undefined; + vertAdvY?: number | string | undefined; + vertOriginX?: number | string | undefined; + vertOriginY?: number | string | undefined; + vHanging?: number | string | undefined; + vIdeographic?: number | string | undefined; + viewBox?: string | undefined; + viewTarget?: number | string | undefined; + visibility?: number | string | undefined; + vMathematical?: number | string | undefined; + widths?: number | string | undefined; + wordSpacing?: number | string | undefined; + writingMode?: number | string | undefined; + x1?: number | string | undefined; + x2?: number | string | undefined; + x?: number | string | undefined; + xChannelSelector?: string | undefined; + xHeight?: number | string | undefined; + xlinkActuate?: string | undefined; + xlinkArcrole?: string | undefined; + xlinkHref?: string | undefined; + xlinkRole?: string | undefined; + xlinkShow?: string | undefined; + xlinkTitle?: string | undefined; + xlinkType?: string | undefined; + xmlBase?: string | undefined; + xmlLang?: string | undefined; + xmlns?: string | undefined; + xmlnsXlink?: string | undefined; + xmlSpace?: string | undefined; + y1?: number | string | undefined; + y2?: number | string | undefined; + y?: number | string | undefined; + yChannelSelector?: string | undefined; + z?: number | string | undefined; + zoomAndPan?: string | undefined; + } + + interface WebViewHTMLAttributes extends HTMLAttributes { + allowFullScreen?: boolean | undefined; + allowpopups?: boolean | undefined; + autosize?: boolean | undefined; + blinkfeatures?: string | undefined; + disableblinkfeatures?: string | undefined; + disableguestresize?: boolean | undefined; + disablewebsecurity?: boolean | undefined; + guestinstance?: string | undefined; + httpreferrer?: string | undefined; + nodeintegration?: boolean | undefined; + partition?: string | undefined; + plugins?: boolean | undefined; + preload?: string | undefined; + src?: string | undefined; + useragent?: string | undefined; + webpreferences?: string | undefined; + } + + // + // React.DOM + // ---------------------------------------------------------------------- + + interface ReactHTML { + a: DetailedHTMLFactory, HTMLAnchorElement>; + abbr: DetailedHTMLFactory, HTMLElement>; + address: DetailedHTMLFactory, HTMLElement>; + area: DetailedHTMLFactory, HTMLAreaElement>; + article: DetailedHTMLFactory, HTMLElement>; + aside: DetailedHTMLFactory, HTMLElement>; + audio: DetailedHTMLFactory, HTMLAudioElement>; + b: DetailedHTMLFactory, HTMLElement>; + base: DetailedHTMLFactory, HTMLBaseElement>; + bdi: DetailedHTMLFactory, HTMLElement>; + bdo: DetailedHTMLFactory, HTMLElement>; + big: DetailedHTMLFactory, HTMLElement>; + blockquote: DetailedHTMLFactory, HTMLQuoteElement>; + body: DetailedHTMLFactory, HTMLBodyElement>; + br: DetailedHTMLFactory, HTMLBRElement>; + button: DetailedHTMLFactory, HTMLButtonElement>; + canvas: DetailedHTMLFactory, HTMLCanvasElement>; + caption: DetailedHTMLFactory, HTMLElement>; + center: DetailedHTMLFactory, HTMLElement>; + cite: DetailedHTMLFactory, HTMLElement>; + code: DetailedHTMLFactory, HTMLElement>; + col: DetailedHTMLFactory, HTMLTableColElement>; + colgroup: DetailedHTMLFactory, HTMLTableColElement>; + data: DetailedHTMLFactory, HTMLDataElement>; + datalist: DetailedHTMLFactory, HTMLDataListElement>; + dd: DetailedHTMLFactory, HTMLElement>; + del: DetailedHTMLFactory, HTMLModElement>; + details: DetailedHTMLFactory, HTMLDetailsElement>; + dfn: DetailedHTMLFactory, HTMLElement>; + dialog: DetailedHTMLFactory, HTMLDialogElement>; + div: DetailedHTMLFactory, HTMLDivElement>; + dl: DetailedHTMLFactory, HTMLDListElement>; + dt: DetailedHTMLFactory, HTMLElement>; + em: DetailedHTMLFactory, HTMLElement>; + embed: DetailedHTMLFactory, HTMLEmbedElement>; + fieldset: DetailedHTMLFactory, HTMLFieldSetElement>; + figcaption: DetailedHTMLFactory, HTMLElement>; + figure: DetailedHTMLFactory, HTMLElement>; + footer: DetailedHTMLFactory, HTMLElement>; + form: DetailedHTMLFactory, HTMLFormElement>; + h1: DetailedHTMLFactory, HTMLHeadingElement>; + h2: DetailedHTMLFactory, HTMLHeadingElement>; + h3: DetailedHTMLFactory, HTMLHeadingElement>; + h4: DetailedHTMLFactory, HTMLHeadingElement>; + h5: DetailedHTMLFactory, HTMLHeadingElement>; + h6: DetailedHTMLFactory, HTMLHeadingElement>; + head: DetailedHTMLFactory, HTMLHeadElement>; + header: DetailedHTMLFactory, HTMLElement>; + hgroup: DetailedHTMLFactory, HTMLElement>; + hr: DetailedHTMLFactory, HTMLHRElement>; + html: DetailedHTMLFactory, HTMLHtmlElement>; + i: DetailedHTMLFactory, HTMLElement>; + iframe: DetailedHTMLFactory, HTMLIFrameElement>; + img: DetailedHTMLFactory, HTMLImageElement>; + input: DetailedHTMLFactory, HTMLInputElement>; + ins: DetailedHTMLFactory, HTMLModElement>; + kbd: DetailedHTMLFactory, HTMLElement>; + keygen: DetailedHTMLFactory, HTMLElement>; + label: DetailedHTMLFactory, HTMLLabelElement>; + legend: DetailedHTMLFactory, HTMLLegendElement>; + li: DetailedHTMLFactory, HTMLLIElement>; + link: DetailedHTMLFactory, HTMLLinkElement>; + main: DetailedHTMLFactory, HTMLElement>; + map: DetailedHTMLFactory, HTMLMapElement>; + mark: DetailedHTMLFactory, HTMLElement>; + menu: DetailedHTMLFactory, HTMLElement>; + menuitem: DetailedHTMLFactory, HTMLElement>; + meta: DetailedHTMLFactory, HTMLMetaElement>; + meter: DetailedHTMLFactory, HTMLMeterElement>; + nav: DetailedHTMLFactory, HTMLElement>; + noscript: DetailedHTMLFactory, HTMLElement>; + object: DetailedHTMLFactory, HTMLObjectElement>; + ol: DetailedHTMLFactory, HTMLOListElement>; + optgroup: DetailedHTMLFactory, HTMLOptGroupElement>; + option: DetailedHTMLFactory, HTMLOptionElement>; + output: DetailedHTMLFactory, HTMLOutputElement>; + p: DetailedHTMLFactory, HTMLParagraphElement>; + param: DetailedHTMLFactory, HTMLParamElement>; + picture: DetailedHTMLFactory, HTMLElement>; + pre: DetailedHTMLFactory, HTMLPreElement>; + progress: DetailedHTMLFactory, HTMLProgressElement>; + q: DetailedHTMLFactory, HTMLQuoteElement>; + rp: DetailedHTMLFactory, HTMLElement>; + rt: DetailedHTMLFactory, HTMLElement>; + ruby: DetailedHTMLFactory, HTMLElement>; + s: DetailedHTMLFactory, HTMLElement>; + samp: DetailedHTMLFactory, HTMLElement>; + search: DetailedHTMLFactory, HTMLElement>; + slot: DetailedHTMLFactory, HTMLSlotElement>; + script: DetailedHTMLFactory, HTMLScriptElement>; + section: DetailedHTMLFactory, HTMLElement>; + select: DetailedHTMLFactory, HTMLSelectElement>; + small: DetailedHTMLFactory, HTMLElement>; + source: DetailedHTMLFactory, HTMLSourceElement>; + span: DetailedHTMLFactory, HTMLSpanElement>; + strong: DetailedHTMLFactory, HTMLElement>; + style: DetailedHTMLFactory, HTMLStyleElement>; + sub: DetailedHTMLFactory, HTMLElement>; + summary: DetailedHTMLFactory, HTMLElement>; + sup: DetailedHTMLFactory, HTMLElement>; + table: DetailedHTMLFactory, HTMLTableElement>; + template: DetailedHTMLFactory, HTMLTemplateElement>; + tbody: DetailedHTMLFactory, HTMLTableSectionElement>; + td: DetailedHTMLFactory, HTMLTableDataCellElement>; + textarea: DetailedHTMLFactory, HTMLTextAreaElement>; + tfoot: DetailedHTMLFactory, HTMLTableSectionElement>; + th: DetailedHTMLFactory, HTMLTableHeaderCellElement>; + thead: DetailedHTMLFactory, HTMLTableSectionElement>; + time: DetailedHTMLFactory, HTMLTimeElement>; + title: DetailedHTMLFactory, HTMLTitleElement>; + tr: DetailedHTMLFactory, HTMLTableRowElement>; + track: DetailedHTMLFactory, HTMLTrackElement>; + u: DetailedHTMLFactory, HTMLElement>; + ul: DetailedHTMLFactory, HTMLUListElement>; + "var": DetailedHTMLFactory, HTMLElement>; + video: DetailedHTMLFactory, HTMLVideoElement>; + wbr: DetailedHTMLFactory, HTMLElement>; + webview: DetailedHTMLFactory, HTMLWebViewElement>; + } + + interface ReactSVG { + animate: SVGFactory; + circle: SVGFactory; + clipPath: SVGFactory; + defs: SVGFactory; + desc: SVGFactory; + ellipse: SVGFactory; + feBlend: SVGFactory; + feColorMatrix: SVGFactory; + feComponentTransfer: SVGFactory; + feComposite: SVGFactory; + feConvolveMatrix: SVGFactory; + feDiffuseLighting: SVGFactory; + feDisplacementMap: SVGFactory; + feDistantLight: SVGFactory; + feDropShadow: SVGFactory; + feFlood: SVGFactory; + feFuncA: SVGFactory; + feFuncB: SVGFactory; + feFuncG: SVGFactory; + feFuncR: SVGFactory; + feGaussianBlur: SVGFactory; + feImage: SVGFactory; + feMerge: SVGFactory; + feMergeNode: SVGFactory; + feMorphology: SVGFactory; + feOffset: SVGFactory; + fePointLight: SVGFactory; + feSpecularLighting: SVGFactory; + feSpotLight: SVGFactory; + feTile: SVGFactory; + feTurbulence: SVGFactory; + filter: SVGFactory; + foreignObject: SVGFactory; + g: SVGFactory; + image: SVGFactory; + line: SVGFactory; + linearGradient: SVGFactory; + marker: SVGFactory; + mask: SVGFactory; + metadata: SVGFactory; + path: SVGFactory; + pattern: SVGFactory; + polygon: SVGFactory; + polyline: SVGFactory; + radialGradient: SVGFactory; + rect: SVGFactory; + stop: SVGFactory; + svg: SVGFactory; + switch: SVGFactory; + symbol: SVGFactory; + text: SVGFactory; + textPath: SVGFactory; + tspan: SVGFactory; + use: SVGFactory; + view: SVGFactory; + } + + interface ReactDOM extends ReactHTML, ReactSVG {} + + // + // React.PropTypes + // ---------------------------------------------------------------------- + + /** + * @deprecated Use `Validator` from the ´prop-types` instead. + */ + type Validator = PropTypes.Validator; + + /** + * @deprecated Use `Requireable` from the ´prop-types` instead. + */ + type Requireable = PropTypes.Requireable; + + /** + * @deprecated Use `ValidationMap` from the ´prop-types` instead. + */ + type ValidationMap = PropTypes.ValidationMap; + + /** + * @deprecated Use `WeakValidationMap` from the ´prop-types` instead. + */ + type WeakValidationMap = { + [K in keyof T]?: null extends T[K] ? Validator + : undefined extends T[K] ? Validator + : Validator; + }; + + /** + * @deprecated Use `PropTypes.*` where `PropTypes` comes from `import * as PropTypes from 'prop-types'` instead. + */ + interface ReactPropTypes { + any: typeof PropTypes.any; + array: typeof PropTypes.array; + bool: typeof PropTypes.bool; + func: typeof PropTypes.func; + number: typeof PropTypes.number; + object: typeof PropTypes.object; + string: typeof PropTypes.string; + node: typeof PropTypes.node; + element: typeof PropTypes.element; + instanceOf: typeof PropTypes.instanceOf; + oneOf: typeof PropTypes.oneOf; + oneOfType: typeof PropTypes.oneOfType; + arrayOf: typeof PropTypes.arrayOf; + objectOf: typeof PropTypes.objectOf; + shape: typeof PropTypes.shape; + exact: typeof PropTypes.exact; + } + + // + // React.Children + // ---------------------------------------------------------------------- + + /** + * @deprecated - Use `typeof React.Children` instead. + */ + // Sync with type of `const Children`. + interface ReactChildren { + map( + children: C | readonly C[], + fn: (child: C, index: number) => T, + ): C extends null | undefined ? C : Array>; + forEach(children: C | readonly C[], fn: (child: C, index: number) => void): void; + count(children: any): number; + only(children: C): C extends any[] ? never : C; + toArray(children: ReactNode | ReactNode[]): Array>; + } + + // + // Browser Interfaces + // https://github.com/nikeee/2048-typescript/blob/master/2048/js/touch.d.ts + // ---------------------------------------------------------------------- + + interface AbstractView { + styleMedia: StyleMedia; + document: Document; + } + + interface Touch { + identifier: number; + target: EventTarget; + screenX: number; + screenY: number; + clientX: number; + clientY: number; + pageX: number; + pageY: number; + } + + interface TouchList { + [index: number]: Touch; + length: number; + item(index: number): Touch; + identifiedTouch(identifier: number): Touch; + } + + // + // Error Interfaces + // ---------------------------------------------------------------------- + interface ErrorInfo { + /** + * Captures which component contained the exception, and its ancestors. + */ + componentStack?: string | null; + digest?: string | null; + } + + // Keep in sync with JSX namespace in ./jsx-runtime.d.ts and ./jsx-dev-runtime.d.ts + namespace JSX { + interface Element extends GlobalJSXElement {} + interface ElementClass extends GlobalJSXElementClass {} + interface ElementAttributesProperty extends GlobalJSXElementAttributesProperty {} + interface ElementChildrenAttribute extends GlobalJSXElementChildrenAttribute {} + + type LibraryManagedAttributes = GlobalJSXLibraryManagedAttributes; + + interface IntrinsicAttributes extends GlobalJSXIntrinsicAttributes {} + interface IntrinsicClassAttributes extends GlobalJSXIntrinsicClassAttributes {} + interface IntrinsicElements extends GlobalJSXIntrinsicElements {} + } +} + +// naked 'any' type in a conditional type will short circuit and union both the then/else branches +// so boolean is only resolved for T = any +type IsExactlyAny = boolean extends (T extends never ? true : false) ? true : false; + +type ExactlyAnyPropertyKeys = { [K in keyof T]: IsExactlyAny extends true ? K : never }[keyof T]; +type NotExactlyAnyPropertyKeys = Exclude>; + +// Try to resolve ill-defined props like for JS users: props can be any, or sometimes objects with properties of type any +type MergePropTypes = + // Distribute over P in case it is a union type + P extends any + // If props is type any, use propTypes definitions + ? IsExactlyAny

      extends true ? T + // If declared props have indexed properties, ignore inferred props entirely as keyof gets widened + : string extends keyof P ? P + // Prefer declared types which are not exactly any + : + & Pick> + // For props which are exactly any, use the type inferred from propTypes if present + & Pick>> + // Keep leftover props not specified in propTypes + & Pick> + : never; + +type InexactPartial = { [K in keyof T]?: T[K] | undefined }; + +// Any prop that has a default prop becomes optional, but its type is unchanged +// Undeclared default props are augmented into the resulting allowable attributes +// If declared props have indexed properties, ignore default props entirely as keyof gets widened +// Wrap in an outer-level conditional type to allow distribution over props that are unions +type Defaultize = P extends any ? string extends keyof P ? P + : + & Pick> + & InexactPartial>> + & InexactPartial>> + : never; + +type ReactManagedAttributes = C extends { propTypes: infer T; defaultProps: infer D } + ? Defaultize>, D> + : C extends { propTypes: infer T } ? MergePropTypes> + : C extends { defaultProps: infer D } ? Defaultize + : P; + +declare global { + /** + * @deprecated Use `React.JSX` instead of the global `JSX` namespace. + */ + namespace JSX { + interface Element extends React.ReactElement {} + interface ElementClass extends React.Component { + render(): React.ReactNode; + } + interface ElementAttributesProperty { + props: {}; + } + interface ElementChildrenAttribute { + children: {}; + } + + // We can't recurse forever because `type` can't be self-referential; + // let's assume it's reasonable to do a single React.lazy() around a single React.memo() / vice-versa + type LibraryManagedAttributes = C extends + React.MemoExoticComponent | React.LazyExoticComponent + ? T extends React.MemoExoticComponent | React.LazyExoticComponent + ? ReactManagedAttributes + : ReactManagedAttributes + : ReactManagedAttributes; + + interface IntrinsicAttributes extends React.Attributes {} + interface IntrinsicClassAttributes extends React.ClassAttributes {} + + interface IntrinsicElements { + // HTML + a: React.DetailedHTMLProps, HTMLAnchorElement>; + abbr: React.DetailedHTMLProps, HTMLElement>; + address: React.DetailedHTMLProps, HTMLElement>; + area: React.DetailedHTMLProps, HTMLAreaElement>; + article: React.DetailedHTMLProps, HTMLElement>; + aside: React.DetailedHTMLProps, HTMLElement>; + audio: React.DetailedHTMLProps, HTMLAudioElement>; + b: React.DetailedHTMLProps, HTMLElement>; + base: React.DetailedHTMLProps, HTMLBaseElement>; + bdi: React.DetailedHTMLProps, HTMLElement>; + bdo: React.DetailedHTMLProps, HTMLElement>; + big: React.DetailedHTMLProps, HTMLElement>; + blockquote: React.DetailedHTMLProps, HTMLQuoteElement>; + body: React.DetailedHTMLProps, HTMLBodyElement>; + br: React.DetailedHTMLProps, HTMLBRElement>; + button: React.DetailedHTMLProps, HTMLButtonElement>; + canvas: React.DetailedHTMLProps, HTMLCanvasElement>; + caption: React.DetailedHTMLProps, HTMLElement>; + center: React.DetailedHTMLProps, HTMLElement>; + cite: React.DetailedHTMLProps, HTMLElement>; + code: React.DetailedHTMLProps, HTMLElement>; + col: React.DetailedHTMLProps, HTMLTableColElement>; + colgroup: React.DetailedHTMLProps, HTMLTableColElement>; + data: React.DetailedHTMLProps, HTMLDataElement>; + datalist: React.DetailedHTMLProps, HTMLDataListElement>; + dd: React.DetailedHTMLProps, HTMLElement>; + del: React.DetailedHTMLProps, HTMLModElement>; + details: React.DetailedHTMLProps, HTMLDetailsElement>; + dfn: React.DetailedHTMLProps, HTMLElement>; + dialog: React.DetailedHTMLProps, HTMLDialogElement>; + div: React.DetailedHTMLProps, HTMLDivElement>; + dl: React.DetailedHTMLProps, HTMLDListElement>; + dt: React.DetailedHTMLProps, HTMLElement>; + em: React.DetailedHTMLProps, HTMLElement>; + embed: React.DetailedHTMLProps, HTMLEmbedElement>; + fieldset: React.DetailedHTMLProps, HTMLFieldSetElement>; + figcaption: React.DetailedHTMLProps, HTMLElement>; + figure: React.DetailedHTMLProps, HTMLElement>; + footer: React.DetailedHTMLProps, HTMLElement>; + form: React.DetailedHTMLProps, HTMLFormElement>; + h1: React.DetailedHTMLProps, HTMLHeadingElement>; + h2: React.DetailedHTMLProps, HTMLHeadingElement>; + h3: React.DetailedHTMLProps, HTMLHeadingElement>; + h4: React.DetailedHTMLProps, HTMLHeadingElement>; + h5: React.DetailedHTMLProps, HTMLHeadingElement>; + h6: React.DetailedHTMLProps, HTMLHeadingElement>; + head: React.DetailedHTMLProps, HTMLHeadElement>; + header: React.DetailedHTMLProps, HTMLElement>; + hgroup: React.DetailedHTMLProps, HTMLElement>; + hr: React.DetailedHTMLProps, HTMLHRElement>; + html: React.DetailedHTMLProps, HTMLHtmlElement>; + i: React.DetailedHTMLProps, HTMLElement>; + iframe: React.DetailedHTMLProps, HTMLIFrameElement>; + img: React.DetailedHTMLProps, HTMLImageElement>; + input: React.DetailedHTMLProps, HTMLInputElement>; + ins: React.DetailedHTMLProps, HTMLModElement>; + kbd: React.DetailedHTMLProps, HTMLElement>; + keygen: React.DetailedHTMLProps, HTMLElement>; + label: React.DetailedHTMLProps, HTMLLabelElement>; + legend: React.DetailedHTMLProps, HTMLLegendElement>; + li: React.DetailedHTMLProps, HTMLLIElement>; + link: React.DetailedHTMLProps, HTMLLinkElement>; + main: React.DetailedHTMLProps, HTMLElement>; + map: React.DetailedHTMLProps, HTMLMapElement>; + mark: React.DetailedHTMLProps, HTMLElement>; + menu: React.DetailedHTMLProps, HTMLElement>; + menuitem: React.DetailedHTMLProps, HTMLElement>; + meta: React.DetailedHTMLProps, HTMLMetaElement>; + meter: React.DetailedHTMLProps, HTMLMeterElement>; + nav: React.DetailedHTMLProps, HTMLElement>; + noindex: React.DetailedHTMLProps, HTMLElement>; + noscript: React.DetailedHTMLProps, HTMLElement>; + object: React.DetailedHTMLProps, HTMLObjectElement>; + ol: React.DetailedHTMLProps, HTMLOListElement>; + optgroup: React.DetailedHTMLProps, HTMLOptGroupElement>; + option: React.DetailedHTMLProps, HTMLOptionElement>; + output: React.DetailedHTMLProps, HTMLOutputElement>; + p: React.DetailedHTMLProps, HTMLParagraphElement>; + param: React.DetailedHTMLProps, HTMLParamElement>; + picture: React.DetailedHTMLProps, HTMLElement>; + pre: React.DetailedHTMLProps, HTMLPreElement>; + progress: React.DetailedHTMLProps, HTMLProgressElement>; + q: React.DetailedHTMLProps, HTMLQuoteElement>; + rp: React.DetailedHTMLProps, HTMLElement>; + rt: React.DetailedHTMLProps, HTMLElement>; + ruby: React.DetailedHTMLProps, HTMLElement>; + s: React.DetailedHTMLProps, HTMLElement>; + samp: React.DetailedHTMLProps, HTMLElement>; + search: React.DetailedHTMLProps, HTMLElement>; + slot: React.DetailedHTMLProps, HTMLSlotElement>; + script: React.DetailedHTMLProps, HTMLScriptElement>; + section: React.DetailedHTMLProps, HTMLElement>; + select: React.DetailedHTMLProps, HTMLSelectElement>; + small: React.DetailedHTMLProps, HTMLElement>; + source: React.DetailedHTMLProps, HTMLSourceElement>; + span: React.DetailedHTMLProps, HTMLSpanElement>; + strong: React.DetailedHTMLProps, HTMLElement>; + style: React.DetailedHTMLProps, HTMLStyleElement>; + sub: React.DetailedHTMLProps, HTMLElement>; + summary: React.DetailedHTMLProps, HTMLElement>; + sup: React.DetailedHTMLProps, HTMLElement>; + table: React.DetailedHTMLProps, HTMLTableElement>; + template: React.DetailedHTMLProps, HTMLTemplateElement>; + tbody: React.DetailedHTMLProps, HTMLTableSectionElement>; + td: React.DetailedHTMLProps, HTMLTableDataCellElement>; + textarea: React.DetailedHTMLProps, HTMLTextAreaElement>; + tfoot: React.DetailedHTMLProps, HTMLTableSectionElement>; + th: React.DetailedHTMLProps, HTMLTableHeaderCellElement>; + thead: React.DetailedHTMLProps, HTMLTableSectionElement>; + time: React.DetailedHTMLProps, HTMLTimeElement>; + title: React.DetailedHTMLProps, HTMLTitleElement>; + tr: React.DetailedHTMLProps, HTMLTableRowElement>; + track: React.DetailedHTMLProps, HTMLTrackElement>; + u: React.DetailedHTMLProps, HTMLElement>; + ul: React.DetailedHTMLProps, HTMLUListElement>; + "var": React.DetailedHTMLProps, HTMLElement>; + video: React.DetailedHTMLProps, HTMLVideoElement>; + wbr: React.DetailedHTMLProps, HTMLElement>; + webview: React.DetailedHTMLProps, HTMLWebViewElement>; + + // SVG + svg: React.SVGProps; + + animate: React.SVGProps; // TODO: It is SVGAnimateElement but is not in TypeScript's lib.dom.d.ts for now. + animateMotion: React.SVGProps; + animateTransform: React.SVGProps; // TODO: It is SVGAnimateTransformElement but is not in TypeScript's lib.dom.d.ts for now. + circle: React.SVGProps; + clipPath: React.SVGProps; + defs: React.SVGProps; + desc: React.SVGProps; + ellipse: React.SVGProps; + feBlend: React.SVGProps; + feColorMatrix: React.SVGProps; + feComponentTransfer: React.SVGProps; + feComposite: React.SVGProps; + feConvolveMatrix: React.SVGProps; + feDiffuseLighting: React.SVGProps; + feDisplacementMap: React.SVGProps; + feDistantLight: React.SVGProps; + feDropShadow: React.SVGProps; + feFlood: React.SVGProps; + feFuncA: React.SVGProps; + feFuncB: React.SVGProps; + feFuncG: React.SVGProps; + feFuncR: React.SVGProps; + feGaussianBlur: React.SVGProps; + feImage: React.SVGProps; + feMerge: React.SVGProps; + feMergeNode: React.SVGProps; + feMorphology: React.SVGProps; + feOffset: React.SVGProps; + fePointLight: React.SVGProps; + feSpecularLighting: React.SVGProps; + feSpotLight: React.SVGProps; + feTile: React.SVGProps; + feTurbulence: React.SVGProps; + filter: React.SVGProps; + foreignObject: React.SVGProps; + g: React.SVGProps; + image: React.SVGProps; + line: React.SVGLineElementAttributes; + linearGradient: React.SVGProps; + marker: React.SVGProps; + mask: React.SVGProps; + metadata: React.SVGProps; + mpath: React.SVGProps; + path: React.SVGProps; + pattern: React.SVGProps; + polygon: React.SVGProps; + polyline: React.SVGProps; + radialGradient: React.SVGProps; + rect: React.SVGProps; + set: React.SVGProps; + stop: React.SVGProps; + switch: React.SVGProps; + symbol: React.SVGProps; + text: React.SVGTextElementAttributes; + textPath: React.SVGProps; + tspan: React.SVGProps; + use: React.SVGProps; + view: React.SVGProps; + } + } +} + +// React.JSX needs to point to global.JSX to keep global module augmentations intact. +// But we can't access global.JSX so we need to create these aliases instead. +// Once the global JSX namespace will be removed we replace React.JSX with the contents of global.JSX +interface GlobalJSXElement extends JSX.Element {} +interface GlobalJSXElementClass extends JSX.ElementClass {} +interface GlobalJSXElementAttributesProperty extends JSX.ElementAttributesProperty {} +interface GlobalJSXElementChildrenAttribute extends JSX.ElementChildrenAttribute {} + +type GlobalJSXLibraryManagedAttributes = JSX.LibraryManagedAttributes; + +interface GlobalJSXIntrinsicAttributes extends JSX.IntrinsicAttributes {} +interface GlobalJSXIntrinsicClassAttributes extends JSX.IntrinsicClassAttributes {} + +interface GlobalJSXIntrinsicElements extends JSX.IntrinsicElements {} diff --git a/node_modules/@types/react/ts5.0/jsx-dev-runtime.d.ts b/node_modules/@types/react/ts5.0/jsx-dev-runtime.d.ts new file mode 100644 index 0000000..87d1dfe --- /dev/null +++ b/node_modules/@types/react/ts5.0/jsx-dev-runtime.d.ts @@ -0,0 +1,44 @@ +import * as React from "./"; +export { Fragment } from "./"; + +export namespace JSX { + interface Element extends React.JSX.Element {} + interface ElementClass extends React.JSX.ElementClass {} + interface ElementAttributesProperty extends React.JSX.ElementAttributesProperty {} + interface ElementChildrenAttribute extends React.JSX.ElementChildrenAttribute {} + type LibraryManagedAttributes = React.JSX.LibraryManagedAttributes; + interface IntrinsicAttributes extends React.JSX.IntrinsicAttributes {} + interface IntrinsicClassAttributes extends React.JSX.IntrinsicClassAttributes {} + interface IntrinsicElements extends React.JSX.IntrinsicElements {} +} + +export interface JSXSource { + /** + * The source file where the element originates from. + */ + fileName?: string | undefined; + + /** + * The line number where the element was created. + */ + lineNumber?: number | undefined; + + /** + * The column number where the element was created. + */ + columnNumber?: number | undefined; +} + +/** + * Create a React element. + * + * You should not use this function directly. Use JSX and a transpiler instead. + */ +export function jsxDEV( + type: React.ElementType, + props: unknown, + key: React.Key | undefined, + isStatic: boolean, + source?: JSXSource, + self?: unknown, +): React.ReactElement; diff --git a/node_modules/@types/react/ts5.0/jsx-runtime.d.ts b/node_modules/@types/react/ts5.0/jsx-runtime.d.ts new file mode 100644 index 0000000..8cc3b97 --- /dev/null +++ b/node_modules/@types/react/ts5.0/jsx-runtime.d.ts @@ -0,0 +1,35 @@ +import * as React from "./"; +export { Fragment } from "./"; + +export namespace JSX { + interface Element extends React.JSX.Element {} + interface ElementClass extends React.JSX.ElementClass {} + interface ElementAttributesProperty extends React.JSX.ElementAttributesProperty {} + interface ElementChildrenAttribute extends React.JSX.ElementChildrenAttribute {} + type LibraryManagedAttributes = React.JSX.LibraryManagedAttributes; + interface IntrinsicAttributes extends React.JSX.IntrinsicAttributes {} + interface IntrinsicClassAttributes extends React.JSX.IntrinsicClassAttributes {} + interface IntrinsicElements extends React.JSX.IntrinsicElements {} +} + +/** + * Create a React element. + * + * You should not use this function directly. Use JSX and a transpiler instead. + */ +export function jsx( + type: React.ElementType, + props: unknown, + key?: React.Key, +): React.ReactElement; + +/** + * Create a React element. + * + * You should not use this function directly. Use JSX and a transpiler instead. + */ +export function jsxs( + type: React.ElementType, + props: unknown, + key?: React.Key, +): React.ReactElement; diff --git a/node_modules/@types/sizzle/LICENSE b/node_modules/@types/sizzle/LICENSE new file mode 100644 index 0000000..9e841e7 --- /dev/null +++ b/node_modules/@types/sizzle/LICENSE @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + 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/@types/sizzle/README.md b/node_modules/@types/sizzle/README.md new file mode 100644 index 0000000..71d3bbb --- /dev/null +++ b/node_modules/@types/sizzle/README.md @@ -0,0 +1,15 @@ +# Installation +> `npm install --save @types/sizzle` + +# Summary +This package contains type definitions for sizzle (https://sizzlejs.com). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/sizzle. + +### Additional Details + * Last updated: Wed, 22 Nov 2023 00:24:48 GMT + * Dependencies: none + +# Credits +These definitions were written by [Leonard Thieu](https://github.com/leonard-thieu). diff --git a/node_modules/@types/sizzle/index.d.ts b/node_modules/@types/sizzle/index.d.ts new file mode 100644 index 0000000..75954ab --- /dev/null +++ b/node_modules/@types/sizzle/index.d.ts @@ -0,0 +1,91 @@ +export as namespace Sizzle; + +declare const Sizzle: SizzleStatic; +export = Sizzle; + +interface SizzleStatic { + selectors: Sizzle.Selectors; + >( + selector: string, + context: Element | Document | DocumentFragment, + results: TArrayLike, + ): TArrayLike; + (selector: string, context?: Element | Document | DocumentFragment): Element[]; + // eslint-disable-next-line @typescript-eslint/ban-types + compile(selector: string): Function; + matchesSelector(element: Element, selector: string): boolean; + matches(selector: string, elements: Element[]): Element[]; +} + +declare namespace Sizzle { + interface Selectors { + cacheLength: number; + match: Selectors.Matches; + find: Selectors.FindFunctions; + preFilter: Selectors.PreFilterFunctions; + filter: Selectors.FilterFunctions; + attrHandle: Selectors.AttrHandleFunctions; + pseudos: Selectors.PseudoFunctions; + setFilters: Selectors.SetFilterFunctions; + createPseudo(fn: Selectors.CreatePseudoFunction): Selectors.PseudoFunction; + } + + namespace Selectors { + interface Matches { + [name: string]: RegExp; + } + + interface FindFunction { + // eslint-disable-next-line @typescript-eslint/no-invalid-void-type + (match: RegExpMatchArray, context: Element | Document, isXML: boolean): Element[] | void; + } + + interface FindFunctions { + [name: string]: FindFunction; + } + + interface PreFilterFunction { + (match: RegExpMatchArray): string[]; + } + + interface PreFilterFunctions { + [name: string]: PreFilterFunction; + } + + interface FilterFunction { + (element: string, ...matches: string[]): boolean; + } + + interface FilterFunctions { + [name: string]: FilterFunction; + } + + interface AttrHandleFunction { + (elem: any, casePreservedName: string, isXML: boolean): string; + } + + interface AttrHandleFunctions { + [name: string]: AttrHandleFunction; + } + + interface PseudoFunction { + (elem: Element): boolean; + } + + interface PseudoFunctions { + [name: string]: PseudoFunction; + } + + interface SetFilterFunction { + (elements: Element[], argument: number, not: boolean): Element[]; + } + + interface SetFilterFunctions { + [name: string]: SetFilterFunction; + } + + interface CreatePseudoFunction { + (...args: any[]): PseudoFunction; + } + } +} diff --git a/node_modules/@types/sizzle/package.json b/node_modules/@types/sizzle/package.json new file mode 100644 index 0000000..1fc60ba --- /dev/null +++ b/node_modules/@types/sizzle/package.json @@ -0,0 +1,25 @@ +{ + "name": "@types/sizzle", + "version": "2.3.8", + "description": "TypeScript definitions for sizzle", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/sizzle", + "license": "MIT", + "contributors": [ + { + "name": "Leonard Thieu", + "githubUsername": "leonard-thieu", + "url": "https://github.com/leonard-thieu" + } + ], + "main": "", + "types": "index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/sizzle" + }, + "scripts": {}, + "dependencies": {}, + "typesPublisherContentHash": "1ceb548567bdb7f826a44b62e32fd0b308219f656b3fbd0096ed40d385a05719", + "typeScriptVersion": "4.5" +} \ No newline at end of file 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/at-least-node/LICENSE b/node_modules/at-least-node/LICENSE new file mode 100644 index 0000000..5e29ccc --- /dev/null +++ b/node_modules/at-least-node/LICENSE @@ -0,0 +1,6 @@ +The ISC License +Copyright (c) 2020 Ryan Zimmerman + +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/at-least-node/README.md b/node_modules/at-least-node/README.md new file mode 100644 index 0000000..fd6e514 --- /dev/null +++ b/node_modules/at-least-node/README.md @@ -0,0 +1,25 @@ +# at-least-node + +![npm](https://img.shields.io/npm/v/at-least-node) +![node](https://img.shields.io/node/v/at-least-node) +![NPM](https://img.shields.io/npm/l/at-least-node) + +Sometimes you need to check if you're on _at least_ a given Node.js version, but you don't want to pull in the whole [`semver`](https://www.npmjs.com/package/semver) kitchen sink. That's what `at-least-node` is for. + +| Package | Size | +| --------------- | ------- | +| `at-least-node` | 2.6 kB | +| `semver` | 75.5 kB | + +```js +const atLeastNode = require('at-least-node') +atLeastNode('10.12.0') +// -> true on Node 10.12.0+, false on anything below that +``` + +When passing in a version string: + +- You cannot include a leading `v` (i.e. `v10.12.0`) +- You cannot omit sections (i.e. `10.12`) +- You cannot use pre-releases (i.e. `1.0.0-beta`) +- There is no input validation, if you make a mistake, the resulting behavior is undefined diff --git a/node_modules/at-least-node/index.js b/node_modules/at-least-node/index.js new file mode 100644 index 0000000..974a2fa --- /dev/null +++ b/node_modules/at-least-node/index.js @@ -0,0 +1,5 @@ +module.exports = r => { + const n = process.versions.node.split('.').map(x => parseInt(x, 10)) + r = r.split('.').map(x => parseInt(x, 10)) + return n[0] > r[0] || (n[0] === r[0] && (n[1] > r[1] || (n[1] === r[1] && n[2] >= r[2]))) +} diff --git a/node_modules/at-least-node/package.json b/node_modules/at-least-node/package.json new file mode 100644 index 0000000..2c13641 --- /dev/null +++ b/node_modules/at-least-node/package.json @@ -0,0 +1,32 @@ +{ + "name": "at-least-node", + "version": "1.0.0", + "description": "Lightweight Node.js version sniffing/comparison", + "keywords": [ + "semver", + "feature" + ], + "homepage": "https://github.com/RyanZim/at-least-node#readme", + "bugs": { + "url": "https://github.com/RyanZim/at-least-node/issues" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/RyanZim/at-least-node.git" + }, + "license": "ISC", + "author": "Ryan Zimmerman ", + "main": "index.js", + "files": [], + "scripts": { + "test": "ava" + }, + "devDependencies": { + "ava": "^3.1.0", + "rewire": "^4.0.1", + "semver": "^7.1.2" + }, + "engines": { + "node": ">= 4.0.0" + } +} 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..4df94b6 --- /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]: https://cultofmartians.com/assets/badges/badge.svg +[PostCSS]: https://github.com/postcss/postcss +[cult]: https://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 100644 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..c9a5272 --- /dev/null +++ b/node_modules/autoprefixer/data/prefixes.js @@ -0,0 +1,1136 @@ +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' + ], + { + browsers, + feature: 'border-radius', + mistakes: ['-khtml-', '-ms-', '-o-'] + } + ) +) + +// Box Shadow +let prefixBoxshadow = require('caniuse-lite/data/features/css-boxshadow') + +f(prefixBoxshadow, browsers => + prefix(['box-shadow'], { + browsers, + feature: 'css-boxshadow', + mistakes: ['-khtml-'] + }) +) + +// 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' + ], + { + browsers, + feature: 'css-animation', + mistakes: ['-khtml-', '-ms-'] + } + ) +) + +// Transition +let prefixTransition = require('caniuse-lite/data/features/css-transitions') + +f(prefixTransition, browsers => + prefix( + [ + 'transition', + 'transition-property', + 'transition-duration', + 'transition-delay', + 'transition-timing-function' + ], + { + browsers, + feature: 'css-transitions', + mistakes: ['-khtml-', '-ms-'] + } + ) +) + +// Transform 2D +let prefixTransform2d = require('caniuse-lite/data/features/transforms2d') + +f(prefixTransform2d, browsers => + prefix(['transform', 'transform-origin'], { + browsers, + feature: 'transforms2d' + }) +) + +// Transform 3D +let prefixTransforms3d = require('caniuse-lite/data/features/transforms3d') + +f(prefixTransforms3d, browsers => { + prefix(['perspective', 'perspective-origin'], { + browsers, + feature: 'transforms3d' + }) + return prefix(['transform-style'], { + browsers, + feature: 'transforms3d', + mistakes: ['-ms-', '-o-'] + }) +}) + +f(prefixTransforms3d, { match: /y\sx|y\s#2/ }, browsers => + prefix(['backface-visibility'], { + browsers, + feature: 'transforms3d', + mistakes: ['-ms-', '-o-'] + }) +) + +// 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' + ], + { + browsers, + feature: 'css-gradients', + mistakes: ['-ms-'], + props: [ + 'background', + 'background-image', + 'border-image', + 'mask', + 'list-style', + 'list-style-image', + 'content', + 'mask-image' + ] + } + ) +) + +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' + ], + { + browsers, + feature: 'css-gradients' + } + ) +}) + +// Box sizing +let prefixBoxsizing = require('caniuse-lite/data/features/css3-boxsizing') + +f(prefixBoxsizing, browsers => + prefix(['box-sizing'], { + browsers, + feature: 'css3-boxsizing' + }) +) + +// Filter Effects +let prefixFilters = require('caniuse-lite/data/features/css-filters') + +f(prefixFilters, browsers => + prefix(['filter'], { + browsers, + feature: 'css-filters' + }) +) + +// filter() function +let prefixFilterFunction = require('caniuse-lite/data/features/css-filter-function') + +f(prefixFilterFunction, browsers => + prefix(['filter-function'], { + browsers, + feature: 'css-filter-function', + props: [ + 'background', + 'background-image', + 'border-image', + 'mask', + 'list-style', + 'list-style-image', + 'content', + 'mask-image' + ] + }) +) + +// Backdrop-filter +let prefixBackdropFilter = require('caniuse-lite/data/features/css-backdrop-filter') + +f(prefixBackdropFilter, { match: /y\sx|y\s#2/ }, browsers => + prefix(['backdrop-filter'], { + browsers, + feature: 'css-backdrop-filter' + }) +) + +// element() function +let prefixElementFunction = require('caniuse-lite/data/features/css-element-function') + +f(prefixElementFunction, browsers => + prefix(['element'], { + browsers, + feature: 'css-element-function', + props: [ + 'background', + 'background-image', + 'border-image', + 'mask', + 'list-style', + 'list-style-image', + 'content', + 'mask-image' + ] + }) +) + +// 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' + ], + { + browsers, + feature: 'multicolumn' + } + ) + + let noff = browsers.filter(i => !/firefox/.test(i)) + prefix(['break-before', 'break-after', 'break-inside'], { + browsers: noff, + feature: 'multicolumn' + }) +}) + +// User select +let prefixUserSelect = require('caniuse-lite/data/features/user-select-none') + +f(prefixUserSelect, browsers => + prefix(['user-select'], { + browsers, + feature: 'user-select-none', + mistakes: ['-khtml-'] + }) +) + +// 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'], { + browsers, + feature: 'flexbox', + props: ['display'] + }) + prefix(['flex', 'flex-grow', 'flex-shrink', 'flex-basis'], { + browsers, + feature: 'flexbox' + }) + prefix( + [ + 'flex-direction', + 'flex-wrap', + 'flex-flow', + 'justify-content', + 'order', + 'align-items', + 'align-self', + 'align-content' + ], + { + browsers, + feature: 'flexbox' + } + ) +}) + +f(prefixFlexbox, { match: /y\sx/ }, browsers => { + add(['display-flex', 'inline-flex'], { + browsers, + feature: 'flexbox' + }) + add(['flex', 'flex-grow', 'flex-shrink', 'flex-basis'], { + browsers, + feature: 'flexbox' + }) + add( + [ + 'flex-direction', + 'flex-wrap', + 'flex-flow', + 'justify-content', + 'order', + 'align-items', + 'align-self', + 'align-content' + ], + { + browsers, + feature: 'flexbox' + } + ) +}) + +// calc() unit +let prefixCalc = require('caniuse-lite/data/features/calc') + +f(prefixCalc, browsers => + prefix(['calc'], { + browsers, + feature: 'calc', + props: ['*'] + }) +) + +// Background options +let prefixBackgroundOptions = require('caniuse-lite/data/features/background-img-opts') + +f(prefixBackgroundOptions, browsers => + prefix(['background-origin', 'background-size'], { + browsers, + feature: 'background-img-opts' + }) +) + +// background-clip: text +let prefixBackgroundClipText = require('caniuse-lite/data/features/background-clip-text') + +f(prefixBackgroundClipText, browsers => + prefix(['background-clip'], { + browsers, + feature: 'background-clip-text' + }) +) + +// 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' + ], + { + browsers, + feature: 'font-feature' + } + ) +) + +// CSS font-kerning property +let prefixFontKerning = require('caniuse-lite/data/features/font-kerning') + +f(prefixFontKerning, browsers => + prefix(['font-kerning'], { + browsers, + feature: 'font-kerning' + }) +) + +// Border image +let prefixBorderImage = require('caniuse-lite/data/features/border-image') + +f(prefixBorderImage, browsers => + prefix(['border-image'], { + browsers, + feature: 'border-image' + }) +) + +// Selection selector +let prefixSelection = require('caniuse-lite/data/features/css-selection') + +f(prefixSelection, browsers => + prefix(['::selection'], { + browsers, + feature: 'css-selection', + selector: true + }) +) + +// Placeholder selector +let prefixPlaceholder = require('caniuse-lite/data/features/css-placeholder') + +f(prefixPlaceholder, browsers => { + prefix(['::placeholder'], { + browsers: browsers.concat(['ie 10 old', 'ie 11 old', 'firefox 18 old']), + feature: 'css-placeholder', + selector: true + }) +}) + +// Placeholder-shown selector +let prefixPlaceholderShown = require('caniuse-lite/data/features/css-placeholder-shown') + +f(prefixPlaceholderShown, browsers => { + prefix([':placeholder-shown'], { + browsers, + feature: 'css-placeholder-shown', + selector: true + }) +}) + +// Hyphenation +let prefixHyphens = require('caniuse-lite/data/features/css-hyphens') + +f(prefixHyphens, browsers => + prefix(['hyphens'], { + browsers, + feature: 'css-hyphens' + }) +) + +// Fullscreen selector +let prefixFullscreen = require('caniuse-lite/data/features/fullscreen') + +f(prefixFullscreen, browsers => + prefix([':fullscreen'], { + browsers, + feature: 'fullscreen', + selector: true + }) +) + +// ::backdrop pseudo-element +// https://caniuse.com/mdn-css_selectors_backdrop +let prefixBackdrop = require('caniuse-lite/data/features/mdn-css-backdrop-pseudo-element') + +f(prefixBackdrop, browsers => + prefix(['::backdrop'], { + browsers, + feature: 'backdrop', + selector: true + }) +) + +// File selector button +let prefixFileSelectorButton = require('caniuse-lite/data/features/css-file-selector-button') + +f(prefixFileSelectorButton, browsers => + prefix(['::file-selector-button'], { + browsers, + feature: 'file-selector-button', + selector: true + }) +) + +// :autofill +let prefixAutofill = require('caniuse-lite/data/features/css-autofill') + +f(prefixAutofill, browsers => + prefix([':autofill'], { + browsers, + feature: 'css-autofill', + selector: true + }) +) + +// Tab size +let prefixTabsize = require('caniuse-lite/data/features/css3-tabsize') + +f(prefixTabsize, browsers => + prefix(['tab-size'], { + browsers, + feature: 'css3-tabsize' + }) +) + +// 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'], { + browsers, + feature: 'intrinsic-width', + props: sizeProps + }) +) + +f(prefixIntrinsic, { match: /x|\s#4/ }, browsers => + prefix(['fill', 'fill-available'], { + browsers, + feature: 'intrinsic-width', + props: sizeProps + }) +) + +f(prefixIntrinsic, { match: /x|\s#5/ }, browsers => { + let ffFix = browsers.filter(i => { + let [name, version] = i.split(' ') + if (name === 'firefox' || name === 'and_ff') { + return parseInt(version) < 94 + } else { + return true + } + }) + return prefix(['fit-content'], { + browsers: ffFix, + feature: 'intrinsic-width', + props: sizeProps + }) +}) + +// Stretch value + +let prefixStretch = require('caniuse-lite/data/features/css-width-stretch') + +f(prefixStretch, browsers => + prefix(['stretch'], { + browsers, + feature: 'css-width-stretch', + props: sizeProps + }) +) + +// Zoom cursors +let prefixCursorsNewer = require('caniuse-lite/data/features/css3-cursors-newer') + +f(prefixCursorsNewer, browsers => + prefix(['zoom-in', 'zoom-out'], { + browsers, + feature: 'css3-cursors-newer', + props: ['cursor'] + }) +) + +// Grab cursors +let prefixCursorsGrab = require('caniuse-lite/data/features/css3-cursors-grab') + +f(prefixCursorsGrab, browsers => + prefix(['grab', 'grabbing'], { + browsers, + feature: 'css3-cursors-grab', + props: ['cursor'] + }) +) + +// Sticky position +let prefixSticky = require('caniuse-lite/data/features/css-sticky') + +f(prefixSticky, browsers => + prefix(['sticky'], { + browsers, + feature: 'css-sticky', + props: ['position'] + }) +) + +// Pointer Events +let prefixPointer = require('caniuse-lite/data/features/pointer') + +f(prefixPointer, browsers => + prefix(['touch-action'], { + browsers, + feature: 'pointer' + }) +) + +// 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'], { + browsers, + feature: 'text-decoration' + }) +) + +let prefixDecorationShorthand = require('caniuse-lite/data/features/mdn-text-decoration-shorthand') + +f(prefixDecorationShorthand, browsers => + prefix(['text-decoration'], { + browsers, + feature: 'text-decoration' + }) +) + +let prefixDecorationColor = require('caniuse-lite/data/features/mdn-text-decoration-color') + +f(prefixDecorationColor, browsers => + prefix(['text-decoration-color'], { + browsers, + feature: 'text-decoration' + }) +) + +let prefixDecorationLine = require('caniuse-lite/data/features/mdn-text-decoration-line') + +f(prefixDecorationLine, browsers => + prefix(['text-decoration-line'], { + browsers, + feature: 'text-decoration' + }) +) + +let prefixDecorationStyle = require('caniuse-lite/data/features/mdn-text-decoration-style') + +f(prefixDecorationStyle, browsers => + prefix(['text-decoration-style'], { + browsers, + feature: 'text-decoration' + }) +) + +// Text Size Adjust +let prefixTextSizeAdjust = require('caniuse-lite/data/features/text-size-adjust') + +f(prefixTextSizeAdjust, browsers => + prefix(['text-size-adjust'], { + browsers, + feature: 'text-size-adjust' + }) +) + +// 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' + ], + { + browsers, + feature: 'css-masks' + } + ) + prefix( + [ + 'mask', + 'mask-position', + 'mask-size', + 'mask-border', + 'mask-border-outset', + 'mask-border-width', + 'mask-border-slice' + ], + { + browsers, + feature: 'css-masks' + } + ) +}) + +// CSS clip-path property +let prefixClipPath = require('caniuse-lite/data/features/css-clip-path') + +f(prefixClipPath, browsers => + prefix(['clip-path'], { + browsers, + feature: 'css-clip-path' + }) +) + +// Fragmented Borders and Backgrounds +let prefixBoxdecoration = require('caniuse-lite/data/features/css-boxdecorationbreak') + +f(prefixBoxdecoration, browsers => + prefix(['box-decoration-break'], { + browsers, + feature: 'css-boxdecorationbreak' + }) +) + +// CSS3 object-fit/object-position +let prefixObjectFit = require('caniuse-lite/data/features/object-fit') + +f(prefixObjectFit, browsers => + prefix(['object-fit', 'object-position'], { + browsers, + feature: 'object-fit' + }) +) + +// CSS Shapes +let prefixShapes = require('caniuse-lite/data/features/css-shapes') + +f(prefixShapes, browsers => + prefix(['shape-margin', 'shape-outside', 'shape-image-threshold'], { + browsers, + feature: 'css-shapes' + }) +) + +// CSS3 text-overflow +let prefixTextOverflow = require('caniuse-lite/data/features/text-overflow') + +f(prefixTextOverflow, browsers => + prefix(['text-overflow'], { + browsers, + feature: 'text-overflow' + }) +) + +// Viewport at-rule +let prefixDeviceadaptation = require('caniuse-lite/data/features/css-deviceadaptation') + +f(prefixDeviceadaptation, browsers => + prefix(['@viewport'], { + browsers, + feature: 'css-deviceadaptation' + }) +) + +// Resolution Media Queries +let prefixResolut = require('caniuse-lite/data/features/css-media-resolution') + +f(prefixResolut, { match: /( x($| )|a #2)/ }, browsers => + prefix(['@resolution'], { + browsers, + feature: 'css-media-resolution' + }) +) + +// CSS text-align-last +let prefixTextAlignLast = require('caniuse-lite/data/features/css-text-align-last') + +f(prefixTextAlignLast, browsers => + prefix(['text-align-last'], { + browsers, + feature: 'css-text-align-last' + }) +) + +// 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'], { + browsers, + feature: 'css-crisp-edges', + props: ['image-rendering'] + }) +) + +f(prefixCrispedges, { match: /a x #2/ }, browsers => + prefix(['image-rendering'], { + browsers, + feature: 'css-crisp-edges' + }) +) + +// 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' + ], + { + browsers, + feature: 'css-logical-props' + } + ) +) + +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' + ], + { + browsers, + feature: 'css-logical-props' + } + ) +) + +// CSS appearance +let prefixAppearance = require('caniuse-lite/data/features/css-appearance') + +f(prefixAppearance, { match: /#2|x/ }, browsers => + prefix(['appearance'], { + browsers, + feature: 'css-appearance' + }) +) + +// 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' + ], + { + browsers, + feature: 'css-snappoints' + } + ) +) + +// CSS Regions +let prefixRegions = require('caniuse-lite/data/features/css-regions') + +f(prefixRegions, browsers => + prefix(['flow-into', 'flow-from', 'region-fragment'], { + browsers, + feature: 'css-regions' + }) +) + +// CSS image-set +let prefixImageSet = require('caniuse-lite/data/features/css-image-set') + +f(prefixImageSet, browsers => + prefix(['image-set'], { + browsers, + feature: 'css-image-set', + props: [ + 'background', + 'background-image', + 'border-image', + 'cursor', + 'mask', + 'mask-image', + 'list-style', + 'list-style-image', + 'content' + ] + }) +) + +// Writing Mode +let prefixWritingMode = require('caniuse-lite/data/features/css-writing-mode') + +f(prefixWritingMode, { match: /a|x/ }, browsers => + prefix(['writing-mode'], { + browsers, + feature: 'css-writing-mode' + }) +) + +// Cross-Fade Function +let prefixCrossFade = require('caniuse-lite/data/features/css-cross-fade') + +f(prefixCrossFade, browsers => + prefix(['cross-fade'], { + browsers, + feature: 'css-cross-fade', + props: [ + 'background', + 'background-image', + 'border-image', + 'mask', + 'list-style', + 'list-style-image', + 'content', + 'mask-image' + ] + }) +) + +// Read Only selector +let prefixReadOnly = require('caniuse-lite/data/features/css-read-only-write') + +f(prefixReadOnly, browsers => + prefix([':read-only', ':read-write'], { + browsers, + feature: 'css-read-only-write', + selector: true + }) +) + +// 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' + ], + { + browsers, + feature: 'text-emphasis' + } + ) +) + +// CSS Grid Layout +let prefixGrid = require('caniuse-lite/data/features/css-grid') + +f(prefixGrid, browsers => { + prefix(['display-grid', 'inline-grid'], { + browsers, + feature: 'css-grid', + props: ['display'] + }) + 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' + ], + { + browsers, + feature: 'css-grid' + } + ) +}) + +f(prefixGrid, { match: /a x/ }, browsers => + prefix(['grid-column-align', 'grid-row-align'], { + browsers, + feature: 'css-grid' + }) +) + +// CSS text-spacing +let prefixTextSpacing = require('caniuse-lite/data/features/css-text-spacing') + +f(prefixTextSpacing, browsers => + prefix(['text-spacing'], { + browsers, + feature: 'css-text-spacing' + }) +) + +// :any-link selector +let prefixAnyLink = require('caniuse-lite/data/features/css-any-link') + +f(prefixAnyLink, browsers => + prefix([':any-link'], { + browsers, + feature: 'css-any-link', + selector: true + }) +) + +// unicode-bidi + +let bidiIsolate = require('caniuse-lite/data/features/mdn-css-unicode-bidi-isolate') + +f(bidiIsolate, browsers => + prefix(['isolate'], { + browsers, + feature: 'css-unicode-bidi', + props: ['unicode-bidi'] + }) +) + +let bidiPlaintext = require('caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext') + +f(bidiPlaintext, browsers => + prefix(['plaintext'], { + browsers, + feature: 'css-unicode-bidi', + props: ['unicode-bidi'] + }) +) + +let bidiOverride = require('caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override') + +f(bidiOverride, { match: /y x/ }, browsers => + prefix(['isolate-override'], { + browsers, + feature: 'css-unicode-bidi', + props: ['unicode-bidi'] + }) +) + +// overscroll-behavior selector +let prefixOverscroll = require('caniuse-lite/data/features/css-overscroll-behavior') + +f(prefixOverscroll, { match: /a #1/ }, browsers => + prefix(['overscroll-behavior'], { + browsers, + feature: 'css-overscroll-behavior' + }) +) + +// text-orientation +let prefixTextOrientation = require('caniuse-lite/data/features/css-text-orientation') + +f(prefixTextOrientation, browsers => + prefix(['text-orientation'], { + browsers, + feature: 'css-text-orientation' + }) +) + +// print-color-adjust +let prefixPrintAdjust = require('caniuse-lite/data/features/css-print-color-adjust') + +f(prefixPrintAdjust, browsers => + prefix(['print-color-adjust', 'color-adjust'], { + browsers, + feature: 'css-print-color-adjust' + }) +) 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..a443290 --- /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 = { + env: options.env, + ignoreUnknownVersions: options.ignoreUnknownVersions, + stats: options.stats + } + + 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 { + browsers: reqs, + + info(opts) { + opts = opts || {} + opts.from = opts.from || process.cwd() + return getInfo(loadPrefixes(opts)) + }, + + options, + + postcssPlugin: 'autoprefixer', + prepare(result) { + let prefixes = loadPrefixes({ + env: options.env, + from: result.opts.from + }) + + return { + OnceExit(root) { + timeCapsule(result, prefixes) + if (options.remove !== false) { + prefixes.processor.remove(root, result) + } + if (options.add !== false) { + prefixes.processor.add(root, result) + } + } + } + } + } +} + +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..b268c84 --- /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 { + constructor(data, requirements, options, browserslistOpts) { + this.data = data + this.options = options || {} + this.browserslistOpts = browserslistOpts || {} + this.selected = this.parse(requirements) + } + + /** + * 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) + } + + /** + * Is browser is selected by requirements + */ + isSelected(browser) { + return this.selected.includes(browser) + } + + /** + * 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}-` + } +} + +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..73ea0c4 --- /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 { + /** + * 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) + } + + /** + * 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 + } + + /** + * Always true, because we already get prefixer by property name + */ + check(/* decl */) { + return true + } + + /** + * 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 + } + + /** + * 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 + } + + /** + * 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 unprefixed version of property + */ + normalize(prop) { + return prop + } + + /** + * Return list of prefixed properties to clean old prefixes + */ + old(prop, prefix) { + return [this.prefixed(prop, prefix)] + } + + /** + * 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 + } + + /** + * Return prefixed version of property + */ + prefixed(prop, prefix) { + return prefix + prop + } + + /** + * 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) + } + + /** + * 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') + } + + /** + * Set prefix to declaration + */ + set(decl, prefix) { + decl.prop = this.prefixed(decl.prop, prefix) + return decl + } +} + +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..a06f381 --- /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 { + /** + * Return property name by final spec + */ + normalize() { + return 'align-content' + } + + /** + * 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) + } + + /** + * 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-around': 'distribute', + 'space-between': 'justify' +} + +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..4dfdd45 --- /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 { + /** + * Return property name by final spec + */ + normalize() { + return 'align-items' + } + + /** + * 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) + } + + /** + * 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..a22b166 --- /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-') + }) + ) + } + + /** + * Return property name by final spec + */ + normalize() { + return 'align-self' + } + + /** + * 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) + } + + /** + * 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..cb795f7 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/block-logical.js @@ -0,0 +1,40 @@ +let Declaration = require('../declaration') + +class BlockLogical extends Declaration { + /** + * Return property name by spec + */ + normalize(prop) { + if (prop.includes('-before')) { + return prop.replace('-before', '-block-start') + } + return prop.replace('-after', '-block-end') + } + + /** + * 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') + } +} + +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..47ea835 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/border-radius.js @@ -0,0 +1,40 @@ +let Declaration = require('../declaration') + +class BorderRadius extends Declaration { + /** + * Return unprefixed version of property + */ + normalize(prop) { + return BorderRadius.toNormal[prop] || prop + } + + /** + * Change syntax, when add Mozilla prefix + */ + prefixed(prop, prefix) { + if (prefix === '-moz-') { + return prefix + (BorderRadius.toMozilla[prop] || prop) + } + return super.prefixed(prop, prefix) + } +} + +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..b67b12f --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/break-props.js @@ -0,0 +1,63 @@ +let Declaration = require('../declaration') + +class BreakProps extends Declaration { + /** + * 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) + } + + /** + * 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 name for -webkit- and -moz- prefix + */ + prefixed(prop, prefix) { + return `${prefix}column-${prop}` + } + + /** + * 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) + } +} + +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..8a5473e --- /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 + } + + /** + * Change value for old specs + */ + old(prefix) { + let prefixed = this.prefixed(prefix) + if (!prefixed) return undefined + return new OldValue(this.name, prefixed) + } + + /** + * 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) + } +} + +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..83fe6a9 --- /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 { + /** + * 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) + } + + /** + * Return property name by final spec + */ + normalize() { + return 'flex-direction' + } + + /** + * 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..e3b2fef --- /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 { + /** + * Return property name by final spec + */ + normalize() { + return 'flex' + } + + /** + * 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) + } + + /** + * 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..f2345b0 --- /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 { + /** + * 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 + } + + /** + * Get div token from exists parameters + */ + cloneDiv(params) { + for (let i of params) { + if (i.type === 'div' && i.value === ',') { + return i + } + } + return { after: ' ', type: 'div', value: ',' } + } + + /** + * 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 + } + + /** + * 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 + } + + /** + * 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` + } + + /** + * 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) + } + } + } + + /** + * 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) + } + + /** + * 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 + } + + /** + * 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 + } + + /** + * 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 + } + + /** + * Convert angle unit to deg + */ + normalizeUnit(str, full) { + let num = parseFloat(str) + let deg = (num / full) * 360 + return `${deg}deg` + } + + /** + * 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) + } + } + + /** + * 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] + } + } + + /** + * 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 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)) + } + + revertDirection(word) { + return Gradient.directions[word.toLowerCase()] || word + } + + /** + * Round float and save digits under dot + */ + roundFloat(float, digits) { + return parseFloat(float.toFixed(digits)) + } +} + +Gradient.names = [ + 'linear-gradient', + 'repeating-linear-gradient', + 'radial-gradient', + 'repeating-radial-gradient' +] + +Gradient.directions = { + bottom: 'top', + left: 'right', + right: 'left', + top: 'bottom' // default value +} + +// Direction to replace +Gradient.oldDirections = { + 'bottom': 'left top, left bottom', + 'bottom left': 'right top, left bottom', + 'bottom right': 'left top, right bottom', + 'left': 'right top, left top', + + 'left bottom': 'right top, left bottom', + 'left top': 'right bottom, left top', + 'right': 'left top, right top', + 'right bottom': 'left top, right bottom', + 'right top': 'left bottom, right top', + 'top': 'left bottom, left top', + 'top left': 'right bottom, left top', + 'top right': 'left bottom, right top' +} + +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..91f10f0 --- /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 IE property back + */ + normalize() { + return 'justify-self' + } + + /** + * Change property name for IE + */ + prefixed(prop, prefix) { + return prefix + 'grid-column-align' + } +} + +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..cba8aee --- /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 IE property back + */ + normalize() { + return 'align-self' + } + + /** + * Change property name for IE + */ + prefixed(prop, prefix) { + return prefix + 'grid-row-align' + } +} + +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..dfc266b --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/grid-rows-columns.js @@ -0,0 +1,125 @@ +let Declaration = require('../declaration') +let { + autoplaceGridItems, + getGridGap, + inheritGridGap, + prefixTrackProp, + prefixTrackValue +} = require('./grid-utils') +let Processor = require('../processor') + +class GridRowsColumns extends Declaration { + 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({ + gap: gapValue, + value + }) + + /** + * Insert prefixes + */ + decl.cloneBefore({ + prop: prefixTrackProp({ prefix, prop }), + 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 + } + + /** + * Change IE property back + */ + normalize(prop) { + return prop.replace(/^grid-(rows|columns)/, 'grid-template-$1') + } + + /** + * Change property name for IE + */ + prefixed(prop, prefix) { + if (prefix === '-ms-') { + return prefixTrackProp({ prefix, prop }) + } + return super.prefixed(prop, prefix) + } +} + +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..ffc9673 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/grid-template-areas.js @@ -0,0 +1,84 @@ +let Declaration = require('../declaration') +let { + getGridGap, + inheritGridGap, + parseGridAreas, + prefixTrackProp, + prefixTrackValue, + warnGridGap, + warnMissedAreas +} = 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({ prefix, prop }), + value: prefixTrackValue({ gap: gap.row, value }) + }) + } else { + hasColumns = true + } + }) + + let gridRows = getGridRows(decl.value) + + if (hasColumns && !hasRows && gap.row && gridRows.length > 1) { + decl.cloneBefore({ + prop: '-ms-grid-rows', + raws: {}, + value: prefixTrackValue({ + gap: gap.row, + value: `repeat(${gridRows.length}, auto)` + }) + }) + } + + // warnings + warnGridGap({ + decl, + gap, + hasColumns, + result + }) + + let areas = parseGridAreas({ + gap, + rows: gridRows + }) + + 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..4e28637 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/grid-template.js @@ -0,0 +1,69 @@ +let Declaration = require('../declaration') +let { + getGridGap, + inheritGridGap, + parseTemplate, + warnGridGap, + warnMissedAreas +} = 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 { areas, columns, rows } = parseTemplate({ + decl, + gap: inheritedGap || gap + }) + + let hasAreas = Object.keys(areas).length > 0 + let hasRows = Boolean(rows) + let hasColumns = Boolean(columns) + + warnGridGap({ + decl, + gap, + hasColumns, + result + }) + + warnMissedAreas(areas, decl, result) + + if ((hasRows && hasColumns) || hasAreas) { + decl.cloneBefore({ + prop: '-ms-grid-rows', + raws: {}, + value: rows + }) + } + + if (hasColumns) { + decl.cloneBefore({ + prop: '-ms-grid-columns', + raws: {}, + value: columns + }) + } + + 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..e894231 --- /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({ prefix, prop }) { + 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 + }, + { + count: [], + key: 'count', + size: [] + } + ) + + // 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({ gap, value }) { + 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 { end, span: end - start, start } +} + +function getColumns(line) { + return line.trim().split(/\s+/g) +} + +exports.parseGridAreas = parseGridAreas + +function parseGridAreas({ gap, rows }) { + 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 + }, + { + areas: [], + columns: [], + key: 'rows', + rows: [] + } + ) + + return { + areas: parseGridAreas({ + gap, + rows: gridTemplate.areas + }), + columns: prefixTrackValue({ + gap: gap.column, + value: gridTemplate.columns.join(' ') + }), + rows: prefixTrackValue({ + gap: gap.row, + value: gridTemplate.rows.join(' ') + }) + } +} + +// 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({ + areas, + duplicateAreaNames, + hasDuplicates: !hasNoDuplicates, + node: rule, + params: media.params, + selectors: rule.selectors + }) + } else { + // index is NOT found, push the new item to the parsed array + parsed.push({ + allAreas: areaNames, + areasCount: 0, + rules: [ + { + areas, + duplicateAreaNames: [], + duplicateRules: [], + hasDuplicates: false, + node: rule, + params: media.params, + selectors: rule.selectors + } + ] + }) + } + + 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({ decl, gap, hasColumns, 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({ gap, rows: filledRows }) + 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..38b571b --- /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' + } + + /** + * Return property name by spec + */ + normalize() { + return 'image-rendering' + } + + /** + * Change property name for IE + */ + prefixed(prop, prefix) { + if (prefix === '-ms-') { + return '-ms-interpolation-mode' + } + return super.prefixed(prop, prefix) + } + + /** + * Warn on old value + */ + process(node, result) { + return super.process(node, result) + } + + /** + * 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 + } +} + +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..31dc968 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/inline-logical.js @@ -0,0 +1,34 @@ +let Declaration = require('../declaration') + +class InlineLogical extends Declaration { + /** + * Return property name by spec + */ + normalize(prop) { + return prop.replace(/(margin|padding|border)-(start|end)/, '$1-inline-$2') + } + + /** + * Use old syntax for -moz- and -webkit- + */ + prefixed(prop, prefix) { + return prefix + prop.replace('-inline', '') + } +} + +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..7c5bb50 --- /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 { + add(decl, prefix) { + if (decl.prop.includes('grid') && prefix !== '-webkit-') { + return undefined + } + return super.add(decl, prefix) + } + + isStretch() { + return ( + this.name === 'stretch' || + this.name === 'fill' || + this.name === 'fill-available' + ) + } + + 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)) + } + + regexp() { + if (!this.regexpCache) this.regexpCache = regexp(this.name) + return this.regexpCache + } + + 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) + } +} + +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..8ad863f --- /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 { + /** + * Return property name by final spec + */ + normalize() { + return 'justify-content' + } + + /** + * 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) + } + + /** + * 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-around': 'distribute', + 'space-between': 'justify' +} + +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..a30df13 --- /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', + exclude: 'xor', + intersect: 'source-in', + subtract: 'source-out' +} + +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..3150a94 --- /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 { + /** + * Return property name by final spec + */ + normalize() { + return 'order' + } + + /** + * 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) + } + + /** + * 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..03bd7d4 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/overscroll-behavior.js @@ -0,0 +1,33 @@ +let Declaration = require('../declaration') + +class OverscrollBehavior extends Declaration { + /** + * Return property name by spec + */ + normalize() { + return 'overscroll-behavior' + } + + /** + * Change property name for IE + */ + prefixed(prop, prefix) { + return prefix + 'scroll-chaining' + } + + /** + * 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..6084826 --- /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 { + /** + * 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) + } + + /** + * 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) + } +} + +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..6526a8e --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/print-color-adjust.js @@ -0,0 +1,25 @@ +let Declaration = require('../declaration') + +class PrintColorAdjust extends Declaration { + /** + * Return property name by spec + */ + normalize() { + return 'print-color-adjust' + } + + /** + * Change property name for WebKit-based browsers + */ + prefixed(prop, prefix) { + if (prefix === '-moz-') { + return 'color-adjust' + } else { + return prefix + '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..cecd06d --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/transform-decl.js @@ -0,0 +1,79 @@ +let Declaration = require('../declaration') + +class TransformDecl extends Declaration { + /** + * 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 + } + + /** + * 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 + } + + /** + * 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 + } + + /** + * 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 + } +} + +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..f73831d --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/user-select.js @@ -0,0 +1,33 @@ +let Declaration = require('../declaration') + +class UserSelect extends Declaration { + /** + * Avoid prefixing all in IE + */ + insert(decl, prefix, prefixes) { + if (decl.value === 'all' && prefix === '-ms-') { + return undefined + } else if ( + decl.value === 'contain' && + (prefix === '-moz-' || prefix === '-webkit-') + ) { + return undefined + } else { + return super.insert(decl, prefix, prefixes) + } + } + + /** + * Change prefixed value for IE + */ + set(decl, prefix) { + if (prefix === '-ms-' && decl.value === 'contain') { + decl.value = 'element' + } + return super.set(decl, prefix) + } +} + +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..71c8eeb --- /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-lr': 'tb-lr', + 'vertical-rl': 'tb-rl' + }, + rtl: { + 'horizontal-tb': 'rl-tb', + 'vertical-lr': 'bt-lr', + 'vertical-rl': 'bt-rl' + } +} + +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..a313486 --- /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 = { + and_chr: 'Chrome for Android', + and_ff: 'Firefox for Android', + and_qq: 'QQ Browser', + and_uc: 'UC for Android', + baidu: 'Baidu Browser', + ie: 'IE', + ie_mob: 'IE Mobile', + ios_saf: 'iOS Safari', + kaios: 'KaiOS Browser', + op_mini: 'Opera Mini', + op_mob: 'Opera Mobile', + 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..ca98d07 --- /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() + } + + /** + * 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 + } + + /** + * 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 + } +} + +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..196dd62 --- /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 { + constructor(name, prefixes, all) { + this.prefixes = prefixes + this.name = name + this.all = 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 + } + + /** + * 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) + } + } + + /** + * Shortcut for Prefixer.clone + */ + clone(node, overrides) { + return Prefixer.clone(node, overrides) + } + + /** + * 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 + } +} + +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..324509e --- /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 + } + + /** + * Declaration loader with caching + */ + decl(prop) { + if (!declsCache.has(prop)) { + declsCache.set(prop, Declaration.load(prop)) + } + + return declsCache.get(prop) + } + + /** + * 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 { + down(callback) { + return checker(+1, callback) + }, + up(callback) { + return checker(-1, callback) + } + } + } + + /** + * 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) + } + + /** + * Cache prefixes data to fast CSS processing + */ + preprocess(selected) { + let add = { + '@supports': new Supports(Prefixes, this), + 'selectors': [] + } + 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] + } + + /** + * 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 + } + }) + } + + /** + * Return unprefixed version of property + */ + unprefixed(prop) { + let value = this.normalize(vendor.unprefixed(prop)) + if (value === 'flex-direction') { + value = 'flex-flow' + } + return value + } + + /** + * 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 || [] + } + } +} + +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..8a463c7 --- /dev/null +++ b/node_modules/autoprefixer/lib/processor.js @@ -0,0 +1,709 @@ +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 + }) + } + + 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 (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) + }) + } + + /** + * 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 + } + + /** + * Check for grid/flexbox options. + */ + disabledDecl(node, result) { + if (node.type === 'decl' && this.gridStatus(node, result) === false) { + if (node.prop.includes('grid') || node.prop === 'justify-items') { + return true + } + } + if (node.type === 'decl' && this.prefixes.options.flexbox === false) { + 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 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) + } + + /** + * 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 + } + + /** + * 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') + } + }) + } + + /** + * 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 + css.walkRules((rule, i) => { + if (this.disabled(rule, result)) return + + for (let checker of this.prefixes.remove.selectors) { + if (checker.check(rule)) { + rule.parent.removeChild(i) + return + } + } + }) + + 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') || + // Do not remove -webkit-box-orient when -webkit-line-clamp is present. + // https://github.com/postcss/autoprefixer/issues/1510 + (decl.prop === '-webkit-box-orient' && + decl.parent.some(d => d.prop === '-webkit-line-clamp')) + ) + } +} + +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..4b71564 --- /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 { + /** + * 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))) + }) + } + + /** + * 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 + } + + /** + * 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..ff53449 --- /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() + } + + /** + * 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) + } + + /** + * 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 + } + + /** + * Is rule selectors need to be prefixed + */ + check(rule) { + if (rule.selector.includes(this.name)) { + return !!rule.selector.match(this.regexp()) + } + + return false + } + + /** + * Return function to fast find prefixed selector + */ + old(prefix) { + return new OldSelector(this, prefix) + } + + /** + * All possible prefixes + */ + possible() { + return Browsers.prefixes() + } + + /** + * Return prefixed version of selector + */ + prefixed(prefix) { + return this.name.replace(/^(\W*)/, `$1${prefix}`) + } + + /** + * 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 + } + + /** + * 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) + } + + /** + * Replace selectors by prefixed one + */ + replace(selector, prefix) { + return selector.replace(this.regexp(), `$1${this.prefixed(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..58bd5af --- /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 + } + + /** + * 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 + }) + } + + /** + * 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 + } + + /** + * 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 + } + + /** + * 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 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' + ) + } + + /** + * 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)) + } + + /** + * 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()] + } + + /** + * 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 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 + } + + /** + * 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) + } + + /** + * 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 + } + + /** + * 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 + } + + /** + * Create virtual rule to process it by prefixer + */ + virtual(str) { + let [prop, value] = this.parse(str) + let rule = parse('a{}').first + rule.append({ prop, raws: { before: '' }, value }) + return rule + } +} + +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..7137eab --- /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 + } + } + + /** + * Does we already have this declaration + */ + already(decl, prop, value) { + return decl.parent.some(i => i.prop === prop && i.value === 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-*' + ) + } + } + + /** + * 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 + } + + cleanOtherPrefixes(params, prefix) { + return params.filter(param => { + let current = vendor.prefix(this.findProp(param)) + return current === '' || current === prefix + }) + } + + /** + * 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 + } + + /** + * Add declaration if it is not exist + */ + cloneBefore(decl, prop, value) { + if (!this.already(decl, prop, value)) { + decl.cloneBefore({ prop, value }) + } + } + + /** + * 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 + } + + /** + * 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 { after: ' ', type: 'div', 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 + } + + /** + * 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) + } + + /** + * 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 + } + + /** + * 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 + } + + /** + * 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 }) + } +} + +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..ca42ba1 --- /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 + } + + /** + * 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 + } + + /** + * Is declaration need to be prefixed + */ + check(decl) { + let value = decl.value + if (!value.includes(this.name)) { + return false + } + + return !!value.match(this.regexp()) + } + + /** + * Return function to fast find prefixed value + */ + old(prefix) { + return new OldValue(this.name, prefix + this.name) + } + + /** + * 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 + } + } +} + +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..8de9cc3 --- /dev/null +++ b/node_modules/autoprefixer/package.json @@ -0,0 +1,49 @@ +{ + "name": "autoprefixer", + "version": "10.4.20", + "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" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "author": "Andrey Sitnik ", + "license": "MIT", + "repository": "postcss/autoprefixer", + "bugs": { + "url": "https://github.com/postcss/autoprefixer/issues" + }, + "peerDependencies": { + "postcss": "^8.1.0" + }, + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + } +} diff --git a/node_modules/balanced-match/.github/FUNDING.yml b/node_modules/balanced-match/.github/FUNDING.yml new file mode 100644 index 0000000..cea8b16 --- /dev/null +++ b/node_modules/balanced-match/.github/FUNDING.yml @@ -0,0 +1,2 @@ +tidelift: "npm/balanced-match" +patreon: juliangruber diff --git a/node_modules/balanced-match/LICENSE.md b/node_modules/balanced-match/LICENSE.md new file mode 100644 index 0000000..2cdc8e4 --- /dev/null +++ b/node_modules/balanced-match/LICENSE.md @@ -0,0 +1,21 @@ +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/balanced-match/README.md b/node_modules/balanced-match/README.md new file mode 100644 index 0000000..d2a48b6 --- /dev/null +++ b/node_modules/balanced-match/README.md @@ -0,0 +1,97 @@ +# balanced-match + +Match balanced string pairs, like `{` and `}` or `` and ``. Supports regular expressions as well! + +[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) +[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) + +[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) + +## Example + +Get the first matching pair of braces: + +```js +var balanced = require('balanced-match'); + +console.log(balanced('{', '}', 'pre{in{nested}}post')); +console.log(balanced('{', '}', 'pre{first}between{second}post')); +console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post')); +``` + +The matches are: + +```bash +$ node example.js +{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } +{ start: 3, + end: 9, + pre: 'pre', + body: 'first', + post: 'between{second}post' } +{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' } +``` + +## API + +### var m = balanced(a, b, str) + +For the first non-nested matching pair of `a` and `b` in `str`, return an +object with those keys: + +* **start** the index of the first match of `a` +* **end** the index of the matching `b` +* **pre** the preamble, `a` and `b` not included +* **body** the match, `a` and `b` not included +* **post** the postscript, `a` and `b` not included + +If there's no match, `undefined` will be returned. + +If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`. + +### var r = balanced.range(a, b, str) + +For the first non-nested matching pair of `a` and `b` in `str`, return an +array with indexes: `[ , ]`. + +If there's no match, `undefined` will be returned. + +If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`. + +## Installation + +With [npm](https://npmjs.org) do: + +```bash +npm install balanced-match +``` + +## Security contact information + +To report a security vulnerability, please use the +[Tidelift security contact](https://tidelift.com/security). +Tidelift will coordinate the fix and disclosure. + +## License + +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/balanced-match/index.js b/node_modules/balanced-match/index.js new file mode 100644 index 0000000..c67a646 --- /dev/null +++ b/node_modules/balanced-match/index.js @@ -0,0 +1,62 @@ +'use strict'; +module.exports = balanced; +function balanced(a, b, str) { + if (a instanceof RegExp) a = maybeMatch(a, str); + if (b instanceof RegExp) b = maybeMatch(b, str); + + var r = range(a, b, str); + + return r && { + start: r[0], + end: r[1], + pre: str.slice(0, r[0]), + body: str.slice(r[0] + a.length, r[1]), + post: str.slice(r[1] + b.length) + }; +} + +function maybeMatch(reg, str) { + var m = str.match(reg); + return m ? m[0] : null; +} + +balanced.range = range; +function range(a, b, str) { + var begs, beg, left, right, result; + var ai = str.indexOf(a); + var bi = str.indexOf(b, ai + 1); + var i = ai; + + if (ai >= 0 && bi > 0) { + if(a===b) { + return [ai, bi]; + } + begs = []; + left = str.length; + + while (i >= 0 && !result) { + if (i == ai) { + begs.push(i); + ai = str.indexOf(a, i + 1); + } else if (begs.length == 1) { + result = [ begs.pop(), bi ]; + } else { + beg = begs.pop(); + if (beg < left) { + left = beg; + right = bi; + } + + bi = str.indexOf(b, i + 1); + } + + i = ai < bi && ai >= 0 ? ai : bi; + } + + if (begs.length) { + result = [ left, right ]; + } + } + + return result; +} diff --git a/node_modules/balanced-match/package.json b/node_modules/balanced-match/package.json new file mode 100644 index 0000000..ce6073e --- /dev/null +++ b/node_modules/balanced-match/package.json @@ -0,0 +1,48 @@ +{ + "name": "balanced-match", + "description": "Match balanced character pairs, like \"{\" and \"}\"", + "version": "1.0.2", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/balanced-match.git" + }, + "homepage": "https://github.com/juliangruber/balanced-match", + "main": "index.js", + "scripts": { + "test": "tape test/test.js", + "bench": "matcha test/bench.js" + }, + "devDependencies": { + "matcha": "^0.7.0", + "tape": "^4.6.0" + }, + "keywords": [ + "match", + "regexp", + "test", + "balanced", + "parse" + ], + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "license": "MIT", + "testling": { + "files": "test/*.js", + "browsers": [ + "ie/8..latest", + "firefox/20..latest", + "firefox/nightly", + "chrome/25..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2..latest" + ] + } +} diff --git a/node_modules/binary-extensions/binary-extensions.json b/node_modules/binary-extensions/binary-extensions.json new file mode 100644 index 0000000..ac08048 --- /dev/null +++ b/node_modules/binary-extensions/binary-extensions.json @@ -0,0 +1,263 @@ +[ + "3dm", + "3ds", + "3g2", + "3gp", + "7z", + "a", + "aac", + "adp", + "afdesign", + "afphoto", + "afpub", + "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..5493a1a --- /dev/null +++ b/node_modules/binary-extensions/license @@ -0,0 +1,10 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) +Copyright (c) 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..4710c33 --- /dev/null +++ b/node_modules/binary-extensions/package.json @@ -0,0 +1,40 @@ +{ + "name": "binary-extensions", + "version": "2.3.0", + "description": "List of binary file extensions", + "license": "MIT", + "repository": "sindresorhus/binary-extensions", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "sideEffects": false, + "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..88519b3 --- /dev/null +++ b/node_modules/binary-extensions/readme.md @@ -0,0 +1,25 @@ +# binary-extensions + +> List of binary file extensions + +The list is just a [JSON file](binary-extensions.json) and can be used anywhere. + +## Install + +```sh +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 diff --git a/node_modules/brace-expansion/LICENSE b/node_modules/brace-expansion/LICENSE new file mode 100644 index 0000000..de32266 --- /dev/null +++ b/node_modules/brace-expansion/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2013 Julian Gruber + +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/brace-expansion/README.md b/node_modules/brace-expansion/README.md new file mode 100644 index 0000000..6b4e0e1 --- /dev/null +++ b/node_modules/brace-expansion/README.md @@ -0,0 +1,129 @@ +# brace-expansion + +[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), +as known from sh/bash, in JavaScript. + +[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) +[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion) +[![Greenkeeper badge](https://badges.greenkeeper.io/juliangruber/brace-expansion.svg)](https://greenkeeper.io/) + +[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) + +## Example + +```js +var expand = require('brace-expansion'); + +expand('file-{a,b,c}.jpg') +// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] + +expand('-v{,,}') +// => ['-v', '-v', '-v'] + +expand('file{0..2}.jpg') +// => ['file0.jpg', 'file1.jpg', 'file2.jpg'] + +expand('file-{a..c}.jpg') +// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] + +expand('file{2..0}.jpg') +// => ['file2.jpg', 'file1.jpg', 'file0.jpg'] + +expand('file{0..4..2}.jpg') +// => ['file0.jpg', 'file2.jpg', 'file4.jpg'] + +expand('file-{a..e..2}.jpg') +// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg'] + +expand('file{00..10..5}.jpg') +// => ['file00.jpg', 'file05.jpg', 'file10.jpg'] + +expand('{{A..C},{a..c}}') +// => ['A', 'B', 'C', 'a', 'b', 'c'] + +expand('ppp{,config,oe{,conf}}') +// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf'] +``` + +## API + +```js +var expand = require('brace-expansion'); +``` + +### var expanded = expand(str) + +Return an array of all possible and valid expansions of `str`. If none are +found, `[str]` is returned. + +Valid expansions are: + +```js +/^(.*,)+(.+)?$/ +// {a,b,...} +``` + +A comma separated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`. + +```js +/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ +// {x..y[..incr]} +``` + +A numeric sequence from `x` to `y` inclusive, with optional increment. +If `x` or `y` start with a leading `0`, all the numbers will be padded +to have equal length. Negative numbers and backwards iteration work too. + +```js +/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ +// {x..y[..incr]} +``` + +An alphabetic sequence from `x` to `y` inclusive, with optional increment. +`x` and `y` must be exactly one character, and if given, `incr` must be a +number. + +For compatibility reasons, the string `${` is not eligible for brace expansion. + +## Installation + +With [npm](https://npmjs.org) do: + +```bash +npm install brace-expansion +``` + +## Contributors + +- [Julian Gruber](https://github.com/juliangruber) +- [Isaac Z. Schlueter](https://github.com/isaacs) + +## Sponsors + +This module is proudly supported by my [Sponsors](https://github.com/juliangruber/sponsors)! + +Do you want to support modules like this to improve their quality, stability and weigh in on new features? Then please consider donating to my [Patreon](https://www.patreon.com/juliangruber). Not sure how much of my modules you're using? Try [feross/thanks](https://github.com/feross/thanks)! + +## License + +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/brace-expansion/index.js b/node_modules/brace-expansion/index.js new file mode 100644 index 0000000..0478be8 --- /dev/null +++ b/node_modules/brace-expansion/index.js @@ -0,0 +1,201 @@ +var concatMap = require('concat-map'); +var balanced = require('balanced-match'); + +module.exports = expandTop; + +var escSlash = '\0SLASH'+Math.random()+'\0'; +var escOpen = '\0OPEN'+Math.random()+'\0'; +var escClose = '\0CLOSE'+Math.random()+'\0'; +var escComma = '\0COMMA'+Math.random()+'\0'; +var escPeriod = '\0PERIOD'+Math.random()+'\0'; + +function numeric(str) { + return parseInt(str, 10) == str + ? parseInt(str, 10) + : str.charCodeAt(0); +} + +function escapeBraces(str) { + return str.split('\\\\').join(escSlash) + .split('\\{').join(escOpen) + .split('\\}').join(escClose) + .split('\\,').join(escComma) + .split('\\.').join(escPeriod); +} + +function unescapeBraces(str) { + return str.split(escSlash).join('\\') + .split(escOpen).join('{') + .split(escClose).join('}') + .split(escComma).join(',') + .split(escPeriod).join('.'); +} + + +// Basically just str.split(","), but handling cases +// where we have nested braced sections, which should be +// treated as individual members, like {a,{b,c},d} +function parseCommaParts(str) { + if (!str) + return ['']; + + var parts = []; + var m = balanced('{', '}', str); + + if (!m) + return str.split(','); + + var pre = m.pre; + var body = m.body; + var post = m.post; + var p = pre.split(','); + + p[p.length-1] += '{' + body + '}'; + var postParts = parseCommaParts(post); + if (post.length) { + p[p.length-1] += postParts.shift(); + p.push.apply(p, postParts); + } + + parts.push.apply(parts, p); + + return parts; +} + +function expandTop(str) { + if (!str) + return []; + + // I don't know why Bash 4.3 does this, but it does. + // Anything starting with {} will have the first two bytes preserved + // but *only* at the top level, so {},a}b will not expand to anything, + // but a{},b}c will be expanded to [a}c,abc]. + // One could argue that this is a bug in Bash, but since the goal of + // this module is to match Bash's rules, we escape a leading {} + if (str.substr(0, 2) === '{}') { + str = '\\{\\}' + str.substr(2); + } + + return expand(escapeBraces(str), true).map(unescapeBraces); +} + +function identity(e) { + return e; +} + +function embrace(str) { + return '{' + str + '}'; +} +function isPadded(el) { + return /^-?0\d/.test(el); +} + +function lte(i, y) { + return i <= y; +} +function gte(i, y) { + return i >= y; +} + +function expand(str, isTop) { + var expansions = []; + + var m = balanced('{', '}', str); + if (!m || /\$$/.test(m.pre)) return [str]; + + var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); + var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); + var isSequence = isNumericSequence || isAlphaSequence; + var isOptions = m.body.indexOf(',') >= 0; + if (!isSequence && !isOptions) { + // {a},b} + if (m.post.match(/,.*\}/)) { + str = m.pre + '{' + m.body + escClose + m.post; + return expand(str); + } + return [str]; + } + + var n; + if (isSequence) { + n = m.body.split(/\.\./); + } else { + n = parseCommaParts(m.body); + if (n.length === 1) { + // x{{a,b}}y ==> x{a}y x{b}y + n = expand(n[0], false).map(embrace); + if (n.length === 1) { + var post = m.post.length + ? expand(m.post, false) + : ['']; + return post.map(function(p) { + return m.pre + n[0] + p; + }); + } + } + } + + // at this point, n is the parts, and we know it's not a comma set + // with a single entry. + + // no need to expand pre, since it is guaranteed to be free of brace-sets + var pre = m.pre; + var post = m.post.length + ? expand(m.post, false) + : ['']; + + var N; + + if (isSequence) { + var x = numeric(n[0]); + var y = numeric(n[1]); + var width = Math.max(n[0].length, n[1].length) + var incr = n.length == 3 + ? Math.abs(numeric(n[2])) + : 1; + var test = lte; + var reverse = y < x; + if (reverse) { + incr *= -1; + test = gte; + } + var pad = n.some(isPadded); + + N = []; + + for (var i = x; test(i, y); i += incr) { + var c; + if (isAlphaSequence) { + c = String.fromCharCode(i); + if (c === '\\') + c = ''; + } else { + c = String(i); + if (pad) { + var need = width - c.length; + if (need > 0) { + var z = new Array(need + 1).join('0'); + if (i < 0) + c = '-' + z + c.slice(1); + else + c = z + c; + } + } + } + N.push(c); + } + } else { + N = concatMap(n, function(el) { return expand(el, false) }); + } + + for (var j = 0; j < N.length; j++) { + for (var k = 0; k < post.length; k++) { + var expansion = pre + N[j] + post[k]; + if (!isTop || isSequence || expansion) + expansions.push(expansion); + } + } + + return expansions; +} + diff --git a/node_modules/brace-expansion/package.json b/node_modules/brace-expansion/package.json new file mode 100644 index 0000000..a18faa8 --- /dev/null +++ b/node_modules/brace-expansion/package.json @@ -0,0 +1,47 @@ +{ + "name": "brace-expansion", + "description": "Brace expansion as known from sh/bash", + "version": "1.1.11", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/brace-expansion.git" + }, + "homepage": "https://github.com/juliangruber/brace-expansion", + "main": "index.js", + "scripts": { + "test": "tape test/*.js", + "gentest": "bash test/generate.sh", + "bench": "matcha test/perf/bench.js" + }, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + }, + "devDependencies": { + "matcha": "^0.7.0", + "tape": "^4.6.0" + }, + "keywords": [], + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "license": "MIT", + "testling": { + "files": "test/*.js", + "browsers": [ + "ie/8..latest", + "firefox/20..latest", + "firefox/nightly", + "chrome/25..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2..latest" + ] + } +} diff --git a/node_modules/braces/LICENSE b/node_modules/braces/LICENSE new file mode 100644 index 0000000..9af4a67 --- /dev/null +++ b/node_modules/braces/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/braces/README.md b/node_modules/braces/README.md new file mode 100644 index 0000000..f59dd60 --- /dev/null +++ b/node_modules/braces/README.md @@ -0,0 +1,586 @@ +# 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**: `10,000` + +**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.keepEscaping + +**Type**: `Boolean` + +**Default**: `undefined` + +**Description**: Do not 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 +● expand - range (expanded) + braces x 53,167 ops/sec ±0.12% (102 runs sampled) + minimatch x 11,378 ops/sec ±0.10% (102 runs sampled) +● expand - range (optimized for regex) + braces x 373,442 ops/sec ±0.04% (100 runs sampled) + minimatch x 3,262 ops/sec ±0.18% (100 runs sampled) +● expand - nested ranges (expanded) + braces x 33,921 ops/sec ±0.09% (99 runs sampled) + minimatch x 10,855 ops/sec ±0.28% (100 runs sampled) +● expand - nested ranges (optimized for regex) + braces x 287,479 ops/sec ±0.52% (98 runs sampled) + minimatch x 3,219 ops/sec ±0.28% (101 runs sampled) +● expand - set (expanded) + braces x 238,243 ops/sec ±0.19% (97 runs sampled) + minimatch x 538,268 ops/sec ±0.31% (96 runs sampled) +● expand - set (optimized for regex) + braces x 321,844 ops/sec ±0.10% (97 runs sampled) + minimatch x 140,600 ops/sec ±0.15% (100 runs sampled) +● expand - nested sets (expanded) + braces x 165,371 ops/sec ±0.42% (96 runs sampled) + minimatch x 337,720 ops/sec ±0.28% (100 runs sampled) +● expand - nested sets (optimized for regex) + braces x 242,948 ops/sec ±0.12% (99 runs sampled) + minimatch x 87,403 ops/sec ±0.79% (96 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._ diff --git a/node_modules/braces/index.js b/node_modules/braces/index.js new file mode 100644 index 0000000..d222c13 --- /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 (const pattern of input) { + const 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..dce69be --- /dev/null +++ b/node_modules/braces/lib/compile.js @@ -0,0 +1,60 @@ +'use strict'; + +const fill = require('fill-range'); +const utils = require('./utils'); + +const compile = (ast, options = {}) => { + const walk = (node, parent = {}) => { + const invalidBlock = utils.isInvalidBrace(parent); + const invalidNode = node.invalid === true && options.escapeInvalid === true; + const invalid = invalidBlock === true || invalidNode === true; + const prefix = options.escapeInvalid === true ? '\\' : ''; + let output = ''; + + if (node.isOpen === true) { + return prefix + node.value; + } + + if (node.isClose === true) { + console.log('node.isClose', prefix, node.value); + 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) { + const args = utils.reduce(node.nodes); + const range = fill(...args, { ...options, wrap: false, toRegex: true, strictZeros: true }); + + if (range.length !== 0) { + return args.length > 1 && range.length > 1 ? `(${range})` : range; + } + } + + if (node.nodes) { + for (const 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..2bb3b88 --- /dev/null +++ b/node_modules/braces/lib/constants.js @@ -0,0 +1,57 @@ +'use strict'; + +module.exports = { + MAX_LENGTH: 10000, + + // 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..35b2c41 --- /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) => { + const 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 (const item of queue) { + if (Array.isArray(item)) { + for (const 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 = {}) => { + const rangeLimit = options.rangeLimit === undefined ? 1000 : options.rangeLimit; + + const 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) { + const 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; + } + + const 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++) { + const 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..3a6988e --- /dev/null +++ b/node_modules/braces/lib/parse.js @@ -0,0 +1,331 @@ +'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'); + } + + const opts = options || {}; + const 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})`); + } + + const ast = { type: 'root', input, nodes: [] }; + const stack = [ast]; + let block = ast; + let prev = ast; + let brackets = 0; + const length = input.length; + let index = 0; + let depth = 0; + let value; + + /** + * 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 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) { + const 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++; + + const dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true; + const 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; + } + + const 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; + const 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) { + const 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(); + + const 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) + const parent = stack[stack.length - 1]; + const 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..8bcf872 --- /dev/null +++ b/node_modules/braces/lib/stringify.js @@ -0,0 +1,32 @@ +'use strict'; + +const utils = require('./utils'); + +module.exports = (ast, options = {}) => { + const stringify = (node, parent = {}) => { + const invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent); + const 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 (const 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..d19311f --- /dev/null +++ b/node_modules/braces/lib/utils.js @@ -0,0 +1,122 @@ +'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) => { + const 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++) { + const ele = arr[i]; + + if (Array.isArray(ele)) { + flat(ele); + continue; + } + + if (ele !== undefined) { + 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..c3c056e --- /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.3", + "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.1.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..f31bd2c --- /dev/null +++ b/node_modules/browserslist/README.md @@ -0,0 +1,67 @@ +# 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 fully supports es6-module", + "maintained node versions" + ] +``` + +Or in `.browserslistrc` config: + +```yaml +# Browsers that we support + +defaults and fully 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 100644 index 0000000..7b5236d --- /dev/null +++ b/node_modules/browserslist/cli.js @@ -0,0 +1,156 @@ +#!/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 8 */ + process.stdout.write( + 'The --update-db command is deprecated.\n' + + 'Please use npx update-browserslist-db@latest instead.\n' + ) + process.stdout.write('Browserslist DB update will still be made.\n') + 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..e47c5cf --- /dev/null +++ b/node_modules/browserslist/index.d.ts @@ -0,0 +1,201 @@ +/** + * 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]: { + [version: string]: string + } + } + } + + /** + * 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 + BROWSERSLIST_ROOT_PATH?: string + } + } +} + +export = browserslist diff --git a/node_modules/browserslist/index.js b/node_modules/browserslist/index.js new file mode 100644 index 0000000..717965e --- /dev/null +++ b/node_modules/browserslist/index.js @@ -0,0 +1,1215 @@ +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' +var OP_MOB_BLINK_FIRST = 14 + +// 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 parseLatestFloat(v) > version + } + } else if (sign === '>=') { + return function (v) { + return parseLatestFloat(v) >= version + } + } else if (sign === '<') { + return function (v) { + return parseFloat(v) < version + } + } else { + return function (v) { + return parseFloat(v) <= version + } + } + + function parseLatestFloat(v) { + return parseFloat(v.split('-')[1] || v) + } +} + +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 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 + 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 copyObject(obj) { + var copy = {} + for (var key in obj) { + copy[key] = obj[key] + } + return copy +} + +function normalizeAndroidData(android, chrome) { + android.released = normalizeAndroidVersions(android.released, chrome.released) + android.versions = normalizeAndroidVersions(android.versions, chrome.versions) + android.releaseDate = copyObject(android.releaseDate) + 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.' + ) +} + +// Adjusts last X versions queries for some mobile browsers, +// where caniuse data jumps from a legacy version to the latest +function filterJumps(list, name, nVersions, context) { + var jump = 1 + switch (name) { + case 'android': + if (context.mobileToDesktop) return list + var released = browserslist.data.chrome.released + jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST) + break + case 'op_mob': + var latest = browserslist.data.op_mob.released.slice(-1)[0] + jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1 + break + default: + return list + } + if (nVersions <= jump) { + return list.slice(-1) + } + return list.slice(jump - 1 - nVersions) +} + +function isSupported(flags, withPartial) { + return ( + typeof flags === 'string' && + (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0)) + ) +} + +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 +// Note op_mob is not included as its chromium versions are not in sync with Opera desktop +browserslist.desktopNames = { + and_chr: 'chrome', + and_ff: 'firefox', + ie_mob: 'ie', + 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)) + list = filterJumps(list, data.name, 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)) + list = filterJumps(list, data.name, 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)) + list = filterJumps(list, data.name, 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)) + list = filterJumps(list, data.name, 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: ['supportType', 'feature'], + regexp: /^(?:(fully|partially)\s+)?supports\s+([\w-]+)$/, + select: function (context, node) { + env.loadFeature(browserslist.cache, node.feature) + var withPartial = node.supportType !== 'fully' + var features = browserslist.cache[node.feature] + var result = [] + for (var name in features) { + var data = byName(name, context) + // Only check desktop when latest released mobile has support + var iMax = data.released.length - 1 + while (iMax >= 0) { + if (data.released[iMax] in features[name]) break + iMax-- + } + var checkDesktop = + context.mobileToDesktop && + name in browserslist.desktopNames && + isSupported(features[name][data.released[iMax]], withPartial) + data.versions.forEach(function (version) { + var flags = features[name][version] + if (flags === undefined && checkDesktop) { + flags = features[browserslist.desktopNames[name]][version] + } + if (isSupported(flags, withPartial)) { + result.push(name + ' ' + 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 115', 'firefox 128'] + } + }, + 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.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..a124ba6 --- /dev/null +++ b/node_modules/browserslist/node.js @@ -0,0 +1,419 @@ +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 { + if (!pathInRoot(loc)) break + var result = callback(loc) + if (typeof result !== 'undefined') return result + } while (loc !== (loc = path.dirname(loc))) + return undefined +} + +function pathInRoot(p) { + if (!process.env.BROWSERSLIST_ROOT_PATH) return true + var rootPath = path.resolve(process.env.BROWSERSLIST_ROOT_PATH) + if (path.relative(rootPath, p).substring(0, 2) === '..') { + return false + } + return true +} + +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] + // 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) { + features[name][i] = {} + 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..20b97f9 --- /dev/null +++ b/node_modules/browserslist/package.json @@ -0,0 +1,44 @@ +{ + "name": "browserslist", + "version": "4.23.3", + "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.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "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..ad15cd1 --- /dev/null +++ b/node_modules/caniuse-lite/data/agents.js @@ -0,0 +1 @@ +module.exports={A:{A:{K:0,E:0,F:0.046943,G:0.0625907,A:0,B:0.500725,bC:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bC","K","E","F","G","A","B","","",""],E:"IE",F:{bC:962323200,K:998870400,E:1161129600,F:1237420800,G:1300060800,A:1346716800,B:1381968000}},B:{A:{"1":0.007222,"2":0.014444,"3":0.010833,"4":0.007222,"5":0.007222,"6":0.010833,"7":0.007222,"8":0.014444,"9":0.03611,C:0,L:0,M:0,H:0,N:0,O:0.003611,P:0.043332,Q:0,I:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0.014444,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0.007222,r:0.007222,s:0.064998,t:0.007222,u:0.007222,AB:0.021666,BB:0.032499,CB:0.021666,DB:0.039721,EB:0.122774,FB:3.94682,D:0.512762},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","L","M","H","N","O","P","Q","I","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","D","","",""],E:"Edge",F:{"1":1680825600,"2":1683158400,"3":1685664000,"4":1689897600,"5":1692576000,"6":1694649600,"7":1697155200,"8":1698969600,"9":1701993600,C:1438128000,L:1447286400,M:1470096000,H:1491868800,N:1508198400,O:1525046400,P:1542067200,Q:1579046400,I: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,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,q:1666915200,r:1670198400,s:1673481600,t:1675900800,u:1678665600,AB:1706227200,BB:1708732800,CB:1711152000,DB:1713398400,EB:1715990400,FB:1718841600,D:1721865600},D:{C:"ms",L:"ms",M:"ms",H:"ms",N:"ms",O:"ms",P:"ms"}},C:{A:{"0":0,"1":0,"2":0.007222,"3":0,"4":0.346656,"5":0,"6":0.007222,"7":0.07222,"8":0,"9":0.007222,cC:0,DC:0,J:0,GB:0,K:0,E:0,F:0,G:0,A:0,B:0.018055,C:0,L:0,M:0,H:0,N:0,O:0,P:0,HB:0,v:0,w:0,x:0,y:0,z:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0.007222,aB:0.007222,bB:0.007222,cB:0,dB:0,eB:0,fB:0,gB:0.003611,hB:0,iB:0.043332,jB:0.003611,kB:0.007222,lB:0,mB:0.018055,nB:0,oB:0,EC:0.003611,pB:0,FC:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,"0B":0.003611,"1B":0,"2B":0,"3B":0,"4B":0,"5B":0,"6B":0.014444,Q:0,I:0,R:0,GC:0,S:0,T:0,U:0,V:0,W:0,X:0.007222,Y:0,Z:0,a:0,b:0,c:0,d:0.003611,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0.007222,m:0.007222,n:0,o:0.003611,p:0,q:0.003611,r:0.003611,s:0.010833,t:0,u:0,AB:0.010833,BB:0.007222,CB:0.028888,DB:0.010833,EB:0.018055,FB:0.046943,D:0.592204,HC:0.953304,IC:0.007222,JC:0,dC:0,eC:0,fC:0,gC:0},B:"moz",C:["cC","DC","fC","gC","J","GB","K","E","F","G","A","B","C","L","M","H","N","O","P","HB","v","w","x","y","z","0","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","EC","pB","FC","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","Q","I","R","GC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","D","HC","IC","JC","dC","eC"],E:"Firefox",F:{"0":1379376000,"1":1681171200,"2":1683590400,"3":1686009600,"4":1688428800,"5":1690848000,"6":1693267200,"7":1695686400,"8":1698105600,"9":1700524800,cC:1161648000,DC:1213660800,fC:1246320000,gC:1264032000,J:1300752000,GB:1308614400,K:1313452800,E:1317081600,F:1317081600,G:1320710400,A:1324339200,B:1327968000,C:1331596800,L:1335225600,M:1338854400,H:1342483200,N:1346112000,O:1349740800,P:1353628800,HB:1357603200,v:1361232000,w:1364860800,x:1368489600,y:1372118400,z:1375747200,IB:1386633600,JB:1391472000,KB:1395100800,LB:1398729600,MB:1402358400,NB:1405987200,OB:1409616000,PB:1413244800,QB:1417392000,RB:1421107200,SB:1424736000,TB:1428278400,UB:1431475200,VB:1435881600,WB:1439251200,XB:1442880000,YB:1446508800,ZB:1450137600,aB:1453852800,bB:1457395200,cB:1461628800,dB:1465257600,eB:1470096000,fB:1474329600,gB:1479168000,hB:1485216000,iB:1488844800,jB:1492560000,kB:1497312000,lB:1502150400,mB:1506556800,nB:1510617600,oB:1516665600,EC:1520985600,pB:1525824000,FC:1529971200,qB:1536105600,rB:1540252800,sB:1544486400,tB:1548720000,uB:1552953600,vB:1558396800,wB:1562630400,xB:1567468800,yB:1571788800,zB:1575331200,"0B":1578355200,"1B":1581379200,"2B":1583798400,"3B":1586304000,"4B":1588636800,"5B":1591056000,"6B":1593475200,Q:1595894400,I:1598313600,R:1600732800,GC: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,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,q:1668470400,r:1670889600,s:1673913600,t:1676332800,u:1678752000,AB:1702944000,BB:1705968000,CB:1708387200,DB:1710806400,EB:1713225600,FB:1715644800,D:1718064000,HC:1720483200,IC:1722902400,JC:null,dC:null,eC:null}},D:{A:{"0":0,"1":0.050554,"2":0.093886,"3":0.090275,"4":0.03611,"5":0.158884,"6":0.104719,"7":0.075831,"8":0.064998,"9":0.111941,J:0,GB:0,K:0,E:0,F:0,G:0,A:0,B:0,C:0,L:0,M:0,H:0,N:0,O:0,P:0,HB:0,v:0,w:0,x:0,y:0,z:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0.010833,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0.003611,cB:0,dB:0.003611,eB:0.021666,fB:0.021666,gB:0.018055,hB:0,iB:0.003611,jB:0.007222,kB:0,lB:0,mB:0.010833,nB:0,oB:0.007222,EC:0,pB:0,FC:0.003611,qB:0,rB:0,sB:0,tB:0,uB:0.025277,vB:0.007222,wB:0,xB:0.014444,yB:0.097497,zB:0.003611,"0B":0,"1B":0.014444,"2B":0.010833,"3B":0.010833,"4B":0.007222,"5B":0.010833,"6B":0.018055,Q:0.10833,I:0.014444,R:0.021666,S:0.03611,T:0.007222,U:0.014444,V:0.028888,W:0.075831,X:0.014444,Y:0.010833,Z:0.014444,a:0.050554,b:0.025277,c:0.021666,d:0.050554,e:0.014444,f:0.014444,g:0.021666,h:0.054165,i:0.032499,j:0.021666,k:0.021666,l:0.014444,m:0.126385,n:0.064998,o:0.018055,p:0.032499,q:0.03611,r:0.054165,s:1.46607,t:0.028888,u:0.043332,AB:0.148051,BB:0.184161,CB:0.176939,DB:0.278047,EB:0.769143,FB:14.4007,D:1.68273,HC:0.018055,IC:0,JC:0},B:"webkit",C:["","","","","","","","J","GB","K","E","F","G","A","B","C","L","M","H","N","O","P","HB","v","w","x","y","z","0","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","EC","pB","FC","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","Q","I","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","D","HC","IC","JC"],E:"Chrome",F:{"0":1357862400,"1":1680566400,"2":1682985600,"3":1685404800,"4":1689724800,"5":1692057600,"6":1694476800,"7":1696896000,"8":1698710400,"9":1701993600,J:1264377600,GB:1274745600,K:1283385600,E:1287619200,F:1291248000,G:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,H:1316131200,N:1319500800,O:1323734400,P:1328659200,HB:1332892800,v:1337040000,w:1340668800,x:1343692800,y:1348531200,z:1352246400,IB:1361404800,JB:1364428800,KB:1369094400,LB:1374105600,MB:1376956800,NB:1384214400,OB:1389657600,PB:1392940800,QB:1397001600,RB:1400544000,SB:1405468800,TB:1409011200,UB:1412640000,VB:1416268800,WB:1421798400,XB:1425513600,YB:1429401600,ZB:1432080000,aB:1437523200,bB:1441152000,cB:1444780800,dB:1449014400,eB:1453248000,fB:1456963200,gB:1460592000,hB:1464134400,iB:1469059200,jB:1472601600,kB:1476230400,lB:1480550400,mB:1485302400,nB:1489017600,oB:1492560000,EC:1496707200,pB:1500940800,FC:1504569600,qB:1508198400,rB:1512518400,sB:1516752000,tB:1520294400,uB:1523923200,vB:1527552000,wB:1532390400,xB:1536019200,yB:1539648000,zB:1543968000,"0B":1548720000,"1B":1552348800,"2B":1555977600,"3B":1559606400,"4B":1564444800,"5B":1568073600,"6B":1571702400,Q:1575936000,I: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,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,q:1666656000,r:1669680000,s:1673308800,t:1675728000,u:1678147200,AB:1705968000,BB:1708387200,CB:1710806400,DB:1713225600,EB:1715644800,FB:1718064000,D:1721174400,HC:null,IC:null,JC:null}},E:{A:{J:0,GB:0,K:0,E:0,F:0,G:0.003611,A:0,B:0,C:0,L:0.007222,M:0.032499,H:0.007222,hC:0,KC:0,iC:0,jC:0,kC:0,lC:0,LC:0,"7B":0.007222,"8B":0.010833,mC:0.061387,nC:0.086664,oC:0.025277,MC:0.010833,NC:0.021666,"9B":0.032499,pC:0.227493,AC:0.028888,OC:0.043332,PC:0.03611,QC:0.10833,RC:0.025277,SC:0.043332,qC:0.299713,BC:0.021666,TC:0.043332,UC:0.043332,VC:0.050554,WC:0.133607,XC:1.76578,YC:0.010833,CC:0.010833,rC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","hC","KC","J","GB","iC","K","jC","E","kC","F","G","lC","A","LC","B","7B","C","8B","L","mC","M","nC","H","oC","MC","NC","9B","pC","AC","OC","PC","QC","RC","SC","qC","BC","TC","UC","VC","WC","XC","YC","CC","rC"],E:"Safari",F:{hC:1205798400,KC:1226534400,J:1244419200,GB:1275868800,iC:1311120000,K:1343174400,jC:1382400000,E:1382400000,kC:1410998400,F:1413417600,G:1443657600,lC:1458518400,A:1474329600,LC:1490572800,B:1505779200,"7B":1522281600,C:1537142400,"8B":1553472000,L:1568851200,mC:1585008000,M:1600214400,nC:1619395200,H:1632096000,oC:1635292800,MC:1639353600,NC:1647216000,"9B":1652745600,pC:1658275200,AC:1662940800,OC:1666569600,PC:1670889600,QC:1674432000,RC:1679875200,SC:1684368000,qC:1690156800,BC:1695686400,TC:1698192000,UC:1702252800,VC:1705881600,WC:1709596800,XC:1715558400,YC:null,CC:null,rC:null}},F:{A:{"0":0,G:0,B:0,C:0,H:0,N:0,O:0,P:0,HB:0,v:0,w:0,x:0,y:0,z:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0.003611,TB:0,UB:0,VB:0,WB:0.003611,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0.018055,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,"0B":0,"1B":0,"2B":0,"3B":0,"4B":0,"5B":0,"6B":0,Q:0,I:0,R:0,GC:0,S:0.028888,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0.039721,f:0,g:0,h:0,i:0,j:0,k:0,l:0.028888,m:0,n:0,o:0,p:0,q:0,r:0,s:0.285269,t:0.010833,u:0.310546,sC:0,tC:0,uC:0,vC:0,"7B":0,ZC:0,wC:0,"8B":0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","G","sC","tC","uC","vC","B","7B","ZC","wC","C","8B","H","N","O","P","HB","v","w","x","y","z","0","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","Q","I","R","GC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","","",""],E:"Opera",F:{"0":1413331200,G:1150761600,sC:1223424000,tC:1251763200,uC:1267488000,vC:1277942400,B:1292457600,"7B":1302566400,ZC:1309219200,wC:1323129600,C:1323129600,"8B":1352073600,H:1372723200,N:1377561600,O:1381104000,P:1386288000,HB:1390867200,v:1393891200,w:1399334400,x:1401753600,y:1405987200,z:1409616000,IB:1417132800,JB:1422316800,KB:1425945600,LB:1430179200,MB:1433808000,NB:1438646400,OB:1442448000,PB:1445904000,QB:1449100800,RB:1454371200,SB:1457308800,TB:1462320000,UB:1465344000,VB:1470096000,WB:1474329600,XB:1477267200,YB:1481587200,ZB:1486425600,aB:1490054400,bB:1494374400,cB:1498003200,dB:1502236800,eB:1506470400,fB:1510099200,gB:1515024000,hB:1517961600,iB:1521676800,jB:1525910400,kB:1530144000,lB:1534982400,mB:1537833600,nB:1543363200,oB:1548201600,pB:1554768000,qB:1561593600,rB:1566259200,sB:1570406400,tB:1573689600,uB:1578441600,vB:1583971200,wB:1587513600,xB:1592956800,yB:1595894400,zB:1600128000,"0B":1603238400,"1B":1613520000,"2B":1612224000,"3B":1616544000,"4B":1619568000,"5B":1623715200,"6B":1627948800,Q:1631577600,I:1633392000,R:1635984000,GC: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,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000,q:1707264000,r:1710115200,s:1711497600,t:1716336000,u:1719273600},D:{G:"o",B:"o",C:"o",sC:"o",tC:"o",uC:"o",vC:"o","7B":"o",ZC:"o",wC:"o","8B":"o"}},G:{A:{F:0,KC:0,xC:0,aC:0.00441539,yC:0.0014718,zC:0.00883077,"0C":0.00883077,"1C":0,"2C":0.00735898,"3C":0.0294359,"4C":0.00588718,"5C":0.0515128,"6C":0.135405,"7C":0.014718,"8C":0.0103026,"9C":0.189862,AD:0.00294359,BD:0.0323795,CD:0.0103026,DD:0.0441539,ED:0.13099,FD:0.1148,GD:0.0574,MC:0.0618154,NC:0.0706462,"9B":0.0853641,HD:0.780051,AC:0.15601,OC:0.334098,PC:0.166313,QC:0.279641,RC:0.0662308,SC:0.117744,ID:0.974328,BC:0.0883077,TC:0.142764,UC:0.139821,VC:0.207523,WC:0.518072,XC:9.49014,YC:0.0735898,CC:0.0971385},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","KC","xC","aC","yC","zC","0C","F","1C","2C","3C","4C","5C","6C","7C","8C","9C","AD","BD","CD","DD","ED","FD","GD","MC","NC","9B","HD","AC","OC","PC","QC","RC","SC","ID","BC","TC","UC","VC","WC","XC","YC","CC",""],E:"Safari on iOS",F:{KC:1270252800,xC:1283904000,aC:1299628800,yC:1331078400,zC:1359331200,"0C":1394409600,F:1410912000,"1C":1413763200,"2C":1442361600,"3C":1458518400,"4C":1473724800,"5C":1490572800,"6C":1505779200,"7C":1522281600,"8C":1537142400,"9C":1553472000,AD:1568851200,BD:1572220800,CD:1580169600,DD:1585008000,ED:1600214400,FD:1619395200,GD:1632096000,MC:1639353600,NC:1647216000,"9B":1652659200,HD:1658275200,AC:1662940800,OC:1666569600,PC:1670889600,QC:1674432000,RC:1679875200,SC:1684368000,ID:1690156800,BC:1694995200,TC:1698192000,UC:1702252800,VC:1705881600,WC:1709596800,XC:1715558400,YC:null,CC:null}},H:{A:{JD:0.05},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","JD","","",""],E:"Opera Mini",F:{JD:1426464000}},I:{A:{DC:0,J:0.0000811276,D:0.808599,KD:0,LD:0.000162255,MD:0,ND:0.000486766,aC:0.00032451,OD:0,PD:0.00129804},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","KD","LD","MD","DC","J","ND","aC","OD","PD","D","","",""],E:"Android Browser",F:{KD:1256515200,LD:1274313600,MD:1291593600,DC:1298332800,J:1318896000,ND:1341792000,aC:1374624000,OD:1386547200,PD:1401667200,D:1721692800}},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,I:1.119,"7B":0,ZC:0,"8B":0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","7B","ZC","C","8B","I","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752000,"7B":1314835200,ZC:1318291200,C:1330300800,"8B":1349740800,I:1709769600},D:{I:"webkit"}},L:{A:{D:44.0982},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","","",""],E:"Chrome for Android",F:{D:1721692800}},M:{A:{D:0.35134},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","","",""],E:"Firefox for Android",F:{D:1718064000}},N:{A:{A:0,B:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456000}},O:{A:{"9B":1.05402},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","9B","","",""],E:"UC Browser for Android",F:{"9B":1710115200},D:{"9B":"webkit"}},P:{A:{"0":1.65553,J:0.0973844,v:0.021641,w:0.043282,x:0.0649229,y:0.0757434,z:0.0757434,QD:0.0108205,RD:0.0108205,SD:0.0324615,TD:0,UD:0,LC:0,VD:0,WD:0,XD:0.0108205,YD:0,ZD:0,AC:0,BC:0.021641,CC:0.0108205,aD:0.021641},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","J","QD","RD","SD","TD","UD","LC","VD","WD","XD","YD","ZD","AC","BC","CC","aD","v","w","x","y","z","0","","",""],E:"Samsung Internet",F:{"0":1715126400,J:1461024000,QD:1481846400,RD:1509408000,SD:1528329600,TD:1546128000,UD:1554163200,LC:1567900800,VD:1582588800,WD:1593475200,XD:1605657600,YD:1618531200,ZD:1629072000,AC:1640736000,BC:1651708800,CC:1659657600,aD:1667260800,v:1677369600,w:1684454400,x:1689292800,y:1697587200,z:1711497600}},Q:{A:{bD:0.338564},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bD","","",""],E:"QQ Browser",F:{bD:1710288000}},R:{A:{cD:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","cD","","",""],E:"Baidu Browser",F:{cD:1710201600}},S:{A:{dD:0.070268,eD:0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","dD","eD","","",""],E:"KaiOS Browser",F:{dD:1527811200,eD: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..4a66d96 --- /dev/null +++ b/node_modules/caniuse-lite/data/browserVersions.js @@ -0,0 +1 @@ +module.exports={"0":"25","1":"112","2":"113","3":"114","4":"115","5":"116","6":"117","7":"118","8":"119","9":"120",A:"10",B:"11",C:"12",D:"127",E:"7",F:"8",G:"9",H:"15",I:"80",J:"4",K:"6",L:"13",M:"14",N:"16",O:"17",P:"18",Q:"79",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:"100",k:"101",l:"102",m:"103",n:"104",o:"105",p:"106",q:"107",r:"108",s:"109",t:"110",u:"111",v:"20",w:"21",x:"22",y:"23",z:"24",AB:"121",BB:"122",CB:"123",DB:"124",EB:"125",FB:"126",GB:"5",HB:"19",IB:"26",JB:"27",KB:"28",LB:"29",MB:"30",NB:"31",OB:"32",PB:"33",QB:"34",RB:"35",SB:"36",TB:"37",UB:"38",VB:"39",WB:"40",XB:"41",YB:"42",ZB:"43",aB:"44",bB:"45",cB:"46",dB:"47",eB:"48",fB:"49",gB:"50",hB:"51",iB:"52",jB:"53",kB:"54",lB:"55",mB:"56",nB:"57",oB:"58",pB:"60",qB:"62",rB:"63",sB:"64",tB:"65",uB:"66",vB:"67",wB:"68",xB:"69",yB:"70",zB:"71","0B":"72","1B":"73","2B":"74","3B":"75","4B":"76","5B":"77","6B":"78","7B":"11.1","8B":"12.1","9B":"15.5",AC:"16.0",BC:"17.0",CC:"18.0",DC:"3",EC:"59",FC:"61",GC:"82",HC:"128",IC:"129",JC:"130",KC:"3.2",LC:"10.1",MC:"15.2-15.3",NC:"15.4",OC:"16.1",PC:"16.2",QC:"16.3",RC:"16.4",SC:"16.5",TC:"17.1",UC:"17.2",VC:"17.3",WC:"17.4",XC:"17.5",YC:"17.6",ZC:"11.5",aC:"4.2-4.3",bC:"5.5",cC:"2",dC:"131",eC:"132",fC:"3.5",gC:"3.6",hC:"3.1",iC:"5.1",jC:"6.1",kC:"7.1",lC:"9.1",mC:"13.1",nC:"14.1",oC:"15.1",pC:"15.6",qC:"16.6",rC:"TP",sC:"9.5-9.6",tC:"10.0-10.1",uC:"10.5",vC:"10.6",wC:"11.6",xC:"4.0-4.1",yC:"5.0-5.1",zC:"6.0-6.1","0C":"7.0-7.1","1C":"8.1-8.4","2C":"9.0-9.2","3C":"9.3","4C":"10.0-10.2","5C":"10.3","6C":"11.0-11.2","7C":"11.3-11.4","8C":"12.0-12.1","9C":"12.2-12.5",AD:"13.0-13.1",BD:"13.2",CD:"13.3",DD:"13.4-13.7",ED:"14.0-14.4",FD:"14.5-14.8",GD:"15.0-15.1",HD:"15.6-15.8",ID:"16.6-16.7",JD:"all",KD:"2.1",LD:"2.2",MD:"2.3",ND:"4.1",OD:"4.4",PD:"4.4.3-4.4.4",QD:"5.0-5.4",RD:"6.2-6.4",SD:"7.2-7.4",TD:"8.2",UD:"9.2",VD:"11.1-11.2",WD:"12.0",XD:"13.0",YD:"14.0",ZD:"15.0",aD:"19.0",bD:"14.9",cD:"13.52",dD:"2.5",eD:"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..dbebb83 --- /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-anchor-positioning":require("./features/css-anchor-positioning"),"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-cascade-scope":require("./features/css-cascade-scope"),"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-module-scripts":require("./features/css-module-scripts"),"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-text-wrap-balance":require("./features/css-text-wrap-balance"),"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-backdrop-pseudo-element":require("./features/mdn-css-backdrop-pseudo-element"),"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"),"passkeys":require("./features/passkeys"),"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"),"selectlist":require("./features/selectlist"),"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"),"view-transitions":require("./features/view-transitions"),"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-bigint":require("./features/wasm-bigint"),"wasm-bulk-memory":require("./features/wasm-bulk-memory"),"wasm-extended-const":require("./features/wasm-extended-const"),"wasm-gc":require("./features/wasm-gc"),"wasm-multi-memory":require("./features/wasm-multi-memory"),"wasm-multi-value":require("./features/wasm-multi-value"),"wasm-mutable-globals":require("./features/wasm-mutable-globals"),"wasm-nontrapping-fptoint":require("./features/wasm-nontrapping-fptoint"),"wasm-reference-types":require("./features/wasm-reference-types"),"wasm-relaxed-simd":require("./features/wasm-relaxed-simd"),"wasm-signext":require("./features/wasm-signext"),"wasm-simd":require("./features/wasm-simd"),"wasm-tail-calls":require("./features/wasm-tail-calls"),"wasm-threads":require("./features/wasm-threads"),"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"),"zstd":require("./features/zstd")}; 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..9c37862 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/aac.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"cC DC J GB K E F G A B C L M H N O P HB v w fC gC","132":"0 1 2 3 4 5 6 7 8 9 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G","16":"A B"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC"},H:{"2":"JD"},I:{"1":"DC J D ND aC OD PD","2":"KD LD MD"},J:{"1":"A","2":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"132":"D"},N:{"1":"A","2":"B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"132":"dD eD"}},B:6,C:"AAC audio file format",D:true}; 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..0728f29 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/abortcontroller.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H"},C:{"1":"1 2 3 4 5 6 7 8 9 nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB"},E:{"1":"L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B hC KC iC jC kC lC LC","130":"C 7B"},F:{"1":"jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB sC tC uC vC 7B ZC wC 8B"},G:{"1":"7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:1,C:"AbortController & AbortSignal",D:true}; 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..a940007 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ac3-ec3.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"C L M H N O P","2":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C","132":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E","132":"A"},K:{"2":"A B C I 7B ZC","132":"8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:6,C:"AC-3 (Dolby Digital) and EC-3 (Dolby Digital Plus) codecs",D:false}; 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..42beda7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/accelerometer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB","194":"oB EC pB FC qB rB sB tB uB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:4,C:"Accelerometer",D:true}; 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..c132c9f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/addeventlistener.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","130":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","257":"cC DC J GB K fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"EventTarget.addEventListener()",D:true}; 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..b2e5bdb --- /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":"K E bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"G B C sC tC uC vC 7B ZC wC 8B","16":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"16":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"16":"E A"},K:{"2":"I","16":"A B C 7B ZC 8B"},L:{"16":"D"},M:{"16":"D"},N:{"16":"A B"},O:{"16":"9B"},P:{"16":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"16":"cD"},S:{"1":"dD eD"}},B:1,C:"Alternate stylesheet",D:false}; 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..c779367 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ambient-light.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L","132":"M H N O P","322":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"cC DC J GB K E F G A B C L M H N O P HB v w fC gC","132":"0 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC","194":"1 2 3 4 5 6 7 8 9 pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB","322":"1 2 3 4 5 6 7 8 9 oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B sC tC uC vC 7B ZC wC 8B","322":"1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"132":"dD eD"}},B:4,C:"Ambient Light Sensor",D:true}; 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..13f0e19 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/apng.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","2":"cC"},D:{"1":"1 2 3 4 5 6 7 8 9 EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB"},E:{"1":"F G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E hC KC iC jC kC"},F:{"1":"B C cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","2":"0 G H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},G:{"1":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC 0C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"Animated PNG (APNG)",D:true}; 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..6da53dd --- /dev/null +++ b/node_modules/caniuse-lite/data/features/array-find-index.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB v w x y z fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},E:{"1":"F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E hC KC iC jC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC 0C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E","16":"A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"Array.prototype.findIndex",D:true}; 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..970355d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/array-find.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","16":"C L M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB v w x y z fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},E:{"1":"F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E hC KC iC jC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC 0C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E","16":"A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"Array.prototype.find",D:true}; 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..1dcf42a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/array-flat.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB"},E:{"1":"C L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B hC KC iC jC kC lC LC 7B"},F:{"1":"mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB sC tC uC vC 7B ZC wC 8B"},G:{"1":"8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:6,C:"flat & flatMap array methods",D:true}; 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..83b5b15 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/array-includes.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L"},C:{"1":"1 2 3 4 5 6 7 8 9 ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F hC KC iC jC kC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB sC tC uC vC 7B ZC wC 8B"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"Array.prototype.includes",D:true}; 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..d587ddf --- /dev/null +++ b/node_modules/caniuse-lite/data/features/arrow-functions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB v w fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB sC tC uC vC 7B ZC wC 8B"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"Arrow functions",D:true}; 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..479d2ee --- /dev/null +++ b/node_modules/caniuse-lite/data/features/asmjs.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"L M H N O P","132":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","322":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB v w fC gC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB","132":"1 2 3 4 5 6 7 8 9 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"G B C sC tC uC vC 7B ZC wC 8B","132":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","132":"D"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","132":"I"},L:{"132":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"132":"9B"},P:{"2":"J","132":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"132":"bD"},R:{"132":"cD"},S:{"1":"dD eD"}},B:6,C:"asm.js",D:true}; 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..22c658f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/async-clipboard.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB fC gC","132":"1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB"},D:{"1":"1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB"},E:{"1":"M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L hC KC iC jC kC lC LC 7B 8B"},F:{"1":"jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB sC tC uC vC 7B ZC wC 8B"},G:{"1":"ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","260":"D"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0","2":"J QD RD SD TD","260":"v w x y z UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD","132":"eD"}},B:5,C:"Asynchronous Clipboard API",D:true}; 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..88b2008 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/async-functions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L","194":"M"},C:{"1":"1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC","258":"LC"},F:{"1":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB sC tC uC vC 7B ZC wC 8B"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C","258":"5C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:6,C:"Async functions",D:true}; 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..ac4cbb0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/atob-btoa.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u vC 7B ZC wC 8B","2":"G sC tC","16":"uC"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","16":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Base64 encoding and decoding",D:true}; 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..ffd38b4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/audio-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB v w x y z fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L","33":"0 M H N O P HB v w x y z IB JB KB LB MB NB OB PB"},E:{"1":"H nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC","33":"K E F G A B C L M jC kC lC LC 7B 8B mC"},F:{"1":"0 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","33":"H N O P HB v w"},G:{"1":"FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC","33":"F zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"Web Audio API",D:true}; 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..9418149 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/audio.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC","132":"J GB K E F G A B C L M H N O P HB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u uC vC 7B ZC wC 8B","2":"G","4":"sC tC"},G:{"260":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J D MD ND aC OD PD","2":"KD LD"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Audio element",D:true}; 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..e001b45 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/audiotracks.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"C L M H N O P","322":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB fC gC","194":"1 2 3 4 5 6 7 8 9 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","322":"1 2 3 4 5 6 7 8 9 bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB sC tC uC vC 7B ZC wC 8B","322":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","322":"I"},L:{"322":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"322":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"322":"bD"},R:{"322":"cD"},S:{"194":"dD eD"}},B:1,C:"Audio Tracks",D:true}; 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..7140173 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/autofocus.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","2":"G"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J D ND aC OD PD","2":"KD LD MD"},J:{"1":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:1,C:"Autofocus attribute",D:true}; 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..a514b0b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/auxclick.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB fC gC","129":"1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"1 2 3 4 5 6 7 8 9 lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:5,C:"Auxclick",D:true}; 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..64b15e3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/av1.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"AB BB CB DB EB FB D","2":"5 6 7 8 9 C L M H N O","194":"1 2 3 4 P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},C:{"1":"1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB fC gC","66":"lB mB nB oB EC pB FC qB rB sB","260":"tB","516":"uB"},D:{"1":"1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB","66":"vB wB xB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC","1028":"BC TC UC VC WC XC YC CC rC"},F:{"1":"nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID","1028":"BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:6,C:"AV1 video format",D:true}; 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..c60a51e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/avif.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"AB BB CB DB EB FB D","2":"1 2 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","4162":"3 4 5 6"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B fC gC","194":"5B 6B Q I R GC S T U V W X Y Z a b","257":"c d e f g h i j k l m n o p q r s t","2049":"1 u"},D:{"1":"1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T"},E:{"1":"RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC","1796":"OC PC QC"},F:{"1":"zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD","257":"RC SC ID BC TC UC VC WC XC YC CC","1281":"AC OC PC QC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD WD XD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:6,C:"AVIF image format",D:true}; 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..66199ef --- /dev/null +++ b/node_modules/caniuse-lite/data/features/background-attachment.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","132":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","132":"cC DC J GB K E F G A B C L M H N O P HB v w x y z fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"GB K E F G A B C iC jC kC lC LC 7B 8B NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","132":"J L hC KC mC","2050":"M H nC oC MC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u uC vC 7B ZC wC 8B","132":"G sC tC"},G:{"2":"KC xC aC","772":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C","2050":"AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD OD PD","132":"ND aC"},J:{"260":"E A"},K:{"1":"B C I 7B ZC 8B","132":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"2":"J","1028":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS background-attachment",D:true}; 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..f3e9797 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/background-clip-text.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"H N O P","33":"C L M","132":"9 AB BB CB DB EB FB D","164":"1 2 3 4 5 6 7 8 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},C:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fC gC"},D:{"132":"9 AB BB CB DB EB FB D HC IC JC","164":"0 1 2 3 4 5 6 7 8 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},E:{"16":"hC KC","132":"9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","388":"M H nC oC MC NC","420":"J GB K E F G A B C L iC jC kC lC LC 7B 8B mC"},F:{"2":"G B C sC tC uC vC 7B ZC wC 8B","132":"p q r s t u","164":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o"},G:{"16":"KC xC aC yC","132":"9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","388":"ED FD GD MC NC","420":"F zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD"},H:{"2":"JD"},I:{"16":"DC KD LD MD","132":"D","164":"J ND aC OD PD"},J:{"164":"E A"},K:{"16":"A B C 7B ZC 8B","132":"I"},L:{"132":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"164":"9B"},P:{"1":"0","164":"J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"164":"bD"},R:{"164":"cD"},S:{"1":"dD eD"}},B:7,C:"Background-clip: text",D:true}; 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..4f995d3 --- /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":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC","36":"gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","516":"J GB K E F G A B C L M"},E:{"1":"E F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","772":"J GB K hC KC iC jC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u uC vC 7B ZC wC 8B","2":"G sC","36":"tC"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","4":"KC xC aC zC","516":"yC"},H:{"132":"JD"},I:{"1":"D OD PD","36":"KD","516":"DC J ND aC","548":"LD MD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS3 Background-image options",D:true}; 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..aacf6cf --- /dev/null +++ b/node_modules/caniuse-lite/data/features/background-position-x-y.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:7,C:"background-position-x & background-position-y",D:true}; 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..ea735aa --- /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":"K E F bC","132":"G"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB"},E:{"1":"E F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC jC"},F:{"1":"0 B C HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u uC vC 7B ZC wC 8B","2":"G H N O P sC tC"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC"},H:{"1":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"A","2":"E"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:4,C:"CSS background-repeat round and space",D:true}; 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..28bba78 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/background-sync.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC fC gC","16":"JC dC eC"},D:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:7,C:"Background Sync API",D:true}; 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..93ed32b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/battery-status.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"ZB aB bB cB dB eB fB gB hB","2":"1 2 3 4 5 6 7 8 9 cC DC J GB K E F G iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","132":"0 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","164":"A B C L M H"},D:{"1":"1 2 3 4 5 6 7 8 9 UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB","66":"TB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w x y z sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD","2":"eD"}},B:4,C:"Battery Status API",D:true}; 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..07c0db7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/beacon.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L"},C:{"1":"1 2 3 4 5 6 7 8 9 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB"},E:{"1":"C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B hC KC iC jC kC lC LC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z sC tC uC vC 7B ZC wC 8B"},G:{"1":"7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"Beacon API",D:true}; 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..6b6df60 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/beforeafterprint.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"K E F G A B","16":"bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB"},E:{"1":"L M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C hC KC iC jC kC lC LC 7B 8B"},F:{"1":"gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB sC tC uC vC 7B ZC wC 8B"},G:{"1":"AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"16":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"16":"A B"},O:{"1":"9B"},P:{"2":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","16":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Printing Events",D:true}; 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..f14d28a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/bigint.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB fC gC","194":"tB uB vB"},D:{"1":"1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB"},E:{"1":"M H nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L hC KC iC jC kC lC LC 7B 8B mC"},F:{"1":"kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB sC tC uC vC 7B ZC wC 8B"},G:{"1":"ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:6,C:"BigInt",D:true}; 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..f237239 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/blobbuilder.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB fC gC","36":"K E F G A B C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E","36":"F G A B C L M H N O P HB"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G B C sC tC uC vC 7B ZC wC"},G:{"1":"F zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC"},H:{"2":"JD"},I:{"1":"D","2":"KD LD MD","36":"DC J ND aC OD PD"},J:{"1":"A","2":"E"},K:{"1":"I 8B","2":"A B C 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"Blob constructing",D:true}; 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..fc2ab77 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/bloburls.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","129":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","129":"C L M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E","33":"F G A B C L M H N O P HB v w x"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC","33":"K"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC","33":"zC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC KD LD MD","33":"J ND aC"},J:{"1":"A","2":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"Blob URLs",D:true}; 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..efd98af --- /dev/null +++ b/node_modules/caniuse-lite/data/features/border-image.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E F G A bC"},B:{"1":"1 2 3 4 5 6 7 8 9 M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","129":"C L"},C:{"1":"1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC","260":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB","804":"J GB K E F G A B C L M fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","260":"hB iB jB kB lB","388":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB","1412":"0 H N O P HB v w x y z IB JB KB LB","1956":"J GB K E F G A B C L M"},E:{"1":"NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","129":"A B C L M H lC LC 7B 8B mC nC oC MC","1412":"K E F G jC kC","1956":"J GB hC KC iC"},F:{"1":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G sC tC","260":"UB VB WB XB YB","388":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB","1796":"uC vC","1828":"B C 7B ZC wC 8B"},G:{"1":"NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","129":"3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC","1412":"F zC 0C 1C 2C","1956":"KC xC aC yC"},H:{"1828":"JD"},I:{"1":"D","388":"OD PD","1956":"DC J KD LD MD ND aC"},J:{"1412":"A","1924":"E"},K:{"1":"I","2":"A","1828":"B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"9B"},P:{"1":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD","260":"QD RD","388":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","260":"dD"}},B:4,C:"CSS3 Border images",D:true}; 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..b9d3c24 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/border-radius.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","257":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB","289":"DC fC gC","292":"cC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","33":"J"},E:{"1":"GB E F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","33":"J hC KC","129":"K iC jC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u uC vC 7B ZC wC 8B","2":"G sC tC"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","33":"KC"},H:{"2":"JD"},I:{"1":"DC J D LD MD ND aC OD PD","33":"KD"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","257":"dD"}},B:4,C:"CSS3 Border-radius (rounded corners)",D:true}; 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..0deb75a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/broadcastchannel.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB"},E:{"1":"NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC"},F:{"1":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB sC tC uC vC 7B ZC wC 8B"},G:{"1":"NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"BroadcastChannel",D:true}; 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..91a23e8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/brotli.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M"},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 EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","194":"fB","257":"gB"},E:{"1":"L M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC LC","513":"B C 7B 8B"},F:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB sC tC uC vC 7B ZC wC 8B","194":"SB TB"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"Brotli Accept-Encoding/Content-Encoding",D:true}; 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..dbab644 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/calc.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","260":"G","516":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","33":"J GB K E F G A B C L M H"},D:{"1":"1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P","33":"0 HB v w x y z"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC","33":"K"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC","33":"zC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC","132":"OD PD"},J:{"1":"A","2":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"calc() as CSS unit value",D:true}; 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..2d6bddc --- /dev/null +++ b/node_modules/caniuse-lite/data/features/canvas-blending.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC"},F:{"1":"0 O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"Canvas blend modes",D:true}; 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..920d0a4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/canvas-text.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"bC","8":"K E F"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","8":"cC DC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","8":"hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u uC vC 7B ZC wC 8B","8":"G sC tC"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","8":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Text API for Canvas",D:true}; 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..52659c5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/canvas.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"bC","8":"K E F"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC gC","132":"cC DC fC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","132":"hC KC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"260":"JD"},I:{"1":"DC J D ND aC OD PD","132":"KD LD MD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Canvas (basic support)",D:true}; 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..d1a33a9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ch-unit.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","132":"G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB"},E:{"1":"E F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC jC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"A","2":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"ch (character) unit",D:true}; 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..cc27921 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/chacha20-poly1305.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB","129":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},E:{"1":"C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B hC KC iC jC kC lC LC"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB sC tC uC vC 7B ZC wC 8B"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD","16":"PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"ChaCha20-Poly1305 cipher suites for TLS",D:true}; 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..5c19f84 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/channel-messaging.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z fC gC","194":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u vC 7B ZC wC 8B","2":"G sC tC","16":"uC"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Channel messaging",D:true}; 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..ffcb257 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/childnode-remove.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","16":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB v w x fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v w x y"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC","16":"K"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"A","2":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"ChildNode.remove()",D:true}; 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..ed51efa --- /dev/null +++ b/node_modules/caniuse-lite/data/features/classlist.js @@ -0,0 +1 @@ +module.exports={A:{A:{"8":"K E F G bC","1924":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","8":"cC DC fC","516":"0 z","772":"J GB K E F G A B C L M H N O P HB v w x y gC"},D:{"1":"1 2 3 4 5 6 7 8 9 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","8":"J GB K E","516":"0 z IB JB","772":"y","900":"F G A B C L M H N O P HB v w x"},E:{"1":"E F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","8":"J GB hC KC","900":"K iC jC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","8":"G B sC tC uC vC 7B","900":"C ZC wC 8B"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","8":"KC xC aC","900":"yC zC"},H:{"900":"JD"},I:{"1":"D OD PD","8":"KD LD MD","900":"DC J ND aC"},J:{"1":"A","900":"E"},K:{"1":"I","8":"A B","900":"C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"900":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"classList (DOMTokenList)",D:true}; 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..9472b5b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:6,C:"Client Hints: DPR, Width, Viewport-Width",D:true}; 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..278209c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/clipboard.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2436":"K E F G A B bC"},B:{"260":"O P","2436":"C L M H N","8196":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"cC DC J GB K E F G A B C L M H N O P HB v w fC gC","772":"0 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","4100":"1 2 3 4 5 6 7 8 9 XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"2":"J GB K E F G A B C","2564":"0 L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","8196":"1 2 3 4 5 6 7 8 9 oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","10244":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB"},E:{"1":"C L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"hC KC","2308":"A B LC 7B","2820":"J GB K E F G iC jC kC lC"},F:{"2":"G B sC tC uC vC 7B ZC wC","16":"C","516":"8B","2564":"0 H N O P HB v w x y z IB JB KB LB","8196":"bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","10244":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},G:{"1":"8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC","2820":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC","260":"D","2308":"OD PD"},J:{"2":"E","2308":"A"},K:{"2":"A B C 7B ZC","16":"8B","8196":"I"},L:{"8196":"D"},M:{"1028":"D"},N:{"2":"A B"},O:{"8196":"9B"},P:{"2052":"QD RD","2308":"J","8196":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"8196":"bD"},R:{"8196":"cD"},S:{"4100":"dD eD"}},B:5,C:"Synchronous Clipboard API",D:true}; 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..dabcd6f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/colr-v1.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g"},C:{"1":"1 2 3 4 5 6 7 8 9 q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g fC gC","258":"h i j k l m n","578":"o p"},D:{"1":"1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y","194":"Z a b c d e f g"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"16":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"16":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z CC aD","2":"J QD RD SD TD UD LC VD WD XD YD ZD AC BC"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:6,C:"COLR/CPAL(v1) Font Formats",D:true}; 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..edcd760 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/colr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","257":"G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P t u AB BB CB DB EB FB D","513":"Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s"},C:{"1":"1 2 3 4 5 6 7 8 9 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB","513":"zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s"},E:{"1":"M H nC oC MC NC 9B pC AC OC PC QC RC SC qC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC LC","129":"B C L 7B 8B mC","1026":"BC TC"},F:{"1":"f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB sC tC uC vC 7B ZC wC 8B","513":"oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C","1026":"BC TC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"16":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"16":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"COLR/CPAL(v0) Font Formats",D:true}; 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..89aa390 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/comparedocumentposition.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","16":"cC DC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M","132":"0 H N O P HB v w x y z IB JB KB LB"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"J GB K hC KC","132":"E F G jC kC lC","260":"iC"},F:{"1":"0 C O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u wC 8B","16":"G B sC tC uC vC 7B ZC","132":"H N"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC","132":"F xC aC yC zC 0C 1C 2C 3C"},H:{"1":"JD"},I:{"1":"D OD PD","16":"KD LD","132":"DC J MD ND aC"},J:{"132":"E A"},K:{"1":"C I 8B","16":"A B 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Node.compareDocumentPosition()",D:true}; 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..6029180 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/console-basic.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E bC","132":"F G"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 7B ZC wC 8B","2":"G sC tC uC vC"},G:{"1":"KC xC aC yC","513":"F zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"4097":"JD"},I:{"1025":"DC J D KD LD MD ND aC OD PD"},J:{"258":"E A"},K:{"2":"A","258":"B C 7B ZC 8B","1025":"I"},L:{"1025":"D"},M:{"2049":"D"},N:{"258":"A B"},O:{"258":"9B"},P:{"1025":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1025":"cD"},S:{"1":"dD eD"}},B:1,C:"Basic console logging functions",D:true}; 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..9319c2e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/console-time.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E F G A bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 7B ZC wC 8B","2":"G sC tC uC vC","16":"B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"I","16":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"console.time and console.timeEnd",D:true}; 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..0a76987 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/const.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","2052":"B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","132":"cC DC J GB K E F G A B C fC gC","260":"0 L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB"},D:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","260":"J GB K E F G A B C L M H N O P HB v","772":"0 w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","1028":"XB YB ZB aB bB cB dB eB"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","260":"J GB A hC KC LC","772":"K E F G iC jC kC lC"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G sC","132":"B tC uC vC 7B ZC","644":"C wC 8B","772":"0 H N O P HB v w x y z IB JB","1028":"KB LB MB NB OB PB QB RB"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","260":"KC xC aC 4C 5C","772":"F yC zC 0C 1C 2C 3C"},H:{"644":"JD"},I:{"1":"D","16":"KD LD","260":"MD","772":"DC J ND aC OD PD"},J:{"772":"E A"},K:{"1":"I","132":"A B 7B ZC","644":"C 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","1028":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"const",D:true}; 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..e9f8e93 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/constraint-validation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","900":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","388":"M H N","900":"C L"},C:{"1":"1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","260":"fB gB","388":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","900":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB"},D:{"1":"1 2 3 4 5 6 7 8 9 WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M","388":"0 IB JB KB LB MB NB OB PB QB RB SB TB UB VB","900":"H N O P HB v w x y z"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"J GB hC KC","388":"F G kC lC","900":"K E iC jC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","16":"G B sC tC uC vC 7B ZC","388":"0 H N O P HB v w x y z IB","900":"C wC 8B"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC","388":"F 0C 1C 2C 3C","900":"yC zC"},H:{"2":"JD"},I:{"1":"D","16":"DC KD LD MD","388":"OD PD","900":"J ND aC"},J:{"16":"E","388":"A"},K:{"1":"I","16":"A B 7B ZC","900":"C 8B"},L:{"1":"D"},M:{"1":"D"},N:{"900":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","388":"dD"}},B:1,C:"Constraint Validation API",D:true}; 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..0b8cf4c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/contenteditable.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","2":"cC","4":"DC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC"},H:{"2":"JD"},I:{"1":"DC J D ND aC OD PD","2":"KD LD MD"},J:{"1":"E A"},K:{"1":"I 8B","2":"A B C 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"contenteditable attribute (basic support)",D:true}; 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..b4e3038 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","132":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","129":"J GB K E F G A B C L M H N O P HB v w x"},D:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L","257":"M H N O P HB v w x y z"},E:{"1":"E F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC","257":"K jC","260":"iC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC","257":"zC","260":"yC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"2":"E","257":"A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"Content Security Policy 1.0",D:true}; 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..c700d15 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M","4100":"H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB fC gC","132":"NB OB PB QB","260":"RB","516":"SB TB UB VB WB XB YB ZB aB"},D:{"1":"1 2 3 4 5 6 7 8 9 WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB","1028":"SB TB UB","2052":"VB"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w x sC tC uC vC 7B ZC wC 8B","1028":"0 y z","2052":"IB"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"Content Security Policy Level 2",D:true}; 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..4c7d86f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/cookie-store-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P","194":"Q I R S T U V"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB","194":"sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB sC tC uC vC 7B ZC wC 8B","194":"hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD WD XD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:7,C:"Cookie Store API",D:true}; 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..9b1ed47 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/cors.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E bC","132":"A","260":"F G"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","2":"cC DC","1025":"FC qB rB sB tB uB vB wB xB yB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","132":"J GB K E F G A B C"},E:{"2":"hC KC","513":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","644":"J GB iC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G B sC tC uC vC 7B ZC wC"},G:{"513":"F zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","644":"KC xC aC yC"},H:{"2":"JD"},I:{"1":"D OD PD","132":"DC J KD LD MD ND aC"},J:{"1":"A","132":"E"},K:{"1":"C I 8B","2":"A B 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","132":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Cross-Origin Resource Sharing",D:true}; 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..bfe8d58 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/createimagebitmap.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB fC gC","1028":"c d e f g","3076":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b","8196":"1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"1 2 3 4 5 6 7 8 9 EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB","132":"gB hB","260":"iB jB","516":"kB lB mB nB oB"},E:{"2":"J GB K E F G A B C L M hC KC iC jC kC lC LC 7B 8B mC nC","4100":"H oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB sC tC uC vC 7B ZC wC 8B","132":"TB UB","260":"VB WB","516":"XB YB ZB aB bB"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD","4100":"GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"8196":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","16":"J QD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"3076":"dD eD"}},B:1,C:"createImageBitmap",D:true}; 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..1f25dbb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/credential-management.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","66":"eB fB gB","129":"hB iB jB kB lB mB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB sC tC uC vC 7B ZC wC 8B"},G:{"1":"ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:5,C:"Credential Management API",D:true}; 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..6e57ed0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/cryptography.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"bC","8":"K E F G A","164":"B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","513":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","8":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB fC gC","66":"OB PB"},D:{"1":"1 2 3 4 5 6 7 8 9 TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","8":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","8":"J GB K E hC KC iC jC","289":"F G A kC lC LC"},F:{"1":"0 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","8":"G B C H N O P HB v w x y sC tC uC vC 7B ZC wC 8B"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","8":"KC xC aC yC zC 0C","289":"F 1C 2C 3C 4C 5C"},H:{"2":"JD"},I:{"1":"D","8":"DC J KD LD MD ND aC OD PD"},J:{"8":"E A"},K:{"1":"I","8":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A","164":"B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"Web Cryptography",D:true}; 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..b9a6866 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-all.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB"},E:{"1":"A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC"},F:{"1":"0 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w x y sC tC uC vC 7B ZC wC 8B"},G:{"1":"3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C"},H:{"2":"JD"},I:{"1":"D PD","2":"DC J KD LD MD ND aC OD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS all property",D:true}; diff --git a/node_modules/caniuse-lite/data/features/css-anchor-positioning.js b/node_modules/caniuse-lite/data/features/css-anchor-positioning.js new file mode 100644 index 0000000..0b7fb11 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-anchor-positioning.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"EB FB D","2":"1 2 3 4 5 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","194":"6 7 8 9 AB BB CB DB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"EB FB D HC IC JC","2":"0 1 2 3 4 5 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","194":"6 7 8 9 AB BB CB DB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l sC tC uC vC 7B ZC wC 8B","194":"m n o p q r s t"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS Anchor Positioning",D:true}; 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..35aecc8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-animation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J fC gC","33":"GB K E F G A B C L M H"},D:{"1":"1 2 3 4 5 6 7 8 9 ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","33":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC","33":"K E F iC jC kC","292":"J GB"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G B sC tC uC vC 7B ZC wC","33":"0 C H N O P HB v w x y z IB JB KB LB"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","33":"F zC 0C 1C","164":"KC xC aC yC"},H:{"2":"JD"},I:{"1":"D","33":"J ND aC OD PD","164":"DC KD LD MD"},J:{"33":"E A"},K:{"1":"I 8B","2":"A B C 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"CSS Animation",D:true}; 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..1e7f2da --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-any-link.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","16":"cC","33":"0 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"J GB K hC KC iC","33":"E F jC kC"},F:{"1":"iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC yC","33":"F zC 0C 1C"},H:{"2":"JD"},I:{"1":"D","16":"DC J KD LD MD ND aC","33":"OD PD"},J:{"16":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z UD LC VD WD XD YD ZD AC BC CC aD","16":"J","33":"QD RD SD TD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","33":"dD"}},B:5,C:"CSS :any-link selector",D:true}; 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..9a725a3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-appearance.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","33":"S","164":"Q I R","388":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","164":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q","676":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","33":"S","164":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R"},E:{"1":"NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","164":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC"},F:{"1":"1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","33":"yB zB 0B","164":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB 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":"NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","164":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC"},H:{"2":"JD"},I:{"1":"D","164":"DC J KD LD MD ND aC OD PD"},J:{"164":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A","388":"B"},O:{"1":"9B"},P:{"1":"0 v w x y z YD ZD AC BC CC aD","164":"J QD RD SD TD UD LC VD WD XD"},Q:{"164":"bD"},R:{"1":"cD"},S:{"1":"eD","164":"dD"}},B:5,C:"CSS Appearance",D:true}; 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..9b686c4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-at-counter-style.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P Q I R S T U V W X Y Z","132":"1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB fC gC","132":"1 2 3 4 5 6 7 8 9 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z","132":"1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC","4":"BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B sC tC uC vC 7B ZC wC 8B","132":"5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID","4":"BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","132":"D"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","132":"I"},L:{"132":"D"},M:{"132":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"2":"J QD RD SD TD UD LC VD WD XD YD ZD","132":"0 v w x y z AC BC CC aD"},Q:{"2":"bD"},R:{"132":"cD"},S:{"132":"dD eD"}},B:4,C:"CSS Counter Styles",D:true}; 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..c4e788e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-autofill.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"1 2 3 4 5 6 7 8 9 t u AB BB CB DB EB FB D HC IC JC","33":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s"},L:{"1":"D"},B:{"1":"1 2 3 4 5 6 7 8 9 t u AB BB CB DB EB FB D","2":"C L M H N O P","33":"Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s"},C:{"1":"1 2 3 4 5 6 7 8 9 V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U fC gC"},M:{"1":"D"},A:{"2":"K E F G A B bC"},F:{"1":"f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e"},K:{"1":"I","2":"A B C 7B ZC 8B"},E:{"1":"H oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC","2":"rC","33":"J GB K E F G A B C L M hC KC iC jC kC lC LC 7B 8B mC nC"},G:{"1":"GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","33":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD"},P:{"1":"0 w x y z","33":"J v QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},I:{"1":"D","2":"DC J KD LD MD ND aC","33":"OD PD"}},B:6,C:":autofill CSS pseudo-class",D:undefined}; 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..7628c62 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-backdrop-filter.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N","257":"O P"},C:{"1":"1 2 3 4 5 6 7 8 9 m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB fC gC","578":"yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l"},D:{"1":"1 2 3 4 5 6 7 8 9 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB","194":"dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B"},E:{"1":"CC rC","2":"J GB K E F hC KC iC jC kC","33":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC"},F:{"1":"sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB sC tC uC vC 7B ZC wC 8B","194":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB"},G:{"1":"CC","2":"F KC xC aC yC zC 0C 1C","33":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z WD XD YD ZD AC BC CC aD","2":"J","194":"QD RD SD TD UD LC VD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:7,C:"CSS Backdrop Filter",D:true}; 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..09dfb99 --- /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":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v w x y z"},E:{"1":"E F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC jC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u uC vC 7B ZC wC 8B","2":"G sC tC"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC"},H:{"1":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"A","2":"E"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS background-position edge offsets",D:true}; 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..b67e97d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 RB SB TB UB VB WB XB YB ZB aB bB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB","260":"cB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E hC KC iC jC","132":"F G A kC lC"},F:{"1":"0 x y z IB JB KB LB MB NB OB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w sC tC uC vC 7B ZC wC 8B","260":"PB"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC 0C","132":"F 1C 2C 3C 4C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS background-blend-mode",D:true}; 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..8d9bb7a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","164":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB fC gC"},D:{"2":"J GB K E F G A B C L M H N O P HB v w","164":"0 1 2 3 4 5 6 7 8 9 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K hC KC iC","164":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"G sC tC uC vC","129":"B C 7B ZC wC 8B","164":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"KC xC aC yC zC","164":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"132":"JD"},I:{"2":"DC J KD LD MD ND aC","164":"D OD PD"},J:{"2":"E","164":"A"},K:{"2":"A","129":"B C 7B ZC 8B","164":"I"},L:{"164":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"164":"9B"},P:{"164":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"164":"bD"},R:{"164":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS box-decoration-break",D:true}; 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..64fd6d2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-boxshadow.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC","33":"fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","33":"J GB K E F G"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","33":"GB","164":"J hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u uC vC 7B ZC wC 8B","2":"G sC tC"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","33":"xC aC","164":"KC"},H:{"2":"JD"},I:{"1":"J D ND aC OD PD","164":"DC KD LD MD"},J:{"1":"A","33":"E"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS3 Box-shadow",D:true}; 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..f38573a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-canvas.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"1 2 3 4 5 6 7 8 9 eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","33":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},E:{"2":"hC KC","33":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"G B C RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB"},G:{"33":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"D","33":"DC J KD LD MD ND aC OD PD"},J:{"33":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","33":"J"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"CSS Canvas Drawings",D:true}; 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..ad3df07 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-caret-color.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB"},E:{"1":"C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B hC KC iC jC kC lC LC"},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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB sC tC uC vC 7B ZC wC 8B"},G:{"1":"7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:2,C:"CSS caret-color",D:true}; 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..af65e84 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-cascade-layers.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e","322":"f g h"},C:{"1":"1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c fC gC","194":"d e f"},D:{"1":"1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e","322":"f g h"},E:{"1":"NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC"},F:{"1":"V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U sC tC uC vC 7B ZC wC 8B"},G:{"1":"NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z CC aD","2":"J QD RD SD TD UD LC VD WD XD YD ZD AC BC"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:4,C:"CSS Cascade Layers",D:true}; diff --git a/node_modules/caniuse-lite/data/features/css-cascade-scope.js b/node_modules/caniuse-lite/data/features/css-cascade-scope.js new file mode 100644 index 0000000..4d12932 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-cascade-scope.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"7 8 9 AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m","194":"1 2 3 4 5 6 n o p q r s t u"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"7 8 9 AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m","194":"1 2 3 4 5 6 n o p q r s t u"},E:{"1":"WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC"},F:{"1":"p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y sC tC uC vC 7B ZC wC 8B","194":"Z a b c d e f g h i j k l m n o"},G:{"1":"WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0","2":"J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"Scoped Styles: the @scope rule",D:true}; 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..0314a2b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-case-insensitive.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F hC KC iC jC kC"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB sC tC uC vC 7B ZC wC 8B"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"Case-insensitive CSS attribute selectors",D:true}; 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..f14222b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-clip-path.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O","260":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","3138":"P"},C:{"1":"1 2 3 4 5 6 7 8 9 kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC","132":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB fC gC","644":"dB eB fB gB hB iB jB"},D:{"2":"J GB K E F G A B C L M H N O P HB v w x y","260":"1 2 3 4 5 6 7 8 9 lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","292":"0 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB"},E:{"2":"J GB K hC KC iC jC","260":"M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","292":"E F G A B C L kC lC LC 7B 8B"},F:{"2":"G B C sC tC uC vC 7B ZC wC 8B","260":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","292":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"KC xC aC yC zC","260":"AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","292":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC","260":"D","292":"OD PD"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","260":"I"},L:{"260":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"260":"9B"},P:{"260":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","292":"J QD"},Q:{"260":"bD"},R:{"260":"cD"},S:{"1":"eD","644":"dD"}},B:4,C:"CSS clip-path property (for HTML)",D:true}; 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..39ff5fd --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-color-adjust.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","33":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB fC gC"},D:{"16":"J GB K E F G A B C L M H N O P","33":"0 1 2 3 4 5 6 7 8 9 HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC","33":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC"},F:{"2":"G B C sC tC uC vC 7B ZC wC 8B","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"1":"NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC"},H:{"2":"JD"},I:{"16":"DC J KD LD MD ND aC OD PD","33":"D"},J:{"16":"E A"},K:{"2":"A B C 7B ZC 8B","33":"I"},L:{"16":"D"},M:{"1":"D"},N:{"16":"A B"},O:{"16":"9B"},P:{"16":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"33":"bD"},R:{"16":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS print-color-adjust",D:true}; 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..fb2d518 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-color-function.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q","322":"r s t"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t fC gC","578":"1 u"},D:{"1":"1 2 3 4 5 6 7 8 9 u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q","322":"r s t"},E:{"1":"H oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC","132":"B C L M LC 7B 8B mC nC"},F:{"1":"h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d sC tC uC vC 7B ZC wC 8B","322":"e f g"},G:{"1":"GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C","132":"5C 6C 7C 8C 9C AD BD CD DD ED FD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 x y z","2":"J v w QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:4,C:"CSS color() function",D:true}; 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..e3b87b4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-conic-gradients.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B fC gC","578":"3B 4B 5B 6B Q I R GC"},D:{"1":"1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB","257":"xB yB","450":"EC pB FC qB rB sB tB uB vB wB"},E:{"1":"L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C hC KC iC jC kC lC LC 7B"},F:{"1":"oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB sC tC uC vC 7B ZC wC 8B","257":"mB nB","450":"cB dB eB fB gB hB iB jB kB lB"},G:{"1":"9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"CSS Conical Gradients",D:true}; 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..af571a0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-container-queries-style.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p","194":"q r s t","260":"1 2 3 4 5 6 7 8 9 u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p","194":"q r s t","260":"1 2 3 4 5 6 7 8 9 u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC","260":"CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b sC tC uC vC 7B ZC wC 8B","194":"c d e f g","260":"h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC","260":"CC"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","260":"D"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","260":"I"},L:{"260":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"J v w QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","260":"0 x y z"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS Container Style Queries",D:true}; 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..12ed6ea --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-container-queries.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n","516":"o"},C:{"1":"1 2 3 4 5 6 7 8 9 t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a","194":"c d e f g h i j k l m n","450":"b","516":"o"},E:{"1":"AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC"},F:{"1":"d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B sC tC uC vC 7B ZC wC 8B","194":"Q I R GC S T U V W X Y Z","516":"a b c"},G:{"1":"AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 v w x y z","2":"J QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS Container Queries (Size)",D:true}; 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..46fd224 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-container-query-units.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n"},C:{"1":"1 2 3 4 5 6 7 8 9 t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b","194":"k l m n","450":"c d e f g h i j"},E:{"1":"AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC"},F:{"1":"a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B sC tC uC vC 7B ZC wC 8B","194":"Q I R GC S T U V W X Y Z"},G:{"1":"AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 v w x y z","2":"J QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS Container Query Units",D:true}; 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..7d9b16c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-containment.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB fC gC","194":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB"},D:{"1":"1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB","66":"hB"},E:{"1":"NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC"},F:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB sC tC uC vC 7B ZC wC 8B","66":"UB VB"},G:{"1":"NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","194":"dD"}},B:2,C:"CSS Containment",D:true}; 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..5f62bcc --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-content-visibility.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T"},C:{"1":"EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r fC gC","194":"1 2 3 4 5 6 7 8 9 s t u AB BB CB DB"},D:{"1":"1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T"},E:{"1":"CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC"},F:{"1":"zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB sC tC uC vC 7B ZC wC 8B"},G:{"1":"CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD WD XD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS content-visibility",D:true}; 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..ef1d53e --- /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":"K E bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS Counters",D:true}; 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..aac0fc7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-crisp-edges.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K bC","2340":"E F G A B"},B:{"2":"C L M H N O P","1025":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC","513":"tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b","545":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB gC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","1025":"1 2 3 4 5 6 7 8 9 XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC","164":"K","4644":"E F G jC kC lC"},F:{"2":"0 G B H N O P HB v w x y z IB JB sC tC uC vC 7B ZC","545":"C wC 8B","1025":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC","4260":"yC zC","4644":"F 0C 1C 2C 3C"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","1025":"D"},J:{"2":"E","4260":"A"},K:{"2":"A B 7B ZC","545":"C 8B","1025":"I"},L:{"1025":"D"},M:{"1":"D"},N:{"2340":"A B"},O:{"1025":"9B"},P:{"1025":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1025":"bD"},R:{"1025":"cD"},S:{"1":"eD","4097":"dD"}},B:4,C:"Crisp edges/pixelated images",D:true}; 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..6b46bd5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-cross-fade.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","33":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"J GB K E F G A B C L M H N","33":"0 1 2 3 4 5 6 7 8 9 O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC","33":"K E F G iC jC kC lC"},F:{"2":"G B C sC tC uC vC 7B ZC wC 8B","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC","33":"F yC zC 0C 1C 2C 3C"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC","33":"D OD PD"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","33":"I"},L:{"33":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"33":"9B"},P:{"33":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"33":"bD"},R:{"33":"cD"},S:{"2":"dD eD"}},B:4,C:"CSS Cross-Fade Function",D:true}; 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..afb8339 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-default-pseudo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","16":"cC DC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M","132":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"J GB hC KC","132":"K E F G A iC jC kC lC"},F:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","16":"G B sC tC uC vC 7B ZC","132":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB","260":"C wC 8B"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC yC zC","132":"F 0C 1C 2C 3C 4C"},H:{"260":"JD"},I:{"1":"D","16":"DC KD LD MD","132":"J ND aC OD PD"},J:{"16":"E","132":"A"},K:{"1":"I","16":"A B C 7B ZC","260":"8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","132":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:":default CSS pseudo-class",D:true}; 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..159d0b5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","16":"Q"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"B","2":"J GB K E F G A C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"Explicit descendant combinator >>",D:true}; 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..c4c8d77 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-deviceadaptation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","164":"A B"},B:{"66":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","164":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB","66":"1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB sC tC uC vC 7B ZC wC 8B","66":"WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"292":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A I","292":"B C 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"164":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"66":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS Device Adaptation",D:true}; 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..1b89eb0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-dir-pseudo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"9 AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n","194":"1 2 3 4 5 6 7 8 o p q r s t u"},C:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N fC gC","33":"0 O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},D:{"1":"9 AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z","194":"1 2 3 4 5 6 7 8 a b c d e f g h i j k l m n o p q r s t u"},E:{"1":"RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC"},F:{"1":"p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z sC tC uC vC 7B ZC wC 8B","194":"a b c d e f g h i j k l m n o"},G:{"1":"RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0","2":"J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"1":"eD","33":"dD"}},B:5,C:":dir() CSS pseudo-class",D:true}; 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..4e1fb84 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-display-contents.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","132":"Q I R S T U V W X","260":"1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB fC gC","132":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC","260":"1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB","132":"tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X","194":"oB EC pB FC qB rB sB","260":"1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B hC KC iC jC kC lC LC","132":"C L M H 7B 8B mC nC oC MC NC 9B pC","260":"BC TC UC VC WC XC YC CC rC","772":"AC OC PC QC RC SC qC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB sC tC uC vC 7B ZC wC 8B","132":"iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B","260":"4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"1":"BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C","132":"7C 8C 9C AD BD CD","260":"DD ED FD GD MC NC 9B HD","516":"OC PC QC RC SC ID","772":"AC"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","260":"D"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","260":"I"},L:{"260":"D"},M:{"260":"D"},N:{"2":"A B"},O:{"132":"9B"},P:{"2":"J QD RD SD TD","132":"UD LC VD WD XD YD","260":"0 v w x y z ZD AC BC CC aD"},Q:{"132":"bD"},R:{"260":"cD"},S:{"132":"dD","260":"eD"}},B:4,C:"CSS display: contents",D:true}; 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..ff0ba8f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-element-function.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"33":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","164":"cC DC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"33":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"33":"dD eD"}},B:5,C:"CSS element() function",D:true}; 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..c0c6149 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-env-function.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB"},E:{"1":"C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC LC","132":"B"},F:{"1":"mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB sC tC uC vC 7B ZC wC 8B"},G:{"1":"7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C","132":"6C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:7,C:"CSS Environment Variables env()",D:true}; 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..2e4c56b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-exclusions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","33":"A B"},B:{"2":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","33":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"33":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS Exclusions Level 1",D:true}; 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..665efc5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-featurequeries.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB v w fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F hC KC iC jC kC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G B C sC tC uC vC 7B ZC wC"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C"},H:{"1":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS Feature Queries",D:true}; 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..8df7677 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-file-selector-button.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","33":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X"},L:{"1":"D"},B:{"1":"1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","33":"C L M H N O P Q I R S T U V W X"},C:{"1":"1 2 3 4 5 6 7 8 9 GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R fC gC"},M:{"1":"D"},A:{"2":"K E F G bC","33":"A B"},F:{"1":"3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B"},K:{"1":"I","2":"A B C 7B ZC 8B"},E:{"1":"H nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC","2":"rC","33":"J GB K E F G A B C L M hC KC iC jC kC lC LC 7B 8B mC"},G:{"1":"FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","33":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED"},P:{"1":"0 v w x y z ZD AC BC CC aD","33":"J QD RD SD TD UD LC VD WD XD YD"},I:{"1":"D","2":"DC J KD LD MD ND aC","33":"OD PD"}},B:6,C:"::file-selector-button CSS pseudo-element",D:undefined}; 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..f5cb743 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-filter-function.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F hC KC iC jC kC","33":"G"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C","33":"2C 3C"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS filter() function",D:true}; 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..d633929 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-filters.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","1028":"L M H N O P","1346":"C"},C:{"1":"1 2 3 4 5 6 7 8 9 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC","196":"QB","516":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB gC"},D:{"1":"1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O","33":"0 P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB"},E:{"1":"A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC","33":"K E F G jC kC"},F:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},G:{"1":"3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC","33":"F zC 0C 1C 2C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC","33":"OD PD"},J:{"2":"E","33":"A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD","33":"J QD RD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"CSS Filter Effects",D:true}; 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..e301049 --- /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":"bC","516":"F","1540":"K E"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","132":"DC","260":"cC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"GB K E F","132":"J"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"GB hC","132":"J KC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u wC 8B","16":"G sC","260":"B tC uC vC 7B ZC"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC"},H:{"1":"JD"},I:{"1":"DC J D ND aC OD PD","16":"KD LD","132":"MD"},J:{"1":"E A"},K:{"1":"C I 8B","260":"A B 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"::first-letter CSS pseudo-element selector",D:true}; 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..c42a756 --- /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":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS first-line pseudo-element",D:true}; 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..923489d --- /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":"bC","8":"K"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","1025":"lC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC","132":"yC zC 0C"},H:{"2":"JD"},I:{"1":"DC D OD PD","260":"KD LD MD","513":"J ND aC"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS position:fixed",D:true}; 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..c5224f1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-focus-visible.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P","328":"Q I R S T U"},C:{"1":"1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","161":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T"},D:{"1":"1 2 3 4 5 6 7 8 9 V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB","328":"vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U"},E:{"1":"NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M hC KC iC jC kC lC LC 7B 8B mC nC","578":"H oC MC"},F:{"1":"0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB sC tC uC vC 7B ZC wC 8B","328":"uB vB wB xB yB zB"},G:{"1":"NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD","578":"GD MC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 v w x y z YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD WD XD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"161":"dD eD"}},B:5,C:":focus-visible CSS pseudo-class",D:true}; 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..dda1b07 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-focus-within.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB","194":"EC"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC"},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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB sC tC uC vC 7B ZC wC 8B","194":"cB"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:7,C:":focus-within CSS pseudo-class",D:true}; 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..0910e9b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-font-palette.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n"},C:{"1":"1 2 3 4 5 6 7 8 9 q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j"},E:{"1":"NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC"},F:{"1":"W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V sC tC uC vC 7B ZC wC 8B"},G:{"1":"NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 v w x y z aD","2":"J QD RD SD TD UD LC VD WD XD YD ZD AC BC CC"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS font-palette",D:true}; 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..11add62 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB fC gC","194":"cB dB eB fB gB hB iB jB kB lB mB nB"},D:{"1":"1 2 3 4 5 6 7 8 9 pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","66":"fB gB hB iB jB kB lB mB nB oB EC"},E:{"1":"C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B hC KC iC jC kC lC LC"},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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB sC tC uC vC 7B ZC wC 8B","66":"SB TB UB VB WB XB YB ZB aB bB cB"},G:{"1":"7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J","66":"QD RD SD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","194":"dD"}},B:5,C:"CSS font-display",D:true}; 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..c498ba9 --- /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":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC LC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB sC tC uC vC 7B ZC wC 8B"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS font-stretch",D:true}; 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..c3495f0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-gencontent.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E bC","132":"F"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS Generated content for pseudo-elements",D:true}; 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..e909b25 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-gradients.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC","260":"0 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB","292":"J GB K E F G A B C L M H gC"},D:{"1":"1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","33":"0 A B C L M H N O P HB v w x y z","548":"J GB K E F G"},E:{"1":"NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC","260":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC","292":"K iC","804":"J GB"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G B sC tC uC vC","33":"C wC","164":"7B ZC"},G:{"1":"NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","260":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC","292":"yC zC","804":"KC xC aC"},H:{"2":"JD"},I:{"1":"D OD PD","33":"J ND aC","548":"DC KD LD MD"},J:{"1":"A","548":"E"},K:{"1":"I 8B","2":"A B","33":"C","164":"7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS Gradients",D:true}; 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..29a8602 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-grid-animation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"1":"eD","2":"dD"}},B:4,C:"CSS Grid animation",D:false}; 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..3ed313d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-grid.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","8":"G","292":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","292":"C L M H"},C:{"1":"1 2 3 4 5 6 7 8 9 kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P fC gC","8":"0 HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB","584":"WB XB YB ZB aB bB cB dB eB fB gB hB","1025":"iB jB"},D:{"1":"1 2 3 4 5 6 7 8 9 oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v w x y z","8":"0 IB JB KB","200":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB","1025":"nB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC","8":"K E F G A jC kC lC"},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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB sC tC uC vC 7B ZC wC 8B","200":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC","8":"F zC 0C 1C 2C 3C 4C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND","8":"aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"292":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"QD","8":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS Grid Layout (level 1)",D:true}; 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..660e38c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:4,C:"CSS hanging-punctuation",D:true}; 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..8eeca8b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-has.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n"},C:{"1":"AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l fC gC","322":"1 2 3 4 5 6 7 8 9 m n o p q r s t u"},D:{"1":"1 2 3 4 5 6 7 8 9 o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j","194":"k l m n"},E:{"1":"NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC"},F:{"1":"a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z sC tC uC vC 7B ZC wC 8B"},G:{"1":"NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 v w x y z","2":"J QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:":has() CSS relational pseudo-class",D:true}; 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..b621406 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-hyphens.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","33":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 o p q r s t u AB BB CB DB EB FB D","33":"C L M H N O P","132":"Q I R S T U V W","260":"X Y Z a b c d e f g h i j k l m n"},C:{"1":"1 2 3 4 5 6 7 8 9 ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB fC gC","33":"0 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},D:{"1":"1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB","132":"lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W"},E:{"1":"BC TC UC VC WC XC YC CC rC","2":"J GB hC KC","33":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC"},F:{"1":"a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB sC tC uC vC 7B ZC wC 8B","132":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z"},G:{"1":"BC TC UC VC WC XC YC CC","2":"KC xC","33":"F aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J","132":"QD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS Hyphenation",D:true}; 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..d11d1a7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-image-orientation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I","257":"R S T U V W X"},C:{"1":"1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I","257":"R S T U V W X"},E:{"1":"M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L hC KC iC jC kC lC LC 7B 8B"},F:{"1":"5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB sC tC uC vC 7B ZC wC 8B","257":"wB xB yB zB 0B 1B 2B 3B 4B"},G:{"1":"ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","132":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD WD","257":"XD YD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS3 image-orientation",D:true}; 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..5f8b53c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-image-set.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB D","2":"C L M H N O P","164":"1 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2049":"2"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U fC gC","66":"V W","2305":"1 Y Z a b c d e f g h i j k l m n o p q r s t u","2820":"X"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v","164":"0 1 w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2049":"2"},E:{"1":"BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC","132":"A B C L LC 7B 8B mC","164":"K E F G jC kC lC","1540":"M H nC oC MC NC 9B pC AC OC PC QC RC SC qC"},F:{"1":"j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","164":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h","2049":"i"},G:{"1":"BC TC UC VC WC XC YC CC","2":"KC xC aC yC","132":"4C 5C 6C 7C 8C 9C AD BD CD DD","164":"F zC 0C 1C 2C 3C","1540":"ED FD GD MC NC 9B HD AC OC PC QC RC SC ID"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC","164":"OD PD"},J:{"2":"E","164":"A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"164":"9B"},P:{"1":"0 y z","164":"J v w x QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"164":"bD"},R:{"164":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS image-set",D:true}; 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..b557b08 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-in-out-of-range.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C","260":"L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB fC gC","516":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB"},D:{"1":"1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J","16":"GB K E F G A B C L M","260":"iB","772":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC","16":"GB","772":"K E F G A iC jC kC lC"},F:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","16":"G sC","260":"B C VB tC uC vC 7B ZC wC 8B","772":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC","772":"F yC zC 0C 1C 2C 3C 4C"},H:{"132":"JD"},I:{"1":"D","2":"DC KD LD MD","260":"J ND aC OD PD"},J:{"2":"E","260":"A"},K:{"1":"I","260":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","260":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","516":"dD"}},B:5,C:":in-range and :out-of-range CSS pseudo-classes",D:true}; 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..681c4ee --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","132":"A B","388":"G"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","132":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","16":"cC DC fC gC","132":"0 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB","388":"J GB"},D:{"1":"1 2 3 4 5 6 7 8 9 VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M","132":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"J GB K hC KC","132":"E F G A jC kC lC","388":"iC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","16":"G B sC tC uC vC 7B ZC","132":"0 H N O P HB v w x y z","516":"C wC 8B"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC yC zC","132":"F 0C 1C 2C 3C 4C"},H:{"516":"JD"},I:{"1":"D","16":"DC KD LD MD PD","132":"OD","388":"J ND aC"},J:{"16":"E","132":"A"},K:{"1":"I","16":"A B C 7B ZC","516":"8B"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","132":"dD"}},B:5,C:":indeterminate CSS pseudo-class",D:true}; 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..e56dbe7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-initial-letter.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s","260":"1 2 3 4 5 6 7 8 9 t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s","260":"1 2 3 4 5 6 7 8 9 t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F hC KC iC jC kC","260":"G","420":"A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g sC tC uC vC 7B ZC wC 8B","260":"h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C","420":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","260":"D"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","260":"I"},L:{"260":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"J v QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","260":"0 w x y z"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS Initial Letter",D:true}; 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..8bf1b71 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-initial-value.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","33":"J GB K E F G A B C L M H N O P fC gC","164":"cC DC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"hC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC"},H:{"2":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS initial value",D:true}; 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..9345d34 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-lch-lab.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s","322":"t"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t fC gC","194":"1 u"},D:{"1":"1 2 3 4 5 6 7 8 9 u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s","322":"t"},E:{"1":"H oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M hC KC iC jC kC lC LC 7B 8B mC nC"},F:{"1":"h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g sC tC uC vC 7B ZC wC 8B"},G:{"1":"GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 x y z","2":"J v w QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:4,C:"LCH and Lab color values",D:true}; 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..34fab4f --- /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":"bC","132":"K E F"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","132":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"hC","132":"J GB K KC iC"},F:{"1":"0 O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","16":"G sC","132":"B C H N tC uC vC 7B ZC wC 8B"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC"},H:{"2":"JD"},I:{"1":"D OD PD","16":"KD LD","132":"DC J MD ND aC"},J:{"132":"E A"},K:{"1":"I","132":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"letter-spacing CSS property",D:true}; 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..2677fbe --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-line-clamp.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N","33":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","129":"O P"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB fC gC","33":"1 2 3 4 5 6 7 8 9 wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"16":"J GB K E F G A B C L","33":"0 1 2 3 4 5 6 7 8 9 M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J hC KC","33":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"G B C sC tC uC vC 7B ZC wC 8B","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"KC xC aC","33":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"16":"KD LD","33":"DC J D MD ND aC OD PD"},J:{"33":"E A"},K:{"2":"A B C 7B ZC 8B","33":"I"},L:{"33":"D"},M:{"33":"D"},N:{"2":"A B"},O:{"33":"9B"},P:{"33":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"33":"bD"},R:{"33":"cD"},S:{"2":"dD","33":"eD"}},B:5,C:"CSS line-clamp",D:true}; 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..ef961d6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-logical-props.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P","1028":"W X","1540":"Q I R S T U V"},C:{"1":"1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC","164":"0 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB fC gC","1540":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB"},D:{"1":"1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","292":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB","1028":"W X","1540":"xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V"},E:{"1":"H oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","292":"J GB K E F G A B C hC KC iC jC kC lC LC 7B","1540":"L M 8B mC","3076":"nC"},F:{"1":"4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","292":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB","1028":"2B 3B","1540":"mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B"},G:{"1":"GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","292":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C","1540":"9C AD BD CD DD ED","3076":"FD"},H:{"2":"JD"},I:{"1":"D","292":"DC J KD LD MD ND aC OD PD"},J:{"292":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z ZD AC BC CC aD","292":"J QD RD SD TD UD","1540":"LC VD WD XD YD"},Q:{"1540":"bD"},R:{"1":"cD"},S:{"1":"eD","1540":"dD"}},B:5,C:"CSS Logical Properties",D:true}; 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..fb5fcee --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-marker-pseudo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U"},C:{"1":"1 2 3 4 5 6 7 8 9 wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U"},E:{"1":"rC","2":"J GB K E F G A B hC KC iC jC kC lC LC","129":"C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC"},F:{"1":"0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB sC tC uC vC 7B ZC wC 8B"},G:{"1":"7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD WD XD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"CSS ::marker pseudo-element",D:true}; 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..89e84f9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-masks.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"9 AB BB CB DB EB FB D","2":"C L M H N","164":"1 2 3 4 5 6 7 8 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","3138":"O","12292":"P"},C:{"1":"1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC","260":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB fC gC"},D:{"1":"9 AB BB CB DB EB FB D HC IC JC","164":"0 1 2 3 4 5 6 7 8 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},E:{"1":"NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC","164":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC"},F:{"1":"p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","164":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o"},G:{"1":"NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","164":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC"},H:{"2":"JD"},I:{"1":"D","164":"OD PD","676":"DC J KD LD MD ND aC"},J:{"164":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"164":"9B"},P:{"1":"0","164":"J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"164":"bD"},R:{"164":"cD"},S:{"1":"eD","260":"dD"}},B:4,C:"CSS Masks",D:true}; 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..c0450ce --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-matches-pseudo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P","1220":"Q I R S T U V W"},C:{"1":"1 2 3 4 5 6 7 8 9 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","548":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B"},D:{"1":"1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M","164":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB","196":"tB uB vB","1220":"wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W"},E:{"1":"M H nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC","16":"GB","164":"K E F iC jC kC","260":"G A B C L lC LC 7B 8B mC"},F:{"1":"3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","164":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB","196":"iB jB kB","1220":"lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B"},G:{"1":"ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC yC zC","164":"F 0C 1C","260":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD"},H:{"2":"JD"},I:{"1":"D","16":"DC KD LD MD","164":"J ND aC OD PD"},J:{"16":"E","164":"A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z ZD AC BC CC aD","164":"J QD RD SD TD UD LC VD WD XD YD"},Q:{"1220":"bD"},R:{"1":"cD"},S:{"1":"eD","548":"dD"}},B:5,C:":is() CSS pseudo-class",D:true}; 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..176c3e3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-math-functions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B"},E:{"1":"M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B hC KC iC jC kC lC LC","132":"C L 7B 8B"},F:{"1":"uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB sC tC uC vC 7B ZC wC 8B"},G:{"1":"DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C","132":"7C 8C 9C AD BD CD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"CSS math functions min(), max() and clamp()",D:true}; 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..b17a6be --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-media-interaction.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F hC KC iC jC kC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB sC tC uC vC 7B ZC wC 8B"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:4,C:"Media Queries: interaction media features",D:true}; 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..9e6e2e8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-media-range-syntax.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m"},C:{"1":"1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m"},E:{"1":"RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC"},F:{"1":"a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z sC tC uC vC 7B ZC wC 8B"},G:{"1":"RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 v w x y z","2":"J QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"1":"eD","2":"dD"}},B:4,C:"Media Queries: Range Syntax",D:true}; 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..a6094cc --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-media-resolution.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","132":"G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","1028":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC","260":"J GB K E F G A B C L M H fC gC","1028":"0 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC"},D:{"1":"1 2 3 4 5 6 7 8 9 wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","548":"0 J GB K E F G A B C L M H N O P HB v w x y z 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 oB EC pB FC qB rB sB tB uB vB"},E:{"1":"AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC","548":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC"},F:{"1":"lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G","548":"B C sC tC uC vC 7B ZC wC","1028":"0 H N O P HB v w x y z IB JB KB LB MB 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":"AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC","548":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD"},H:{"132":"JD"},I:{"1":"D","16":"KD LD","548":"DC J MD ND aC","1028":"OD PD"},J:{"548":"E A"},K:{"1":"I 8B","548":"A B C 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z LC VD WD XD YD ZD AC BC CC aD","1028":"J QD RD SD TD UD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"Media Queries: resolution feature",D:true}; 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..cee3e4a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-media-scripting.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"Media Queries: scripting media feature",D:false}; 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..7780dbd --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-mediaqueries.js @@ -0,0 +1 @@ +module.exports={A:{A:{"8":"K E F bC","129":"G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","2":"cC DC"},D:{"1":"1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","129":"0 J GB K E F G A B C L M H N O P HB v w x y z"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","129":"J GB K iC","388":"hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","2":"G"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","129":"KC xC aC yC zC"},H:{"1":"JD"},I:{"1":"D OD PD","129":"DC J KD LD MD ND aC"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"129":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS3 Media Queries",D:true}; 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..71a797c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-mixblendmode.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB","194":"LB MB NB OB PB QB RB SB TB UB VB WB"},E:{"2":"J GB K E hC KC iC jC","260":"F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB sC tC uC vC 7B ZC wC 8B"},G:{"2":"KC xC aC yC zC 0C","260":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"Blending of HTML/SVG elements",D:true}; diff --git a/node_modules/caniuse-lite/data/features/css-module-scripts.js b/node_modules/caniuse-lite/data/features/css-module-scripts.js new file mode 100644 index 0000000..f700fe4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-module-scripts.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b","132":"1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u AB BB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b","132":"1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u AB BB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"16":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"194":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:1,C:"CSS Module Scripts",D:false}; 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..23f7b72 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-motion-paths.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","194":"ZB aB bB"},E:{"1":"AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB sC tC uC vC 7B ZC wC 8B","194":"MB NB OB"},G:{"1":"AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"CSS Motion Path",D:true}; 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..5c0788d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-namespaces.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"hC KC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS namespaces",D:true}; 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..26d64f0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-nesting.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"9 AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r","194":"s t u","516":"1 2 3 4 5 6 7 8"},C:{"1":"6 7 8 9 AB BB CB DB EB FB D HC IC JC dC eC","2":"0 1 2 3 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u fC gC","322":"4 5"},D:{"1":"9 AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r","194":"s t u","516":"1 2 3 4 5 6 7 8"},E:{"1":"UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC","516":"SC qC BC TC"},F:{"1":"p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d sC tC uC vC 7B ZC wC 8B","194":"e f g","516":"h i j k l m n o"},G:{"1":"UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC","516":"SC ID BC TC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"J v w x QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","516":"0 y z"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS Nesting",D:true}; 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..c22b02c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-not-sel-list.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P I R S T U V W","16":"Q"},C:{"1":"1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F hC KC iC jC kC"},F:{"1":"3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B sC tC uC vC 7B ZC wC 8B"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD WD XD YD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"selector list argument of :not()",D:true}; 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..a6d6a1f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-nth-child-of.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB D HC IC JC dC eC","2":"0 1 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F hC KC iC jC kC"},F:{"1":"h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g sC tC uC vC 7B ZC wC 8B"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 x y z","2":"J v w QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"selector list argument of :nth-child and :nth-last-child CSS pseudo-classes",D:true}; 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..0d29c26 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-opacity.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","4":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS3 Opacity",D:true}; 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..f365c04 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-optional-pseudo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","16":"G sC","132":"B C tC uC vC 7B ZC wC 8B"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC"},H:{"132":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"E A"},K:{"1":"I","132":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:":optional CSS pseudo-class",D:true}; 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..e261a6d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-overflow-anchor.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"CSS overflow-anchor (Scroll Anchoring)",D:true}; 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..12666e6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-overflow-overlay.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"C L M H N O P","130":"3 4 5 6 7 8 9 AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","16":"J GB K E F G A B C L M","130":"3 4 5 6 7 8 9 AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B iC jC kC lC LC 7B","16":"hC KC","130":"C L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i","2":"G B C sC tC uC vC 7B ZC wC 8B","130":"j k l m n o p q r s t u"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C","16":"KC","130":"8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J KD LD MD ND aC OD PD","130":"D"},J:{"16":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"130":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:7,C:"CSS overflow: overlay",D:true}; 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..3069d80 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-overflow.js @@ -0,0 +1 @@ +module.exports={A:{A:{"388":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","260":"Q I R S T U V W X Y","388":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","260":"FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I","388":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","260":"wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y","388":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB"},E:{"1":"AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","260":"M H mC nC oC MC NC 9B pC","388":"J GB K E F G A B C L hC KC iC jC kC lC LC 7B 8B"},F:{"1":"4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","260":"lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B","388":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB sC tC uC vC 7B ZC wC 8B"},G:{"1":"AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","260":"DD ED FD GD MC NC 9B HD","388":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD"},H:{"388":"JD"},I:{"1":"D","388":"DC J KD LD MD ND aC OD PD"},J:{"388":"E A"},K:{"1":"I","388":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"388":"A B"},O:{"388":"9B"},P:{"1":"0 v w x y z ZD AC BC CC aD","388":"J QD RD SD TD UD LC VD WD XD YD"},Q:{"388":"bD"},R:{"1":"cD"},S:{"1":"eD","388":"dD"}},B:5,C:"CSS overflow property",D:true}; 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..09a7597 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","132":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","132":"C L M H N O","516":"P"},C:{"1":"1 2 3 4 5 6 7 8 9 EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB","260":"rB sB"},E:{"1":"AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M hC KC iC jC kC lC LC 7B 8B mC","1090":"H nC oC MC NC 9B pC"},F:{"1":"iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB sC tC uC vC 7B ZC wC 8B","260":"gB hB"},G:{"1":"AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED","1090":"FD GD MC NC 9B HD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"CSS overscroll-behavior",D:true}; 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..3f322de --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-page-break.js @@ -0,0 +1 @@ +module.exports={A:{A:{"388":"A B","900":"K E F G bC"},B:{"388":"C L M H N O P","641":"1 2 3 4 5 6 7 8 9 r s t u AB BB CB DB EB FB D","900":"Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q"},C:{"772":"1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","900":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB fC gC"},D:{"641":"1 2 3 4 5 6 7 8 9 r s t u AB BB CB DB EB FB D HC IC JC","900":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q"},E:{"772":"A","900":"J GB K E F G B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"16":"G sC","129":"B C tC uC vC 7B ZC wC 8B","641":"d e f g h i j k l m n o p q r s t u","900":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c"},G:{"900":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"129":"JD"},I:{"641":"D","900":"DC J KD LD MD ND aC OD PD"},J:{"900":"E A"},K:{"129":"A B C 7B ZC 8B","641":"I"},L:{"900":"D"},M:{"772":"D"},N:{"388":"A B"},O:{"900":"9B"},P:{"641":"0 w x y z","900":"J v QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"900":"bD"},R:{"900":"cD"},S:{"772":"eD","900":"dD"}},B:2,C:"CSS page-break properties",D:true}; 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..6838f5e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-paged-media.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E bC","132":"F G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","132":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P fC gC","132":"0 HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","132":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"16":"JD"},I:{"16":"DC J D KD LD MD ND aC OD PD"},J:{"16":"E A"},K:{"1":"I","16":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"258":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"132":"dD eD"}},B:5,C:"CSS Paged Media (@page)",D:true}; 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..a65867e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-paint-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB"},E:{"2":"J GB K E F G A B C hC KC iC jC kC lC LC 7B","194":"L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:4,C:"CSS Painting API",D:true}; 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..7d225e2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-placeholder-shown.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","292":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","164":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB"},D:{"1":"1 2 3 4 5 6 7 8 9 dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F hC KC iC jC kC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB sC tC uC vC 7B ZC wC 8B"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","164":"dD"}},B:5,C:":placeholder-shown CSS pseudo-class",D:true}; 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..fe13fe8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-placeholder.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","36":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","33":"0 HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB","130":"cC DC J GB K E F G A B C L M H N O P fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","36":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC","36":"GB K E F G A iC jC kC lC"},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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","36":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC","36":"F aC yC zC 0C 1C 2C 3C 4C"},H:{"2":"JD"},I:{"1":"D","36":"DC J KD LD MD ND aC OD PD"},J:{"36":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"36":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD","36":"J QD RD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","33":"dD"}},B:5,C:"::placeholder CSS pseudo-element",D:true}; 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..1f332d2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-print-color-adjust.js @@ -0,0 +1 @@ +module.exports={A:{D:{"2":"J GB K E F G A B C L M H N","33":"0 1 2 3 4 5 6 7 8 9 O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},L:{"33":"D"},B:{"2":"C L M H N O P","33":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB fC gC","33":"eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f"},M:{"1":"D"},A:{"2":"K E F G A B bC"},F:{"2":"G B C sC tC uC vC 7B ZC wC 8B","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},K:{"2":"A B C 7B ZC 8B","33":"I"},E:{"1":"NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC","2":"J GB hC KC iC rC","33":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC"},G:{"1":"NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC","33":"F zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC"},P:{"33":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},I:{"2":"DC J KD LD MD ND aC","33":"D OD PD"}},B:6,C:"print-color-adjust property",D:undefined}; 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..cfbbe75 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-read-only-write.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C"},C:{"1":"1 2 3 4 5 6 7 8 9 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","16":"cC","33":"0 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M","132":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"hC KC","132":"J GB K E F iC jC kC"},F:{"1":"0 y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","16":"G B sC tC uC vC 7B","132":"C H N O P HB v w x ZC wC 8B"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC","132":"F aC yC zC 0C 1C"},H:{"2":"JD"},I:{"1":"D","16":"KD LD","132":"DC J MD ND aC OD PD"},J:{"1":"A","132":"E"},K:{"1":"I","2":"A B 7B","132":"C ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","33":"dD"}},B:1,C:"CSS :read-only and :read-write selectors",D:true}; 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..e83fa6c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-rebeccapurple.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","132":"B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"1":"E F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC","16":"jC"},F:{"1":"0 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w x y z sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC 0C"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"Rebeccapurple color",D:true}; 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..d600683 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-reflections.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","33":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"33":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"hC KC","33":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"G B C sC tC uC vC 7B ZC wC 8B","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"33":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"33":"DC J D KD LD MD ND aC OD PD"},J:{"33":"E A"},K:{"2":"A B C 7B ZC 8B","33":"I"},L:{"33":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"33":"9B"},P:{"33":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"33":"bD"},R:{"33":"cD"},S:{"2":"dD eD"}},B:7,C:"CSS Reflections",D:true}; 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..e7acc9b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-regions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","420":"A B"},B:{"2":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","420":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","36":"H N O P","66":"0 HB v w x y z IB JB KB LB MB NB OB PB QB"},E:{"2":"J GB K C L M H hC KC iC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","33":"E F G A B jC kC lC LC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"KC xC aC yC zC 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","33":"F 0C 1C 2C 3C 4C 5C 6C"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"420":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS Regions",D:true}; 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..c5354f7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-relative-colors.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","194":"7","260":"8 9 AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D fC gC","260":"HC IC JC dC eC"},D:{"2":"0 1 2 3 4 5 6 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","194":"7","260":"8 9 AB BB CB DB EB FB D HC IC JC"},E:{"1":"CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC","260":"RC SC qC BC TC UC VC WC XC YC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m sC tC uC vC 7B ZC wC 8B","194":"n o","260":"p q r s t u"},G:{"1":"CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC","260":"RC SC ID BC TC UC VC WC XC YC"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","260":"D"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","260":"I"},L:{"260":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","260":"0"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS Relative color syntax",D:true}; 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..67e6212 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-repeating-gradients.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC","33":"J GB K E F G A B C L M H gC"},D:{"1":"1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G","33":"0 A B C L M H N O P HB v w x y z"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC","33":"K iC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G B sC tC uC vC","33":"C wC","36":"7B ZC"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC","33":"yC zC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC KD LD MD","33":"J ND aC"},J:{"1":"A","2":"E"},K:{"1":"I 8B","2":"A B","33":"C","36":"7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS Repeating Gradients",D:true}; 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..bf89171 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-resize.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","33":"J"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC","132":"8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:2,C:"CSS resize property",D:true}; 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..3c9e2b7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-revert-value.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S"},C:{"1":"1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S"},E:{"1":"A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC"},F:{"1":"1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B sC tC uC vC 7B ZC wC 8B"},G:{"1":"3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD WD XD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:4,C:"CSS revert value",D:true}; 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..ef8d2b5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-rrggbbaa.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB","194":"iB jB kB lB mB nB oB EC pB FC"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC"},F:{"1":"iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB sC tC uC vC 7B ZC wC 8B","194":"VB WB XB YB ZB aB bB cB dB eB fB gB hB"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J","194":"QD RD SD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:4,C:"#rrggbbaa hex color notation",D:true}; 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..15fb888 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-scroll-behavior.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","129":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB fC gC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","129":"1 2 3 4 5 6 7 8 9 FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","450":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB"},E:{"1":"NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L hC KC iC jC kC lC LC 7B 8B mC","578":"M H nC oC MC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB sC tC uC vC 7B ZC wC 8B","129":"eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","450":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},G:{"1":"NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED","578":"FD GD MC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"129":"9B"},P:{"1":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD"},Q:{"129":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"CSS Scroll-behavior",D:true}; 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..89942b7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-scroll-timeline.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P Q I R S T U V W X Y","194":"1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T","194":"1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","322":"U V W"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B sC tC uC vC 7B ZC wC 8B","194":"3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","322":"1B 2B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"CSS @scroll-timeline",D:true}; 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..bfbd810 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-scrollbar.js @@ -0,0 +1 @@ +module.exports={A:{A:{"132":"K E F G A B bC"},B:{"1":"AB BB CB DB EB FB D","2":"C L M H N O P","292":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},C:{"1":"1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB fC gC","3138":"rB"},D:{"1":"AB BB CB DB EB FB D HC IC JC","292":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},E:{"16":"J GB hC KC","292":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","292":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p"},G:{"2":"ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC yC zC","292":"0C","804":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD"},H:{"2":"JD"},I:{"16":"KD LD","292":"DC J D MD ND aC OD PD"},J:{"292":"E A"},K:{"2":"A B C 7B ZC 8B","292":"I"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"292":"9B"},P:{"1":"0","292":"J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"292":"bD"},R:{"292":"cD"},S:{"2":"dD eD"}},B:4,C:"CSS scrollbar styling",D:true}; 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..a293e7d --- /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":"bC","8":"K"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS 2.1 selectors",D:true}; 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..432c140 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-sel3.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"bC","8":"K","132":"E F"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","2":"cC DC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","2":"G"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS3 selectors",D:true}; 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..ddcc356 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-selection.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","33":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","2":"G"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"A","2":"E"},K:{"1":"C I ZC 8B","16":"A B 7B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","33":"dD"}},B:5,C:"::selection CSS pseudo-element",D:true}; 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..57da0b6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-shapes.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB fC gC","322":"hB iB jB kB lB mB nB oB EC pB FC"},D:{"1":"1 2 3 4 5 6 7 8 9 TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB","194":"QB RB SB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E hC KC iC jC","33":"F G A kC lC"},F:{"1":"0 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w x y sC tC uC vC 7B ZC wC 8B"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC 0C","33":"F 1C 2C 3C 4C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:4,C:"CSS Shapes Level 1",D:true}; 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..a8e7895 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-snappoints.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","6308":"A","6436":"B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","6436":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB fC gC","2052":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB"},D:{"1":"1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB","8258":"uB vB wB"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F hC KC iC jC kC","3108":"G A lC LC"},F:{"1":"sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB sC tC uC vC 7B ZC wC 8B","8258":"kB lB mB nB oB pB qB rB"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C","3108":"2C 3C 4C 5C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2052":"dD"}},B:4,C:"CSS Scroll Snap",D:true}; 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..7526efb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-sticky.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H","1028":"Q I R S T U V W X Y Z","4100":"N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z fC gC","194":"IB JB KB LB MB NB","516":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB"},D:{"1":"1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v w x TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB","322":"0 y z IB JB KB LB MB NB OB PB QB RB SB iB jB kB lB","1028":"mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z"},E:{"1":"L M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC","33":"F G A B C kC lC LC 7B 8B","2084":"E jC"},F:{"1":"6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB sC tC uC vC 7B ZC wC 8B","322":"VB WB XB","1028":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B"},G:{"1":"AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC","33":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C","2084":"zC 0C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD"},Q:{"1028":"bD"},R:{"1":"cD"},S:{"1":"eD","516":"dD"}},B:5,C:"CSS position:sticky",D:true}; 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..b8a33e6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-subgrid.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"6 7 8 9 AB BB CB DB EB FB D","2":"1 2 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","194":"3 4 5"},C:{"1":"1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB fC gC"},D:{"1":"6 7 8 9 AB BB CB DB EB FB D HC IC JC","2":"0 1 2 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","194":"3 4 5"},E:{"1":"AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC"},F:{"1":"m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i sC tC uC vC 7B ZC wC 8B","194":"j k l"},G:{"1":"AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 z","2":"J v w x y QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"1":"eD","2":"dD"}},B:4,C:"CSS Subgrid",D:true}; 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..cef9563 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-supports-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","260":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB fC gC","66":"v w","260":"0 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB"},D:{"1":"1 2 3 4 5 6 7 8 9 FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB","260":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F hC KC iC jC kC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC","132":"8B"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C"},H:{"132":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC","132":"8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS.supports() API",D:true}; 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..b13b9b4 --- /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":"K E bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","132":"cC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS Table display",D:true}; 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..4c66224 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-text-align-last.js @@ -0,0 +1 @@ +module.exports={A:{A:{"132":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","4":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B fC gC","33":"0 C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},D:{"1":"1 2 3 4 5 6 7 8 9 dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB","322":"RB SB TB UB VB WB XB YB ZB aB bB cB"},E:{"1":"AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B 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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w sC tC uC vC 7B ZC wC 8B","578":"0 x y z IB JB KB LB MB NB OB PB"},G:{"1":"AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","33":"dD"}},B:4,C:"CSS3 text-align-last",D:true}; 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..94c9cec --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-text-box-trim.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","322":"HC IC JC"},E:{"1":"rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC","194":"RC SC qC BC TC UC VC WC XC YC CC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC","194":"RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS text-box-trim & text-box-edge",D:true}; 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..2f560ba --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-text-indent.js @@ -0,0 +1 @@ +module.exports={A:{A:{"132":"K E F G A B bC"},B:{"132":"C L M H N O P","388":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"AB BB CB DB EB FB D HC IC JC dC eC","132":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u fC gC"},D:{"132":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB","388":"1 2 3 4 5 6 7 8 9 UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","132":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC"},F:{"132":"G B C H N O P HB v w x y z sC tC uC vC 7B ZC wC 8B","388":"0 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"1":"AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","132":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD"},H:{"132":"JD"},I:{"132":"DC J KD LD MD ND aC OD PD","388":"D"},J:{"132":"E A"},K:{"132":"A B C 7B ZC 8B","388":"I"},L:{"388":"D"},M:{"132":"D"},N:{"132":"A B"},O:{"388":"9B"},P:{"132":"J","388":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"388":"bD"},R:{"388":"cD"},S:{"132":"dD eD"}},B:4,C:"CSS text-indent",D:true}; 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..da1c37a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-text-justify.js @@ -0,0 +1 @@ +module.exports={A:{A:{"16":"K E bC","132":"F G A B"},B:{"132":"C L M H N O P","322":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB fC gC","1025":"1 2 3 4 5 6 7 8 9 lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","1602":"kB"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","322":"1 2 3 4 5 6 7 8 9 ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB sC tC uC vC 7B ZC wC 8B","322":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","322":"D"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","322":"I"},L:{"322":"D"},M:{"1025":"D"},N:{"132":"A B"},O:{"322":"9B"},P:{"2":"J","322":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"322":"bD"},R:{"322":"cD"},S:{"2":"dD","1025":"eD"}},B:4,C:"CSS text-justify",D:true}; 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..28f61bf --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-text-orientation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB fC gC","194":"UB VB WB"},D:{"1":"1 2 3 4 5 6 7 8 9 eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},E:{"1":"M H nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC","16":"A","33":"B C L LC 7B 8B mC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB sC tC uC vC 7B ZC wC 8B"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS text-orientation",D:true}; 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..d52f561 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-text-spacing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E bC","161":"F G A B"},B:{"2":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","161":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"16":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS Text 4 text-spacing",D:false}; diff --git a/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js b/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js new file mode 100644 index 0000000..f5f48f4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","132":"3 4 5 6 7 8 9 AB BB CB DB EB FB D"},C:{"1":"AB BB CB DB EB FB D HC IC JC dC eC","2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u fC gC"},D:{"2":"0 1 2 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","132":"3 4 5 6 7 8 9 AB BB CB DB EB FB D HC IC JC"},E:{"1":"XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h sC tC uC vC 7B ZC wC 8B","132":"i j k l m n o p q r s t u"},G:{"1":"XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","132":"D"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","132":"I"},L:{"132":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"J v w x QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","132":"0 y z"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS text-wrap: balance",D:true}; 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..d66eebc --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-textshadow.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","129":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","129":"C L M H N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","2":"cC DC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","260":"hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","2":"G"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"4":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"A","4":"E"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"129":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS3 Text-shadow",D:true}; 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..2b17d24 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-touch-action.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E F G bC","289":"A"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB fC gC","194":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB","1025":"iB jB kB lB mB"},D:{"1":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB"},E:{"2050":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w x sC tC uC vC 7B ZC wC 8B"},G:{"1":"AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C","516":"3C 4C 5C 6C 7C 8C 9C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","289":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","194":"dD"}},B:2,C:"CSS touch-action property",D:true}; 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..71cbd36 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-transitions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","33":"GB K E F G A B C L M H","164":"J"},D:{"1":"1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","33":"0 J GB K E F G A B C L M H N O P HB v w x y z"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","33":"K iC","164":"J GB hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G sC tC","33":"C","164":"B uC vC 7B ZC wC"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","33":"zC","164":"KC xC aC yC"},H:{"2":"JD"},I:{"1":"D OD PD","33":"DC J KD LD MD ND aC"},J:{"1":"A","33":"E"},K:{"1":"I 8B","33":"C","164":"A B 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"CSS3 Transitions",D:true}; 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..8880d2d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-unicode-bidi.js @@ -0,0 +1 @@ +module.exports={A:{A:{"132":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","132":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","33":"0 O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB","132":"cC DC J GB K E F G fC gC","292":"A B C L M H N"},D:{"1":"1 2 3 4 5 6 7 8 9 eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","132":"J GB K E F G A B C L M H N","548":"0 O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},E:{"132":"J GB K E F hC KC iC jC kC","548":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"132":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"132":"F KC xC aC yC zC 0C 1C","548":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"16":"JD"},I:{"1":"D","16":"DC J KD LD MD ND aC OD PD"},J:{"16":"E A"},K:{"1":"I","16":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","16":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","33":"dD"}},B:4,C:"CSS unicode-bidi property",D:false}; 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..fd1f77a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-unset-value.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C"},C:{"1":"1 2 3 4 5 6 7 8 9 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},E:{"1":"A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB sC tC uC vC 7B ZC wC 8B"},G:{"1":"3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS unset value",D:true}; 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..abe859d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-variables.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M","260":"H"},C:{"1":"1 2 3 4 5 6 7 8 9 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","194":"eB"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC","260":"lC"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB sC tC uC vC 7B ZC wC 8B","194":"RB"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C","260":"3C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS Variables (Custom Properties)",D:true}; 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..520767b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-when-else.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS @when / @else conditional rules",D:true}; 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..c6fc6a6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-widows-orphans.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E bC","129":"F G"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v w x y z"},E:{"1":"E F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC jC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","129":"G B sC tC uC vC 7B ZC wC"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC"},H:{"1":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"2":"E A"},K:{"1":"I 8B","2":"A B C 7B ZC"},L:{"1":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:2,C:"CSS widows & orphans",D:true}; 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..41c9ce3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-width-stretch.js @@ -0,0 +1 @@ +module.exports={A:{D:{"2":"J GB K E F G A B C L M H N O P HB v w","33":"0 1 2 3 4 5 6 7 8 9 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},L:{"33":"D"},B:{"2":"C L M H N O P","33":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"cC","33":"0 1 2 3 4 5 6 7 8 9 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},M:{"33":"D"},A:{"2":"K E F G A B bC"},F:{"2":"G B C sC tC uC vC 7B ZC wC 8B","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},K:{"2":"A B C 7B ZC 8B","33":"I"},E:{"2":"J GB K hC KC iC jC rC","33":"E F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC"},G:{"2":"KC xC aC yC zC","33":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},P:{"2":"J","33":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},I:{"2":"DC J KD LD MD ND aC","33":"D OD PD"}},B:6,C:"width: stretch property",D:undefined}; 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..c0f1487 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-writing-mode.js @@ -0,0 +1 @@ +module.exports={A:{A:{"132":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB fC gC","322":"SB TB UB VB WB"},D:{"1":"1 2 3 4 5 6 7 8 9 eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K","16":"E","33":"0 F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC","16":"GB","33":"K E F G A iC jC kC lC LC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC","33":"F yC zC 0C 1C 2C 3C 4C 5C"},H:{"2":"JD"},I:{"1":"D","2":"KD LD MD","33":"DC J ND aC OD PD"},J:{"33":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"36":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","33":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS writing-mode property",D:true}; 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..eaae820 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-zoom.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"K E bC","129":"F G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"FB D HC IC JC dC eC","2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC"},H:{"2":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"129":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:5,C:"CSS zoom",D:true}; 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..53bc0c8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css3-attr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"CSS3 attr() function for all properties",D:true}; 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..4dda989 --- /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":"K E bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","33":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","33":"J GB K E F G"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","33":"J GB hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","2":"G"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","33":"KC xC aC"},H:{"1":"JD"},I:{"1":"J D ND aC OD PD","33":"DC KD LD MD"},J:{"1":"A","33":"E"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"CSS3 Box-sizing",D:true}; 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..f63ffb5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css3-colors.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","4":"cC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u tC uC vC 7B ZC wC 8B","2":"G","4":"sC"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS3 Colors",D:true}; 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..91fffb1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css3-cursors-grab.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M"},C:{"1":"1 2 3 4 5 6 7 8 9 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","33":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","33":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","33":"J GB K E F G A hC KC iC jC kC lC LC"},F:{"1":"C lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u wC 8B","2":"G B sC tC uC vC 7B ZC","33":"0 H N O P HB v w x y z IB JB KB LB MB 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:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"33":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:2,C:"CSS grab & grabbing cursors",D:true}; 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..0331014 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css3-cursors-newer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","33":"cC DC J GB K E F G A B C L M H N O P HB v w x y fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","33":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","33":"J GB K E F hC KC iC jC kC"},F:{"1":"0 C z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u wC 8B","2":"G B sC tC uC vC 7B ZC","33":"H N O P HB v w x y"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"33":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:2,C:"CSS3 Cursors: zoom-in & zoom-out",D:true}; 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..8ee4735 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css3-cursors.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","132":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","260":"C L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","4":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","4":"J"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","4":"J hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","260":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E","16":"A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:2,C:"CSS3 Cursors (original values)",D:true}; 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..dcfa26d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css3-tabsize.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","33":"jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z","164":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB"},D:{"1":"1 2 3 4 5 6 7 8 9 YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v","132":"0 w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},E:{"1":"M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC","132":"E F G A B C L jC kC lC LC 7B 8B"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G sC tC uC","132":"0 H N O P HB v w x y z IB JB KB","164":"B C vC 7B ZC wC 8B"},G:{"1":"DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC","132":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD"},H:{"164":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC","132":"OD PD"},J:{"132":"E A"},K:{"1":"I","2":"A","164":"B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"164":"dD eD"}},B:4,C:"CSS3 tab-size",D:true}; 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..e248c1d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/currentcolor.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","2":"G"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS currentColor value",D:true}; 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..fcb624e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/custom-elements.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","8":"A B"},B:{"1":"Q","2":"1 2 3 4 5 6 7 8 9 I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","8":"C L M H N O P"},C:{"2":"1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","66":"0 y z IB JB KB LB","72":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB"},D:{"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 oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q","2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","66":"JB KB LB MB NB OB"},E:{"2":"J GB hC KC iC","8":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB","2":"G B C vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","66":"H N O P HB"},G:{"2":"KC xC aC yC zC","8":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"PD","2":"DC J D KD LD MD ND aC OD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"J QD RD SD TD UD LC VD WD","2":"0 v w x y z XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"2":"cD"},S:{"2":"eD","72":"dD"}},B:7,C:"Custom Elements (deprecated V0 spec)",D:true}; 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..cf33e03 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/custom-elementsv1.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","8":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","8":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB fC gC","8":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB","456":"gB hB iB jB kB lB mB nB oB","712":"EC pB FC qB"},D:{"1":"1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB","8":"iB jB","132":"kB lB mB nB oB EC pB FC qB rB sB tB uB"},E:{"2":"J GB K E hC KC iC jC kC","8":"F G A lC","132":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB sC tC uC vC 7B ZC wC 8B","132":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C","132":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J","132":"QD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","8":"dD"}},B:1,C:"Custom Elements (V1)",D:true}; 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..b93c9b9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/customevent.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","132":"G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB fC gC","132":"K E F G A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J","16":"GB K E F L M","388":"G A B C"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC","16":"GB K","388":"iC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u wC 8B","2":"G sC tC uC vC","132":"B 7B ZC"},G:{"1":"F zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"xC","16":"KC aC","388":"yC"},H:{"1":"JD"},I:{"1":"D OD PD","2":"KD LD MD","388":"DC J ND aC"},J:{"1":"A","388":"E"},K:{"1":"C I 8B","2":"A","132":"B 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"CustomEvent",D:true}; 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..98291e6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/datalist.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"bC","8":"K E F G","260":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","260":"C L M H","1284":"N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 t u AB BB CB DB EB FB D HC IC JC dC eC","8":"cC DC fC gC","516":"l m n o p q r s","4612":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k"},D:{"1":"1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","8":"J GB K E F G A B C L M H N O P HB","132":"0 v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB"},E:{"1":"L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","8":"J GB K E F G A B C hC KC iC jC kC lC LC 7B"},F:{"1":"G B C sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","132":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB"},G:{"8":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C","2049":"9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D PD","8":"DC J KD LD MD ND aC OD"},J:{"1":"A","8":"E"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"8":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:1,C:"Datalist element",D:true}; 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..ee98fa0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/dataset.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","4":"K E F G A bC"},B:{"1":"C L M H N","129":"1 2 3 4 5 6 7 8 9 O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB","4":"cC DC J GB fC gC","129":"1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"bB cB dB eB fB gB hB iB jB kB","4":"J GB K","129":"0 1 2 3 4 5 6 7 8 9 E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"4":"J GB hC KC","129":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"C OB PB QB RB SB TB UB VB WB XB 7B ZC wC 8B","4":"G B sC tC uC vC","129":"0 H N O P HB v w x y z IB JB KB LB MB NB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"4":"KC xC aC","129":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"4":"JD"},I:{"4":"KD LD MD","129":"DC J D ND aC OD PD"},J:{"129":"E A"},K:{"1":"C 7B ZC 8B","4":"A B","129":"I"},L:{"129":"D"},M:{"129":"D"},N:{"1":"B","4":"A"},O:{"129":"9B"},P:{"129":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"129":"bD"},R:{"129":"cD"},S:{"1":"dD","129":"eD"}},B:1,C:"dataset & data-* attributes",D:true}; 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..7f57dfa --- /dev/null +++ b/node_modules/caniuse-lite/data/features/datauri.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E bC","132":"F","260":"G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","260":"C L H N O P","772":"M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"260":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"Data URIs",D:true}; 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..d76665b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js @@ -0,0 +1 @@ +module.exports={A:{A:{"16":"bC","132":"K E F G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","132":"C L M H N O"},C:{"1":"1 2 3 4 5 6 7 8 9 mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","132":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB fC gC","260":"iB jB kB lB","772":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB"},D:{"1":"1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","132":"J GB K E F G A B C L M H N O P HB v w x y","260":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB","772":"0 z IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"1":"C L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"J GB hC KC","132":"K E F G A iC jC kC lC","260":"B LC 7B"},F:{"1":"nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","16":"G B C sC tC uC vC 7B ZC wC","132":"8B","260":"0 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB","772":"H N O P HB v w x y z"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC yC","132":"F zC 0C 1C 2C 3C 4C"},H:{"132":"JD"},I:{"1":"D","16":"DC KD LD MD","132":"J ND aC","772":"OD PD"},J:{"132":"E A"},K:{"1":"I","16":"A B C 7B ZC","132":"8B"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z UD LC VD WD XD YD ZD AC BC CC aD","260":"J QD RD SD TD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","132":"dD"}},B:6,C:"Date.prototype.toLocaleDateString",D:true}; 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..1935326 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z","132":"a b c d e f g h i j k l m n o p q r s t"},C:{"1":"CB DB EB FB D HC IC JC dC eC","2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T","66":"U V W X Y","132":"Z a b c d e f g h i j k l m n o p q r s t"},E:{"1":"RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC"},F:{"1":"g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B sC tC uC vC 7B ZC wC 8B","132":"5B 6B Q I R GC S T U V W X Y Z a b c d e f"},G:{"1":"RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 x y z","2":"J QD RD SD TD UD LC VD WD XD YD","16":"ZD","132":"v w AC BC CC aD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:1,C:"Declarative Shadow DOM",D:true}; 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..94c37e5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/decorators.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"Decorators",D:true}; 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..6c27190 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/details.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"G A B bC","8":"K E F"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC","8":"0 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB fC gC","194":"dB eB"},D:{"1":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","8":"J GB K E F G A B","257":"0 HB v w x y z IB JB KB LB MB NB OB PB QB RB","769":"C L M H N O P"},E:{"1":"C L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","8":"J GB hC KC iC","257":"K E F G A jC kC lC","1025":"B LC 7B"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"C 7B ZC wC 8B","8":"G B sC tC uC vC"},G:{"1":"F zC 0C 1C 2C 3C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","8":"KC xC aC yC","1025":"4C 5C 6C"},H:{"8":"JD"},I:{"1":"J D ND aC OD PD","8":"DC KD LD MD"},J:{"1":"A","8":"E"},K:{"1":"I","8":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Details & Summary elements",D:true}; 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..dfeead4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/deviceorientation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","132":"B"},B:{"1":"C L M H N O P","4":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"cC DC fC","4":"0 1 2 3 4 5 6 7 8 9 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","8":"J GB gC"},D:{"2":"J GB K","4":"0 1 2 3 4 5 6 7 8 9 E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"G B C sC tC uC vC 7B ZC wC 8B","4":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"KC xC","4":"F aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"KD LD MD","4":"DC J D ND aC OD PD"},J:{"2":"E","4":"A"},K:{"1":"C 8B","2":"A B 7B ZC","4":"I"},L:{"4":"D"},M:{"4":"D"},N:{"1":"B","2":"A"},O:{"4":"9B"},P:{"4":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"4":"bD"},R:{"4":"cD"},S:{"4":"dD eD"}},B:4,C:"DeviceOrientation & DeviceMotion events",D:true}; 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..4d16f46 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/devicepixelratio.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E F G A bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u wC 8B","2":"G B sC tC uC vC 7B ZC"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"C I 8B","2":"A B 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"Window.devicePixelRatio",D:true}; 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..bf06aac --- /dev/null +++ b/node_modules/caniuse-lite/data/features/dialog.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB fC gC","194":"jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q","1218":"I R GC S T U V W X Y Z a b c d e f g"},D:{"1":"1 2 3 4 5 6 7 8 9 TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB","322":"OB PB QB RB SB"},E:{"1":"NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC"},F:{"1":"0 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P sC tC uC vC 7B ZC wC 8B","578":"HB v w x y"},G:{"1":"NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:1,C:"Dialog element",D:true}; 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..aece40c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/dispatchevent.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","16":"bC","129":"G A","130":"K E F"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"hC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","16":"G"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC"},H:{"1":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","129":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"EventTarget.dispatchEvent",D:true}; 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..8541cfd --- /dev/null +++ b/node_modules/caniuse-lite/data/features/dnssec.js @@ -0,0 +1 @@ +module.exports={A:{A:{"132":"K E F G A B bC"},B:{"132":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"132":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"132":"1 2 3 4 5 6 7 8 9 J GB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","388":"0 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB"},E:{"132":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"132":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"132":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"132":"JD"},I:{"132":"DC J D KD LD MD ND aC OD PD"},J:{"132":"E A"},K:{"132":"A B C I 7B ZC 8B"},L:{"132":"D"},M:{"132":"D"},N:{"132":"A B"},O:{"132":"9B"},P:{"132":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"132":"bD"},R:{"132":"cD"},S:{"132":"dD eD"}},B:6,C:"DNSSEC and DANE",D:true}; 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..2984eb1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/do-not-track.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","164":"G A","260":"B"},B:{"1":"1 2 3 4 5 6 7 8 9 O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","260":"C L M H N"},C:{"1":"1 2 3 4 5 6 7 8 9 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F fC gC","516":"0 G A B C L M H N O P HB v w x y z IB JB KB LB MB NB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v w x"},E:{"1":"K A B C iC lC LC 7B","2":"J GB L M H hC KC 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","1028":"E F G jC kC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G B sC tC uC vC 7B ZC wC"},G:{"1":"2C 3C 4C 5C 6C 7C 8C","2":"KC xC aC yC zC 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","1028":"F 0C 1C"},H:{"1":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"16":"E","1028":"A"},K:{"1":"I 8B","16":"A B C 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"164":"A","260":"B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:7,C:"Do Not Track API",D:true}; 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..e3356f1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/document-currentscript.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB"},E:{"1":"F G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E hC KC iC jC kC"},F:{"1":"0 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC 0C"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"document.currentScript",D:true}; 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..9d1e811 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","16":"cC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","16":"G"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:7,C:"document.evaluate & XPath",D:true}; 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..922eb71 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/document-execcommand.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"J GB hC KC iC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u tC uC vC 7B ZC wC 8B","16":"G sC"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC","16":"aC yC zC"},H:{"2":"JD"},I:{"1":"D ND aC OD PD","2":"DC J KD LD MD"},J:{"1":"A","2":"E"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:7,C:"Document.execCommand()",D:true}; 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..e036c3b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/document-policy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P Q I R S T","132":"1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T","132":"1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB sC tC uC vC 7B ZC wC 8B","132":"zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","132":"D"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","132":"I"},L:{"132":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"132":"cD"},S:{"2":"dD eD"}},B:7,C:"Document Policy",D:true}; 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..e8bcaba --- /dev/null +++ b/node_modules/caniuse-lite/data/features/document-scrollingelement.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","16":"C L"},C:{"1":"1 2 3 4 5 6 7 8 9 eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB fC gC"},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 EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F hC KC iC jC kC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB sC tC uC vC 7B ZC wC 8B"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"document.scrollingElement",D:true}; 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..211cda1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/documenthead.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC","16":"GB"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 7B ZC wC 8B","2":"G sC tC uC vC"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC"},H:{"1":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"document.head",D:true}; 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..26d4078 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/dom-manip-convenience.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N"},C:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB","194":"iB jB"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC"},F:{"1":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB sC tC uC vC 7B ZC wC 8B","194":"WB"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:1,C:"DOM manipulation convenience methods",D:true}; 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..49041a3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/dom-range.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"bC","8":"K E F"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Document Object Model Range",D:true}; 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..0f1a970 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/domcontentloaded.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"DOMContentLoaded",D:true}; 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..0ee17ca --- /dev/null +++ b/node_modules/caniuse-lite/data/features/dommatrix.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","132":"A B"},B:{"132":"C L M H N O P","1028":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB fC gC","1028":"1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2564":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","3076":"fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB"},D:{"16":"J GB K E","132":"0 G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB","388":"F","1028":"1 2 3 4 5 6 7 8 9 FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"16":"J hC KC","132":"GB K E F G A iC jC kC lC LC","1028":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"G B C sC tC uC vC 7B ZC wC 8B","132":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","1028":"eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"16":"KC xC aC","132":"F yC zC 0C 1C 2C 3C 4C 5C","1028":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"132":"J ND aC OD PD","292":"DC KD LD MD","1028":"D"},J:{"16":"E","132":"A"},K:{"2":"A B C 7B ZC 8B","1028":"I"},L:{"1028":"D"},M:{"1028":"D"},N:{"132":"A B"},O:{"1028":"9B"},P:{"132":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1028":"bD"},R:{"1028":"cD"},S:{"1028":"eD","2564":"dD"}},B:4,C:"DOMMatrix",D:true}; 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..46f5612 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/download.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"A","2":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Download attribute",D:true}; 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..bbd7747 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/dragndrop.js @@ -0,0 +1 @@ +module.exports={A:{A:{"644":"K E F G bC","772":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","260":"C L M H N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","8":"cC DC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","8":"G B sC tC uC vC 7B ZC wC"},G:{"1":"GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","1025":"D"},J:{"2":"E A"},K:{"1":"8B","8":"A B C 7B ZC","1025":"I"},L:{"1025":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"1025":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:1,C:"Drag and Drop",D:true}; 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..d64df30 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/element-closest.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M"},C:{"1":"1 2 3 4 5 6 7 8 9 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F hC KC iC jC kC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB sC tC uC vC 7B ZC wC 8B"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Element.closest()",D:true}; 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..877784e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/element-from-point.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"K E F G A B","16":"bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","16":"cC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"J hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 7B ZC wC 8B","16":"G sC tC uC vC"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC"},H:{"1":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"E A"},K:{"1":"C I 8B","16":"A B 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"document.elementFromPoint()",D:true}; 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..90b3fb8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/element-scroll-methods.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB"},E:{"1":"M H nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC","132":"A B C L LC 7B 8B 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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB sC tC uC vC 7B ZC wC 8B"},G:{"1":"FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C","132":"4C 5C 6C 7C 8C 9C AD BD CD DD ED"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"Scroll methods on elements (scroll, scrollTo, scrollBy)",D:true}; 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..a5af072 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/eme.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","164":"B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB","132":"RB SB TB UB VB WB XB"},E:{"1":"C L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC jC","164":"E F G A B kC lC LC 7B"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w sC tC uC vC 7B ZC wC 8B","132":"0 x y z IB JB KB"},G:{"1":"7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"Encrypted Media Extensions",D:true}; 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..d84b01f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/eot.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"K E F G A B","2":"bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"EOT - Embedded OpenType fonts",D:true}; 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..0f9d2e0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/es5.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E bC","260":"G","1026":"F"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","4":"cC DC fC gC","132":"J GB K E F G A B C L M H N O P HB v"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","4":"J GB K E F G A B C L M H N O P","132":"HB v w x"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","4":"J GB hC KC iC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","4":"G B C sC tC uC vC 7B ZC wC","132":"8B"},G:{"1":"F zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","4":"KC xC aC yC"},H:{"132":"JD"},I:{"1":"D OD PD","4":"DC KD LD MD","132":"ND aC","900":"J"},J:{"1":"A","4":"E"},K:{"1":"I","4":"A B C 7B ZC","132":"8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"ECMAScript 5",D:true}; 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..7785385 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/es6-class.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C"},C:{"1":"1 2 3 4 5 6 7 8 9 bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","132":"YB ZB aB bB cB dB eB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F hC KC iC jC kC"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB sC tC uC vC 7B ZC wC 8B","132":"LB MB NB OB PB QB RB"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"ES6 classes",D:true}; 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..27847d8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/es6-generators.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C"},C:{"1":"1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z sC tC uC vC 7B ZC wC 8B"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"ES6 Generators",D:true}; 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..632c0bc --- /dev/null +++ b/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB fC gC","194":"uB"},D:{"1":"1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB"},E:{"1":"C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B hC KC iC jC kC lC LC"},F:{"1":"gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB sC tC uC vC 7B ZC wC 8B"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:6,C:"JavaScript modules: dynamic import()",D:true}; 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..0b32777 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/es6-module.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M","2049":"N O P","2242":"H"},C:{"1":"1 2 3 4 5 6 7 8 9 pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB fC gC","322":"kB lB mB nB oB EC"},D:{"1":"1 2 3 4 5 6 7 8 9 FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC","194":"pB"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC","1540":"LC"},F:{"1":"eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB sC tC uC vC 7B ZC wC 8B","194":"dB"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C","1540":"5C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:1,C:"JavaScript modules via script tag",D:true}; 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..f844081 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/es6-number.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H fC gC","132":"N O P HB v w x y z","260":"0 IB JB KB LB MB","516":"NB"},D:{"1":"1 2 3 4 5 6 7 8 9 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P","1028":"0 HB v w x y z IB JB KB LB MB NB OB PB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F hC KC iC jC kC"},F:{"1":"0 w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","1028":"H N O P HB v"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD","1028":"ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"ES6 Number",D:true}; 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..50c6b1e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/es6-string-includes.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F hC KC iC jC kC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB sC tC uC vC 7B ZC wC 8B"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"String.prototype.includes",D:true}; 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..eab90ed --- /dev/null +++ b/node_modules/caniuse-lite/data/features/es6.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","388":"B"},B:{"257":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","260":"C L M","769":"H N O P"},C:{"2":"cC DC J GB fC gC","4":"0 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB","257":"1 2 3 4 5 6 7 8 9 kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"2":"J GB K E F G A B C L M H N O P HB v","4":"0 w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB","257":"1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E hC KC iC jC","4":"F G kC lC"},F:{"2":"G B C sC tC uC vC 7B ZC wC 8B","4":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB","257":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC","4":"F 0C 1C 2C 3C"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC","4":"OD PD","257":"D"},J:{"2":"E","4":"A"},K:{"2":"A B C 7B ZC 8B","257":"I"},L:{"257":"D"},M:{"257":"D"},N:{"2":"A","388":"B"},O:{"257":"9B"},P:{"4":"J","257":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"257":"bD"},R:{"257":"cD"},S:{"4":"dD","257":"eD"}},B:6,C:"ECMAScript 2015 (ES6)",D:true}; 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..939dc47 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/eventsource.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 7B ZC wC 8B","4":"G sC tC uC vC"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"E A"},K:{"1":"C I 7B ZC 8B","4":"A B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Server-sent events",D:true}; 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..d71ec0e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/extended-system-fonts.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L hC KC iC jC kC lC LC 7B 8B"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"ui-serif, ui-sans-serif, ui-monospace and ui-rounded values for font-family",D:true}; 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..9b4e043 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/feature-policy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"Q I R S T U V W","2":"C L M H N O P","1025":"1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B fC gC","260":"1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"2B 3B 4B 5B 6B Q I R S T U V W","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC","132":"pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B","1025":"1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B hC KC iC jC kC lC LC","772":"C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"qB rB sB tB uB vB wB xB yB zB 0B 1B 2B","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB sC tC uC vC 7B ZC wC 8B","132":"dB eB fB gB hB iB jB kB lB mB nB oB pB","1025":"3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C","772":"7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","1025":"I"},L:{"1025":"D"},M:{"260":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD","132":"TD UD LC"},Q:{"132":"bD"},R:{"1025":"cD"},S:{"2":"dD","260":"eD"}},B:7,C:"Feature Policy",D:true}; 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..de8ed60 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/fetch.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L"},C:{"1":"1 2 3 4 5 6 7 8 9 WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB fC gC","1025":"VB","1218":"QB RB SB TB UB"},D:{"1":"1 2 3 4 5 6 7 8 9 YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB","260":"WB","772":"XB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB sC tC uC vC 7B ZC wC 8B","260":"JB","772":"KB"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Fetch",D:true}; 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..c962448 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/fieldset-disabled.js @@ -0,0 +1 @@ +module.exports={A:{A:{"16":"bC","132":"F G","388":"K E A B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H","16":"N O P HB"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u tC uC vC 7B ZC wC 8B","16":"G sC"},G:{"1":"F zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC"},H:{"388":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"A","2":"E"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A","260":"B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"disabled attribute of the fieldset element",D:true}; 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..6fb0643 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/fileapi.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","260":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","260":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC","260":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB gC"},D:{"1":"1 2 3 4 5 6 7 8 9 UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB","260":"0 L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB","388":"K E F G A B C"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC","260":"K E F G jC kC lC","388":"iC"},F:{"1":"0 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B sC tC uC vC","260":"C H N O P HB v w x y z 7B ZC wC 8B"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC","260":"F zC 0C 1C 2C 3C"},H:{"2":"JD"},I:{"1":"D PD","2":"KD LD MD","260":"OD","388":"DC J ND aC"},J:{"260":"A","388":"E"},K:{"1":"I","2":"A B","260":"C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A","260":"B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"File API",D:true}; 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..c589be7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/filereader.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","132":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC gC","2":"cC DC fC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 7B ZC wC 8B","2":"G B sC tC uC vC"},G:{"1":"F zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC"},H:{"2":"JD"},I:{"1":"DC J D ND aC OD PD","2":"KD LD MD"},J:{"1":"A","2":"E"},K:{"1":"C I 7B ZC 8B","2":"A B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"FileReader API",D:true}; 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..f8bfea7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/filereadersync.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u wC 8B","2":"G sC tC","16":"B uC vC 7B ZC"},G:{"1":"F zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"A","2":"E"},K:{"1":"C I ZC 8B","2":"A","16":"B 7B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"FileReaderSync",D:true}; 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..ad7ca6e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/filesystem.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","33":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"J GB K E","33":"0 1 2 3 4 5 6 7 8 9 L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","36":"F G A B C"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"G B C sC tC uC vC 7B ZC wC 8B","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E","33":"A"},K:{"2":"A B C 7B ZC 8B","33":"I"},L:{"33":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"33":"9B"},P:{"2":"J","33":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"33":"cD"},S:{"2":"dD eD"}},B:7,C:"Filesystem & FileWriter API",D:true}; 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..879bad4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/flac.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H"},C:{"1":"1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB","16":"aB bB cB","388":"dB eB fB gB hB iB jB kB lB"},E:{"1":"L M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC LC","516":"B C 7B 8B"},F:{"1":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB sC tC uC vC 7B ZC wC 8B"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C"},H:{"2":"JD"},I:{"1":"D","2":"KD LD MD","16":"DC J ND aC OD PD"},J:{"1":"A","2":"E"},K:{"1":"I 8B","16":"A B C 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","129":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:6,C:"FLAC audio format",D:true}; 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..9753af7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/flexbox-gap.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S"},C:{"1":"1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S"},E:{"1":"H nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M hC KC iC jC kC lC LC 7B 8B mC"},F:{"1":"yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB sC tC uC vC 7B ZC wC 8B"},G:{"1":"FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD WD XD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"gap property for Flexbox",D:true}; 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..8a3af08 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/flexbox.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","1028":"B","1316":"A"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","164":"cC DC J GB K E F G A B C L M H N O P HB v w fC gC","516":"0 x y z IB JB"},D:{"1":"1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","33":"0 w x y z IB JB KB","164":"J GB K E F G A B C L M H N O P HB v"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","33":"E F jC kC","164":"J GB K hC KC iC"},F:{"1":"0 O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G B C sC tC uC vC 7B ZC wC","33":"H N"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","33":"F 0C 1C","164":"KC xC aC yC zC"},H:{"1":"JD"},I:{"1":"D OD PD","164":"DC J KD LD MD ND aC"},J:{"1":"A","164":"E"},K:{"1":"I 8B","2":"A B C 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","292":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS Flexible Box Layout Module",D:true}; 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..a0203cb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/flow-root.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB"},E:{"1":"L M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C hC KC iC jC kC lC LC 7B 8B"},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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB sC tC uC vC 7B ZC wC 8B"},G:{"1":"AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:4,C:"display: flow-root",D:true}; 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..b3f5ad5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/focusin-focusout-events.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"K E F G A B","2":"bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"J GB hC KC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u wC 8B","2":"G sC tC uC vC","16":"B 7B ZC"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC"},H:{"2":"JD"},I:{"1":"J D ND aC OD PD","2":"KD LD MD","16":"DC"},J:{"1":"E A"},K:{"1":"C I 8B","2":"A","16":"B 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"focusin & focusout events",D:true}; 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..fbd2840 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/font-family-system-ui.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB fC gC","132":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a"},D:{"1":"1 2 3 4 5 6 7 8 9 mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB","260":"jB kB lB"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F hC KC iC jC kC","16":"G","132":"A lC LC"},F:{"1":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB sC tC uC vC 7B ZC wC 8B"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C","132":"2C 3C 4C 5C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"132":"dD eD"}},B:5,C:"system-ui value for font-family",D:true}; 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..0851221 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/font-feature.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB","164":"J GB K E F G A B C L M"},D:{"1":"1 2 3 4 5 6 7 8 9 eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H","33":"0 w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","292":"N O P HB v"},E:{"1":"A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"E F G hC KC jC kC","4":"J GB K iC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB"},G:{"1":"3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F 0C 1C 2C","4":"KC xC aC yC zC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC","33":"OD PD"},J:{"2":"E","33":"A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","33":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS font-feature-settings",D:true}; 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..eae9add --- /dev/null +++ b/node_modules/caniuse-lite/data/features/font-kerning.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB v w x y fC gC","194":"0 z IB JB KB LB MB NB OB PB"},D:{"1":"1 2 3 4 5 6 7 8 9 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB","33":"LB MB NB OB"},E:{"1":"A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC jC","33":"E F G kC"},F:{"1":"0 v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H sC tC uC vC 7B ZC wC 8B","33":"N O P HB"},G:{"1":"8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC 0C","33":"F 1C 2C 3C 4C 5C 6C 7C"},H:{"2":"JD"},I:{"1":"D PD","2":"DC J KD LD MD ND aC","33":"OD"},J:{"2":"E","33":"A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS3 font-kerning",D:true}; 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..97e4215 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/font-loading.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB fC gC","194":"RB SB TB UB VB WB"},D:{"1":"1 2 3 4 5 6 7 8 9 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC"},F:{"1":"0 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w sC tC uC vC 7B ZC wC 8B"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"CSS Font Loading",D:true}; 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..1640f8b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/font-size-adjust.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"D","2":"C L M H N O P","194":"6 7 8 9 AB BB CB DB EB FB","962":"1 2 3 4 5 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},C:{"1":"7 8 9 AB BB CB DB EB FB D HC IC JC dC eC","2":"cC","516":"1 2 3 4 5 6 b c d e f g h i j k l m n o p q r s t u","772":"0 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a fC gC"},D:{"1":"D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","194":"9 AB BB CB DB EB FB","962":"1 2 3 4 5 6 7 8 ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},E:{"1":"BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC","772":"RC SC qC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB sC tC uC vC 7B ZC wC 8B","194":"l m n o p q r s t u","962":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k"},G:{"1":"BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC","772":"RC SC ID"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"194":"bD"},R:{"2":"cD"},S:{"2":"dD","516":"eD"}},B:2,C:"CSS font-size-adjust",D:true}; 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..fb01c0e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/font-smooth.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","676":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"cC DC J GB K E F G A B C L M H N O P HB v w x y z fC gC","804":"0 1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","1828":"HC IC JC dC eC"},D:{"2":"J","676":"0 1 2 3 4 5 6 7 8 9 GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"hC KC","676":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"G B C sC tC uC vC 7B ZC wC 8B","676":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"804":"dD eD"}},B:7,C:"CSS font-smooth",D:true}; 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..3bba6ab --- /dev/null +++ b/node_modules/caniuse-lite/data/features/font-unicode-range.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","4":"G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","4":"C L M H N"},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 EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB fC gC","194":"SB TB UB VB WB XB YB ZB"},D:{"1":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","4":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","4":"J GB K E F G hC KC iC jC kC lC"},F:{"1":"0 y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","4":"H N O P HB v w x"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","4":"F KC xC aC yC zC 0C 1C 2C 3C"},H:{"2":"JD"},I:{"1":"D","4":"DC J KD LD MD ND aC OD PD"},J:{"2":"E","4":"A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"4":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","4":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"Font unicode-range subsetting",D:true}; 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..4d91adc --- /dev/null +++ b/node_modules/caniuse-lite/data/features/font-variant-alternates.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","130":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 u AB BB CB DB EB FB D","130":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t"},C:{"1":"1 2 3 4 5 6 7 8 9 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","130":"J GB K E F G A B C L M H N O P HB v w x y","322":"0 z IB JB KB LB MB NB OB PB"},D:{"1":"1 2 3 4 5 6 7 8 9 u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H","130":"0 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t"},E:{"1":"A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"E F G hC KC jC kC","130":"J GB K iC"},F:{"1":"h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","130":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g"},G:{"1":"3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC 0C 1C 2C","130":"xC aC yC zC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC","130":"OD PD"},J:{"2":"E","130":"A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"130":"9B"},P:{"1":"0 x y z","130":"J v w QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"130":"bD"},R:{"130":"cD"},S:{"1":"dD eD"}},B:5,C:"CSS font-variant-alternates",D:true}; 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..2444d41 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/font-variant-numeric.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB"},E:{"1":"A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB sC tC uC vC 7B ZC wC 8B"},G:{"1":"3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E","16":"A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS font-variant-numeric",D:true}; 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..ab10e89 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/fontface.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","132":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","2":"cC DC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u tC uC vC 7B ZC wC 8B","2":"G sC"},G:{"1":"F aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","260":"KC xC"},H:{"2":"JD"},I:{"1":"J D ND aC OD PD","2":"KD","4":"DC LD MD"},J:{"1":"A","4":"E"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"@font-face Web fonts",D:true}; 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..3c1ea16 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/form-attribute.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC","16":"GB"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","2":"G"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC"},H:{"1":"JD"},I:{"1":"DC J D ND aC OD PD","2":"KD LD MD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Form attribute",D:true}; 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..7fd4d37 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/form-submit-attributes.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u vC 7B ZC wC 8B","2":"G sC","16":"tC uC"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC"},H:{"1":"JD"},I:{"1":"J D ND aC OD PD","2":"KD LD MD","16":"DC"},J:{"1":"A","2":"E"},K:{"1":"B C I 7B ZC 8B","16":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Attributes for form submission",D:true}; 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..3fdea97 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/form-validation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC","132":"GB K E F G A iC jC kC lC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u tC uC vC 7B ZC wC 8B","2":"G sC"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC","132":"F xC aC yC zC 0C 1C 2C 3C 4C"},H:{"516":"JD"},I:{"1":"D PD","2":"DC KD LD MD","132":"J ND aC OD"},J:{"1":"A","132":"E"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"260":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","132":"dD"}},B:1,C:"Form validation",D:true}; 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..1558729 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/forms.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"bC","4":"A B","8":"K E F G"},B:{"1":"1 2 3 4 5 6 7 8 9 N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","4":"C L M H"},C:{"4":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","8":"cC DC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","4":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB"},E:{"4":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","8":"hC KC"},F:{"1":"G B C iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","4":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB"},G:{"2":"KC","4":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC","4":"OD PD"},J:{"2":"E","4":"A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"4":"D"},N:{"4":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD","4":"J QD RD SD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"4":"dD eD"}},B:1,C:"HTML5 form features",D:false}; 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..0ad55fc --- /dev/null +++ b/node_modules/caniuse-lite/data/features/fullscreen.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","548":"B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","516":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G fC gC","676":"0 A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB","1700":"dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB"},D:{"1":"1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M","676":"H N O P HB","804":"0 v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB"},E:{"1":"RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC","548":"NC 9B pC AC OC PC QC","676":"iC","804":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC"},F:{"1":"sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G B C sC tC uC vC 7B ZC wC","804":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C","2052":"8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E","292":"A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A","548":"B"},O:{"1":"9B"},P:{"1":"0 v w x y z LC VD WD XD YD ZD AC BC CC aD","804":"J QD RD SD TD UD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Fullscreen API",D:true}; 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..b685b17 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/gamepad.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v","33":"w x y z"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC"},F:{"1":"0 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w x y sC tC uC vC 7B ZC wC 8B"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"Gamepad API",D:true}; 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..a911ed6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/geolocation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"bC","8":"K E F"},B:{"1":"C L M H N O P","129":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB fC gC","8":"cC DC","129":"1 2 3 4 5 6 7 8 9 lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"0 GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB","4":"J","129":"1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"GB K E F G B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","8":"J hC KC","129":"A"},F:{"1":"0 B C N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB vC 7B ZC wC 8B","2":"G H sC","8":"tC uC","129":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C","129":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J KD LD MD ND aC OD PD","129":"D"},J:{"1":"E A"},K:{"1":"B C 7B ZC 8B","8":"A","129":"I"},L:{"129":"D"},M:{"129":"D"},N:{"1":"A B"},O:{"129":"9B"},P:{"1":"J","129":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"129":"bD"},R:{"129":"cD"},S:{"1":"dD","129":"eD"}},B:2,C:"Geolocation",D:true}; 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..beb6e48 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/getboundingclientrect.js @@ -0,0 +1 @@ +module.exports={A:{A:{"644":"K E bC","2049":"G A B","2692":"F"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2049":"C L M H N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC","260":"J GB K E F G A B","1156":"DC","1284":"fC","1796":"gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u vC 7B ZC wC 8B","16":"G sC","132":"tC uC"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC"},H:{"1":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","132":"A"},L:{"1":"D"},M:{"1":"D"},N:{"2049":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"Element.getBoundingClientRect()",D:true}; 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..f1191af --- /dev/null +++ b/node_modules/caniuse-lite/data/features/getcomputedstyle.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC","132":"DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","260":"J GB K E F G A"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","260":"J hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u vC 7B ZC wC 8B","260":"G sC tC uC"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","260":"KC xC aC"},H:{"260":"JD"},I:{"1":"J D ND aC OD PD","260":"DC KD LD MD"},J:{"1":"A","260":"E"},K:{"1":"B C I 7B ZC 8B","260":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"getComputedStyle",D:true}; 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..b60e1f6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/getelementsbyclassname.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"bC","8":"K E F"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","8":"cC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","2":"G"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"getElementsByClassName",D:true}; 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..56076a2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/getrandomvalues.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","33":"B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB v fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"A","2":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A","33":"B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"crypto.getRandomValues()",D:true}; 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..63b22b3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/gyroscope.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB","194":"oB EC pB FC qB rB sB tB uB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:4,C:"Gyroscope",D:true}; 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..aaaf45a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/hardwareconcurrency.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M"},C:{"1":"1 2 3 4 5 6 7 8 9 eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB"},E:{"2":"J GB K E hC KC iC jC kC","129":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","194":"F G A lC"},F:{"1":"0 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w x y sC tC uC vC 7B ZC wC 8B"},G:{"2":"KC xC aC yC zC 0C","129":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","194":"F 1C 2C 3C 4C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"navigator.hardwareConcurrency",D:true}; 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..cec60cc --- /dev/null +++ b/node_modules/caniuse-lite/data/features/hashchange.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F G A B","8":"K E bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC gC","8":"cC DC fC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","8":"J"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","8":"J hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u vC 7B ZC wC 8B","8":"G sC tC uC"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC"},H:{"2":"JD"},I:{"1":"DC J D LD MD ND aC OD PD","2":"KD"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","8":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Hashchange event",D:true}; 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..a72f2ba --- /dev/null +++ b/node_modules/caniuse-lite/data/features/heif.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC LC","130":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C ID","130":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:6,C:"HEIF/HEIC image format",D:true}; 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..dc80ec4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/hevc.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","132":"B"},B:{"132":"C L M H N O P","1028":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u fC gC","4098":"9","8258":"AB BB CB DB EB FB D HC IC JC dC eC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p","2052":"1 2 3 4 5 6 7 8 9 q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"L M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC LC","516":"B C 7B 8B"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c sC tC uC vC 7B ZC wC 8B","2052":"d e f g h i j k l m n o p q r s t u"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","2052":"D"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","258":"I"},L:{"2052":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 w x y z","2":"J","258":"v QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:6,C:"HEVC/H.265 video format",D:true}; 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..9b20ca2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/hidden.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E F G A bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 7B ZC wC 8B","2":"G B sC tC uC vC"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC"},H:{"1":"JD"},I:{"1":"J D ND aC OD PD","2":"DC KD LD MD"},J:{"1":"A","2":"E"},K:{"1":"C I 7B ZC 8B","2":"A B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"hidden attribute",D:true}; 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..abb5fa1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/high-resolution-time.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB","2":"cC DC J GB K E F G A B C L M fC gC","129":"lB mB nB","769":"oB EC","1281":"1 2 3 4 5 6 7 8 9 pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB","33":"v w x y"},E:{"1":"F G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E hC KC iC jC kC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC 0C 1C"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"A","2":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"High Resolution Time API",D:true}; 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..8aec950 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/history.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC","4":"GB iC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u ZC wC 8B","2":"G B sC tC uC vC 7B"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC","4":"aC"},H:{"2":"JD"},I:{"1":"D LD MD aC OD PD","2":"DC J KD ND"},J:{"1":"E A"},K:{"1":"C I 7B ZC 8B","2":"A B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Session history management",D:true}; 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..46a64e3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/html-media-capture.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"KC xC aC yC","129":"F zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J D ND aC OD PD","2":"KD","257":"LD MD"},J:{"1":"A","16":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"516":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"16":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:2,C:"HTML Media Capture",D:true}; 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..ac51644 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/html5semantic.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"bC","8":"K E F","260":"G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC","132":"DC fC gC","260":"J GB K E F G A B C L M H N O P HB v"},D:{"1":"1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","132":"J GB","260":"0 K E F G A B C L M H N O P HB v w x y z"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","132":"J hC KC","260":"GB K iC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","132":"G B sC tC uC vC","260":"C 7B ZC wC 8B"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","132":"KC","260":"xC aC yC zC"},H:{"132":"JD"},I:{"1":"D OD PD","132":"KD","260":"DC J LD MD ND aC"},J:{"260":"E A"},K:{"1":"I","132":"A","260":"B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"260":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"HTML5 semantic elements",D:true}; 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..5bcc3b6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/http-live-streaming.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"C L M H N O P","2":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J D ND aC OD PD","2":"KD LD MD"},J:{"1":"A","2":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:7,C:"HTTP Live Streaming (HLS)",D:true}; 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..74b6a5e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/http2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","132":"B"},B:{"1":"C L M H N O P","513":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB fC gC","513":"1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"XB YB ZB aB bB cB dB eB fB gB","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","513":"1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F hC KC iC jC kC","260":"G A lC LC"},F:{"1":"KB LB MB NB OB PB QB RB SB TB","2":"0 G B C H N O P HB v w x y z IB JB sC tC uC vC 7B ZC wC 8B","513":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","513":"D"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","513":"I"},L:{"513":"D"},M:{"513":"D"},N:{"2":"A B"},O:{"513":"9B"},P:{"1":"J","513":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"513":"bD"},R:{"513":"cD"},S:{"1":"dD","513":"eD"}},B:6,C:"HTTP/2 protocol",D:true}; 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..67ca1da --- /dev/null +++ b/node_modules/caniuse-lite/data/features/http3.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P","322":"Q I R S T","578":"U V"},C:{"1":"1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB fC gC","194":"0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W"},D:{"1":"1 2 3 4 5 6 7 8 9 W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B","322":"Q I R S T","578":"U V"},E:{"2":"J GB K E F G A B C L hC KC iC jC kC lC LC 7B 8B mC","2052":"RC SC qC BC TC UC VC WC XC YC CC rC","2116":"AC OC PC QC","3140":"M H nC oC MC NC 9B pC"},F:{"1":"2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B sC tC uC vC 7B ZC wC 8B","578":"1B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD","2052":"RC SC ID BC TC UC VC WC XC YC CC","2116":"ED FD GD MC NC 9B HD AC OC PC QC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD WD XD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:6,C:"HTTP/3 protocol",D:true}; 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..9cc4494 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/iframe-sandbox.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N fC gC","4":"0 O P HB v w x y z IB JB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC"},H:{"2":"JD"},I:{"1":"DC J D LD MD ND aC OD PD","2":"KD"},J:{"1":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"sandbox attribute for iframes",D:true}; 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..3b763c1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/iframe-seamless.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","66":"0 v w x y z IB"},E:{"2":"J GB K F G A B C L M H hC KC iC jC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","130":"E kC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","130":"0C"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"seamless attribute for iframes",D:true}; 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..bb016ff --- /dev/null +++ b/node_modules/caniuse-lite/data/features/iframe-srcdoc.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"bC","8":"K E F G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","8":"C L M H N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC","8":"DC J GB K E F G A B C L M H N O P HB v w x y z fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L","8":"M H N O P HB"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC","8":"J GB iC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B sC tC uC vC","8":"C 7B ZC wC 8B"},G:{"1":"F zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC","8":"xC aC yC"},H:{"2":"JD"},I:{"1":"D OD PD","8":"DC J KD LD MD ND aC"},J:{"1":"A","8":"E"},K:{"1":"I","2":"A B","8":"C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"srcdoc attribute for iframes",D:true}; 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..ff60563 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/imagecapture.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB fC gC","194":"1 2 3 4 5 6 7 8 9 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"1 2 3 4 5 6 7 8 9 EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB","322":"jB kB lB mB nB oB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB sC tC uC vC 7B ZC wC 8B","322":"WB XB YB ZB aB bB"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"194":"dD eD"}},B:5,C:"ImageCapture API",D:true}; 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..4e4d157 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ime.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","161":"B"},B:{"2":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","161":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A","161":"B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"Input Method Editor API",D:true}; 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..43105c3 --- /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":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"naturalWidth & naturalHeight image properties",D:true}; 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..7972f97 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/import-maps.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P","194":"Q I R S T U V W X"},C:{"1":"1 2 3 4 5 6 7 8 9 r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k fC gC","322":"l m n o p q"},D:{"1":"1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B","194":"2B 3B 4B 5B 6B Q I R S T U V W X"},E:{"1":"RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC"},F:{"1":"4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB sC tC uC vC 7B ZC wC 8B","194":"qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B"},G:{"1":"RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD WD XD YD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:7,C:"Import maps",D:true}; 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..c1b547a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/imports.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","8":"A B"},B:{"1":"Q","2":"1 2 3 4 5 6 7 8 9 I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","8":"C L M H N O P"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB fC gC","8":"1 2 3 4 5 6 7 8 9 MB NB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","72":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q","2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","66":"MB NB OB PB QB","72":"RB"},E:{"2":"J GB hC KC iC","8":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB","2":"G B C H N vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","66":"O P HB v w","72":"x"},G:{"2":"KC xC aC yC zC","8":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"8":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"J QD RD SD TD UD LC VD WD","2":"0 v w x y z XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"2":"cD"},S:{"1":"dD","8":"eD"}},B:5,C:"HTML Imports",D:true}; 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..de642db --- /dev/null +++ b/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"K E F G A B","16":"bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC gC","2":"cC DC","16":"fC"},D:{"1":"1 2 3 4 5 6 7 8 9 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u wC 8B","2":"G B sC tC uC vC 7B ZC"},G:{"1":"9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"indeterminate checkbox",D:true}; 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..cb0a7fe --- /dev/null +++ b/node_modules/caniuse-lite/data/features/indexeddb.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","132":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","132":"C L M H N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","33":"A B C L M H","36":"J GB K E F G"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"A","8":"J GB K E F G","33":"y","36":"B C L M H N O P HB v w x"},E:{"1":"A B C L M H LC 7B 8B mC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","8":"J GB K E hC KC iC jC","260":"F G kC lC","516":"nC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G sC tC","8":"B C uC vC 7B ZC wC 8B"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","8":"KC xC aC yC zC 0C","260":"F 1C 2C 3C","516":"FD"},H:{"2":"JD"},I:{"1":"D OD PD","8":"DC J KD LD MD ND aC"},J:{"1":"A","8":"E"},K:{"1":"I","2":"A","8":"B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"IndexedDB",D:true}; 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..0c0dead --- /dev/null +++ b/node_modules/caniuse-lite/data/features/indexeddb2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB fC gC","132":"aB bB cB","260":"dB eB fB gB"},D:{"1":"1 2 3 4 5 6 7 8 9 oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","132":"eB fB gB hB","260":"iB jB kB lB mB nB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC"},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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB sC tC uC vC 7B ZC wC 8B","132":"RB SB TB UB","260":"VB WB XB YB ZB aB"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C","16":"4C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J","260":"QD RD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","260":"dD"}},B:2,C:"IndexedDB 2.0",D:true}; 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..9acaae1 --- /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":"bC","132":"K E"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","36":"cC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS inline-block",D:true}; 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..99863d0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/innertext.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"K E F G A B","16":"bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"hC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","16":"G"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC"},H:{"1":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"HTMLElement.innerText",D:true}; 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..e364ae9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"K E F G A bC","132":"B"},B:{"132":"C L M H N O P","260":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB fC gC","516":"1 2 3 4 5 6 7 8 9 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"0 O P HB v w x y z IB","2":"J GB K E F G A B C L M H N","132":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB","260":"1 2 3 4 5 6 7 8 9 XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"K iC jC","2":"J GB hC KC","2052":"E F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"KC xC aC","1025":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1025":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2052":"A B"},O:{"1025":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"260":"bD"},R:{"1":"cD"},S:{"516":"dD eD"}},B:1,C:"autocomplete attribute: on & off values",D:true}; 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..84772cf --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-color.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L"},C:{"1":"1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB"},E:{"1":"L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C hC KC iC jC kC lC LC 7B"},F:{"1":"0 B C O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 7B ZC wC 8B","2":"G H N sC tC uC vC"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C","129":"9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:1,C:"Color input type",D:true}; 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..163f467 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-datetime.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","132":"C"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB fC gC","1090":"jB kB lB mB","2052":"nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b","4100":"1 2 3 4 5 6 7 8 9 c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB","2052":"v w x y z"},E:{"2":"J GB K E F G A B C L M hC KC iC jC kC lC LC 7B 8B mC","4100":"H nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"KC xC aC","260":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC KD LD MD","514":"J ND aC"},J:{"1":"A","2":"E"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"4100":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2052":"dD eD"}},B:1,C:"Date and time input types",D:true}; 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..8ef72b9 --- /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":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","2":"G"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J D ND aC OD PD","132":"KD LD MD"},J:{"1":"A","132":"E"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Email, telephone & URL input types",D:true}; 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..bb606d6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-event.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","2561":"A B","2692":"G"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2561":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","16":"cC","1537":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB gC","1796":"DC fC"},D:{"1":"1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M","1025":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB","1537":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB"},E:{"1":"M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"J GB K hC KC","1025":"E F G A B C jC kC lC LC 7B","1537":"iC","4097":"L 8B"},F:{"1":"iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","16":"G B C sC tC uC vC 7B ZC","260":"wC","1025":"0 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB","1537":"H N O P HB v w"},G:{"1":"BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC","1025":"F 1C 2C 3C 4C 5C 6C 7C 8C","1537":"yC zC 0C","4097":"9C AD"},H:{"2":"JD"},I:{"16":"KD LD","1025":"D PD","1537":"DC J MD ND aC OD"},J:{"1025":"A","1537":"E"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2561":"A B"},O:{"1":"9B"},P:{"1025":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","1537":"dD"}},B:1,C:"input event",D:true}; 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..7da1f44 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-file-accept.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","132":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB"},D:{"1":"1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J","16":"0 GB K E F w x y z","132":"G A B C L M H N O P HB v"},E:{"1":"C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC","132":"K E F G A B jC kC lC LC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"2":"zC 0C","132":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","514":"KC xC aC yC"},H:{"2":"JD"},I:{"2":"KD LD MD","260":"DC J ND aC","514":"D OD PD"},J:{"132":"A","260":"E"},K:{"2":"A B C 7B ZC 8B","514":"I"},L:{"260":"D"},M:{"2":"D"},N:{"514":"A","1028":"B"},O:{"2":"9B"},P:{"260":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"260":"bD"},R:{"260":"cD"},S:{"1":"dD eD"}},B:1,C:"accept attribute for file input",D:true}; 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..4781e64 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-file-directory.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L"},C:{"1":"1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB"},E:{"1":"C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B hC KC iC jC kC lC LC"},F:{"1":"0 O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"Directory selection from file input",D:true}; 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..fbf0387 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-file-multiple.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC gC","2":"cC DC fC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u vC 7B ZC wC 8B","2":"G sC tC uC"},G:{"1":"F zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC"},H:{"130":"JD"},I:{"130":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","130":"A B C 7B ZC 8B"},L:{"132":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"130":"9B"},P:{"130":"J","132":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"132":"bD"},R:{"132":"cD"},S:{"1":"eD","2":"dD"}},B:1,C:"Multiple file selection",D:true}; 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..c6528e1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-inputmode.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N fC gC","4":"O P HB v","194":"0 w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d"},D:{"1":"1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB","66":"mB nB oB EC pB FC qB rB sB tB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB sC tC uC vC 7B ZC wC 8B","66":"ZB aB bB cB dB eB fB gB hB iB"},G:{"1":"9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"194":"dD eD"}},B:1,C:"inputmode attribute",D:true}; 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..ed995c3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-minlength.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N"},C:{"1":"1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB sC tC uC vC 7B ZC wC 8B"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:1,C:"Minimum length attribute for input fields",D:true}; 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..4866882 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-number.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","129":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","129":"C L","1025":"M H N O P"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB fC gC","513":"1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"388":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC KD LD MD","388":"J D ND aC OD PD"},J:{"2":"E","388":"A"},K:{"1":"A B C 7B ZC 8B","388":"I"},L:{"388":"D"},M:{"641":"D"},N:{"388":"A B"},O:{"388":"9B"},P:{"388":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"388":"bD"},R:{"388":"cD"},S:{"513":"dD eD"}},B:1,C:"Number input type",D:true}; 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..11c439c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-pattern.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC","16":"GB","388":"K E F G A iC jC kC lC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","2":"G"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC","388":"F yC zC 0C 1C 2C 3C 4C"},H:{"2":"JD"},I:{"1":"D PD","2":"DC J KD LD MD ND aC OD"},J:{"1":"A","2":"E"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Pattern attribute for input fields",D:true}; 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..8187702 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-placeholder.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","132":"J hC KC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u ZC wC 8B","2":"G sC tC uC vC","132":"B 7B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC D KD LD MD aC OD PD","4":"J ND"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"input placeholder attribute",D:true}; 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..de289fd --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-range.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB v w x fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC"},H:{"2":"JD"},I:{"1":"D aC OD PD","4":"DC J KD LD MD ND"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Range input type",D:true}; 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..a80a3d7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-search.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","129":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","129":"C L M H N O P"},C:{"2":"cC DC fC gC","129":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"0 J GB K E F G A B C L M w x y z","129":"H N O P HB v"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"J GB hC KC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u wC 8B","2":"G sC tC uC vC","16":"B 7B ZC"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC"},H:{"129":"JD"},I:{"1":"D OD PD","16":"KD LD","129":"DC J MD ND aC"},J:{"1":"E","129":"A"},K:{"1":"C I","2":"A","16":"B 7B ZC","129":"8B"},L:{"1":"D"},M:{"129":"D"},N:{"129":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"129":"dD eD"}},B:1,C:"Search input type",D:true}; 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..439386b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-selection.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u vC 7B ZC wC 8B","16":"G sC tC uC"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC"},H:{"2":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Selection controls for input & textarea",D:true}; 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..d41129a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/insert-adjacent.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"K E F G A B","16":"bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","16":"G"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Element.insertAdjacentElement() & Element.insertAdjacentText()",D:true}; 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..3ca346c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/insertadjacenthtml.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","16":"bC","132":"K E F G"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u tC uC vC 7B ZC wC 8B","16":"G sC"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC"},H:{"1":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"Element.insertAdjacentHTML()",D:true}; 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..5c70342 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/internationalization.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E F G A bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v w x y"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:6,C:"Internationalization API",D:true}; 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..fea2530 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:7,C:"IntersectionObserver V2",D:true}; 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..6888c46 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/intersectionobserver.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"N O P","2":"C L M","260":"H","513":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB fC gC","194":"iB jB kB"},D:{"1":"oB EC pB FC qB rB sB","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB","260":"hB iB jB kB lB mB nB","513":"1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C hC KC iC jC kC lC LC 7B"},F:{"1":"bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB sC tC uC vC 7B ZC wC 8B","260":"UB VB WB XB YB ZB aB","513":"sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"1":"9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","513":"D"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","513":"I"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J","260":"QD RD"},Q:{"513":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"IntersectionObserver",D:true}; 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..00e535d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/intl-pluralrules.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O","130":"P"},C:{"1":"1 2 3 4 5 6 7 8 9 oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB"},E:{"1":"L M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C hC KC iC jC kC lC LC 7B 8B"},F:{"1":"gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB sC tC uC vC 7B ZC wC 8B"},G:{"1":"AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:6,C:"Intl.PluralRules API",D:true}; 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..ba145ba --- /dev/null +++ b/node_modules/caniuse-lite/data/features/intrinsic-width.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","1025":"1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","1537":"Q I R S T U V W X Y Z a b c"},C:{"2":"cC","932":"0 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB fC gC","2308":"1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"2":"J GB K E F G A B C L M H N O P HB v w","545":"0 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB","1025":"1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","1537":"cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c"},E:{"1":"AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC","516":"B C L M H 7B 8B mC nC oC MC NC 9B pC","548":"G A lC LC","676":"E F jC kC"},F:{"2":"G B C sC tC uC vC 7B ZC wC 8B","513":"QB","545":"0 H N O P HB v w x y z IB JB KB LB MB NB OB","1025":"e f g h i j k l m n o p q r s t u","1537":"PB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d"},G:{"1":"AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC","516":"ED FD GD MC NC 9B HD","548":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD","676":"F 0C 1C"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC","545":"OD PD","1025":"D"},J:{"2":"E","545":"A"},K:{"2":"A B C 7B ZC 8B","1025":"I"},L:{"1025":"D"},M:{"2308":"D"},N:{"2":"A B"},O:{"1537":"9B"},P:{"545":"J","1025":"0 v w x y z BC CC aD","1537":"QD RD SD TD UD LC VD WD XD YD ZD AC"},Q:{"1537":"bD"},R:{"1537":"cD"},S:{"932":"dD","2308":"eD"}},B:5,C:"Intrinsic & Extrinsic Sizing",D:true}; 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..5f45286 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/jpeg2000.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC","2":"J hC KC CC rC","129":"GB iC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC","2":"KC xC aC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:6,C:"JPEG 2000 image format",D:true}; 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..364b563 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/jpegxl.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z t u AB BB CB DB EB FB D","578":"a b c d e f g h i j k l m n o p q r s"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y fC gC","322":"1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z t u AB BB CB DB EB FB D HC IC JC","194":"a b c d e f g h i j k l m n o p q r s"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC","1025":"BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B sC tC uC vC 7B ZC wC 8B","194":"5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID","1025":"BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:6,C:"JPEG XL image format",D:true}; 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..f5dab11 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/jpegxr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"C L M H N O P","2":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:6,C:"JPEG XR image format",D:true}; 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..f79247c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC"},E:{"1":"RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC"},F:{"1":"fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB sC tC uC vC 7B ZC wC 8B"},G:{"1":"RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:6,C:"Lookbehind in JS regular expressions",D:true}; 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..6d2dc56 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/json.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E bC","129":"F"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","2":"cC DC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u uC vC 7B ZC wC 8B","2":"G sC tC"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"JSON parsing",D:true}; 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..6bf3e33 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H","132":"N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB","132":"nB oB EC"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC","132":"LC"},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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB sC tC uC vC 7B ZC wC 8B","132":"aB bB cB"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C","132":"5C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD","132":"SD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","132":"dD"}},B:5,C:"CSS justify-content: space-evenly",D:true}; 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..1d572c0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","2":"cC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"KD LD MD","132":"DC J ND aC"},J:{"1":"A","2":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:7,C:"High-quality kerning pairs & ligatures",D:true}; 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..eb098e5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","16":"cC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G B sC tC uC vC 7B ZC wC","16":"C"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC"},H:{"2":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"E A"},K:{"1":"I 8B","2":"A B 7B ZC","16":"C"},L:{"1":"D"},M:{"130":"D"},N:{"130":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:7,C:"KeyboardEvent.charCode",D:true}; 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..5f20d26 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/keyboardevent-code.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","194":"YB ZB aB bB cB dB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB sC tC uC vC 7B ZC wC 8B","194":"LB MB NB OB PB QB"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"194":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"J","194":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"194":"cD"},S:{"1":"dD eD"}},B:5,C:"KeyboardEvent.code",D:true}; 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..5cfaec2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC"},F:{"1":"0 O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G B H N sC tC uC vC 7B ZC wC","16":"C"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"2":"E A"},K:{"1":"I 8B","2":"A B 7B ZC","16":"C"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"KeyboardEvent.getModifierState()",D:true}; 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..7398e92 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/keyboardevent-key.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","260":"G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","260":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB v w x fC gC","132":"0 y z IB JB KB"},D:{"1":"1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC"},F:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"0 G B H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB sC tC uC vC 7B ZC wC","16":"C"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C"},H:{"1":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I 8B","2":"A B 7B ZC","16":"C"},L:{"1":"D"},M:{"1":"D"},N:{"260":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"KeyboardEvent.key",D:true}; 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..0e58dda --- /dev/null +++ b/node_modules/caniuse-lite/data/features/keyboardevent-location.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","132":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"K hC KC","132":"J GB iC"},F:{"1":"0 O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G B sC tC uC vC 7B ZC wC","16":"C","132":"H N"},G:{"1":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC","132":"yC zC 0C"},H:{"2":"JD"},I:{"1":"D OD PD","16":"KD LD","132":"DC J MD ND aC"},J:{"132":"E A"},K:{"1":"I 8B","2":"A B 7B ZC","16":"C"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"KeyboardEvent.location",D:true}; 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..67873b0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/keyboardevent-which.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC","16":"GB"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u tC uC vC 7B ZC wC 8B","16":"G sC"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC"},H:{"2":"JD"},I:{"1":"DC J D MD ND aC","16":"KD LD","132":"OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"132":"D"},M:{"132":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"2":"J","132":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"132":"cD"},S:{"1":"dD eD"}},B:7,C:"KeyboardEvent.which",D:true}; 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..6ba93d5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/lazyload.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E F G A bC"},B:{"1":"C L M H N O P","2":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"1":"B","2":"A"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"Resource Hints: Lazyload",D:true}; 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..e8a10c1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/let.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","2052":"B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB 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 EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","194":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P","322":"0 HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","516":"XB YB ZB aB bB cB dB eB"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC","1028":"A LC"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","322":"0 H N O P HB v w x y z IB JB","516":"KB LB MB NB OB PB QB RB"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C","1028":"4C 5C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","516":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"let",D:true}; 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..08697b7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/link-icon-png.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E F G A bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","130":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C"},H:{"130":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E","130":"A"},K:{"1":"I","130":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"130":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"PNG favicons",D:true}; 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..d8ef680 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/link-icon-svg.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P Q","1537":"1 2 3 4 5 6 7 8 9 I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"cC DC fC gC","260":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","513":"1 2 3 4 5 6 7 8 9 XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q","1537":"1 2 3 4 5 6 7 8 9 I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"aB bB cB dB eB fB gB hB iB jB","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB kB lB mB nB oB pB qB rB sB tB uB sC tC uC vC 7B ZC wC 8B","1537":"vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","130":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C"},H:{"130":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E","130":"A"},K:{"130":"A B C 7B ZC 8B","1537":"I"},L:{"1537":"D"},M:{"2":"D"},N:{"130":"A B"},O:{"2":"9B"},P:{"2":"J QD RD SD TD UD LC VD WD","1537":"0 v w x y z XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"1537":"cD"},S:{"513":"dD eD"}},B:1,C:"SVG favicons",D:true}; 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..63427c1 --- /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":"K E F bC","132":"G"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"D HC IC JC dC eC","2":"cC DC","260":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"16":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"16":"DC J D KD LD MD ND aC OD PD"},J:{"16":"E A"},K:{"1":"I","16":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","16":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"Resource Hints: dns-prefetch",D:true}; 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..9696d7d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB D HC IC JC dC eC","2":"0 1 2 3 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB"},E:{"1":"BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC"},F:{"1":"jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB sC tC uC vC 7B ZC wC 8B"},G:{"1":"BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:1,C:"Resource Hints: modulepreload",D:true}; 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..a9ae992 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/link-rel-preconnect.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M","260":"H N O P"},C:{"1":"4 5 6 7 8 9 WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB fC gC","129":"VB","514":"1 2 3 zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},D:{"1":"1 2 3 4 5 6 7 8 9 cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},E:{"1":"C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B hC KC iC jC kC lC LC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB sC tC uC vC 7B ZC wC 8B"},G:{"1":"7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"Resource Hints: preconnect",D:true}; 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..1f882c0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/link-rel-prefetch.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E F G A bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E"},E:{"2":"J GB K E F G A B C L hC KC iC jC kC lC LC 7B 8B","194":"M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD","194":"DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"J D OD PD","2":"DC KD LD MD ND aC"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"Resource Hints: prefetch",D:true}; 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..5785b35 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/link-rel-preload.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N","1028":"O P"},C:{"1":"1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB fC gC","132":"mB","578":"nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T"},D:{"1":"1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB"},E:{"1":"C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC LC","322":"B"},F:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB sC tC uC vC 7B ZC wC 8B"},G:{"1":"7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C","322":"6C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:4,C:"Resource Hints: preload",D:true}; 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..665e24d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/link-rel-prerender.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E F G A bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"1":"B","2":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:5,C:"Resource Hints: prerender",D:true}; 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..8d967ea --- /dev/null +++ b/node_modules/caniuse-lite/data/features/loading-lazy-attr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B fC gC","132":"1 2 3 4 5 6 7 8 9 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},D:{"1":"1 2 3 4 5 6 7 8 9 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B","66":"3B 4B"},E:{"1":"RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L hC KC iC jC kC lC LC 7B 8B","322":"M H mC nC oC MC","580":"NC 9B pC AC OC PC QC"},F:{"1":"sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB sC tC uC vC 7B ZC wC 8B","66":"qB rB"},G:{"1":"RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD","322":"DD ED FD GD MC","580":"NC 9B HD AC OC PC QC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"132":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD","132":"eD"}},B:1,C:"Lazy loading via attribute for images & iframes",D:true}; 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..d6b706d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/localecompare.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","16":"bC","132":"K E F G A"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","132":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","132":"J GB K E F G A B C L M H N O P HB v w x y"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","132":"J GB K E F G hC KC iC jC kC lC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","16":"G B C sC tC uC vC 7B ZC wC","132":"8B"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","132":"F KC xC aC yC zC 0C 1C 2C 3C"},H:{"132":"JD"},I:{"1":"D OD PD","132":"DC J KD LD MD ND aC"},J:{"132":"E A"},K:{"1":"I","16":"A B C 7B ZC","132":"8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","132":"A"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","132":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","4":"dD"}},B:6,C:"localeCompare()",D:true}; 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..8ffbd7d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/magnetometer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB","194":"oB EC pB FC qB rB sB tB uB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"194":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:4,C:"Magnetometer",D:true}; 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..f60cf10 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/matchesselector.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","36":"G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","36":"C L M"},C:{"1":"1 2 3 4 5 6 7 8 9 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC","36":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB gC"},D:{"1":"1 2 3 4 5 6 7 8 9 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","36":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB"},E:{"1":"F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC","36":"GB K E iC jC"},F:{"1":"0 w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B sC tC uC vC 7B","36":"C H N O P HB v ZC wC 8B"},G:{"1":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC","36":"xC aC yC zC 0C"},H:{"2":"JD"},I:{"1":"D","2":"KD","36":"DC J LD MD ND aC OD PD"},J:{"36":"E A"},K:{"1":"I","2":"A B","36":"C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"36":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","36":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"matches() DOM method",D:true}; 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..fe8f6d6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/matchmedia.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G B C sC tC uC vC 7B ZC wC"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC"},H:{"1":"JD"},I:{"1":"DC J D ND aC OD PD","2":"KD LD MD"},J:{"1":"A","2":"E"},K:{"1":"I 8B","2":"A B C 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"matchMedia",D:true}; 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..dd4ab9f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mathml.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"G A B bC","8":"K E F"},B:{"2":"C L M H N O P","8":"Q I R S T U V W X Y Z a b c d e f","584":"g h i j k l m n o p q r","1025":"1 2 3 4 5 6 7 8 9 s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","129":"cC DC fC gC"},D:{"1":"z","8":"0 J GB K E F G A B C L M H N O P HB v w x y IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f","584":"g h i j k l m n o p q r","1025":"1 2 3 4 5 6 7 8 9 s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","260":"J GB K E F G hC KC iC jC kC lC"},F:{"2":"G","8":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC","584":"S T U V W X Y Z a b c d","1025":"e f g h i j k l m n o p q r s t u","2052":"B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","8":"KC xC aC"},H:{"8":"JD"},I:{"8":"DC J KD LD MD ND aC OD PD","1025":"D"},J:{"1":"A","8":"E"},K:{"8":"A B C 7B ZC 8B","1025":"I"},L:{"1025":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"8":"9B"},P:{"1":"0 w x y z","8":"J v QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"8":"bD"},R:{"8":"cD"},S:{"1":"dD eD"}},B:2,C:"MathML",D:true}; 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..dd6ee17 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/maxlength.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","16":"bC","900":"K E F G"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","1025":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","900":"cC DC fC gC","1025":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"GB hC","900":"J KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","16":"G","132":"B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"xC aC yC zC 0C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC","2052":"F 1C"},H:{"132":"JD"},I:{"1":"DC J MD ND aC OD PD","16":"KD LD","4097":"D"},J:{"1":"E A"},K:{"132":"A B C 7B ZC 8B","4097":"I"},L:{"4097":"D"},M:{"4097":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"4097":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1025":"dD eD"}},B:1,C:"maxlength attribute for input and textarea elements",D:true}; diff --git a/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js b/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js new file mode 100644 index 0000000..16994d7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"1 2 3 4 5 6 7 8 9 TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB","33":"OB PB QB RB SB"},L:{"1":"D"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","33":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB fC gC"},M:{"1":"D"},A:{"2":"K E F G A bC","33":"B"},F:{"1":"0 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P sC tC uC vC 7B ZC wC 8B","33":"HB v w x y"},K:{"1":"I","2":"A B C 7B ZC 8B"},E:{"1":"NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC rC"},G:{"1":"NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},I:{"1":"D","2":"DC J KD LD MD ND aC","33":"OD PD"}},B:6,C:"CSS ::backdrop pseudo-element",D:undefined}; 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..90f82a4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"1 2 3 4 5 6 7 8 9 eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},L:{"1":"D"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N fC gC","33":"0 O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB"},M:{"1":"D"},A:{"2":"K E F G A B bC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB sC tC uC vC 7B ZC wC 8B"},K:{"1":"I","2":"A B C 7B ZC 8B"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC","2":"J GB K hC KC iC jC rC","33":"E F G A kC lC LC"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC","33":"F 0C 1C 2C 3C 4C 5C"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"}},B:6,C:"isolate-override from unicode-bidi",D:undefined}; 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..85a62d7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"1 2 3 4 5 6 7 8 9 eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H","33":"0 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},L:{"1":"D"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G fC gC","33":"0 A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB"},M:{"1":"D"},A:{"2":"K E F G A B bC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB"},K:{"1":"I","2":"A B C 7B ZC 8B"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC","2":"J GB hC KC iC rC","33":"K E F G A jC kC lC LC"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC","33":"F zC 0C 1C 2C 3C 4C 5C"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"}},B:6,C:"isolate from unicode-bidi",D:undefined}; 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..84b0b4f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"1 2 3 4 5 6 7 8 9 eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},L:{"1":"D"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G fC gC","33":"0 A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB"},M:{"1":"D"},A:{"2":"K E F G A B bC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB sC tC uC vC 7B ZC wC 8B"},K:{"1":"I","2":"A B C 7B ZC 8B"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC","2":"J GB hC KC iC rC","33":"K E F G A jC kC lC LC"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC","33":"F zC 0C 1C 2C 3C 4C 5C"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"}},B:6,C:"plaintext from unicode-bidi",D:undefined}; 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..d59104e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"1 2 3 4 5 6 7 8 9 nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB"},L:{"1":"D"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB fC gC","33":"0 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB"},M:{"1":"D"},A:{"2":"K E F G A B bC"},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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB sC tC uC vC 7B ZC wC 8B"},K:{"1":"I","2":"A B C 7B ZC 8B"},E:{"1":"L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC","2":"J GB K E hC KC iC jC kC rC","33":"F G A B C lC LC 7B"},G:{"1":"9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC 0C","33":"F 1C 2C 3C 4C 5C 6C 7C 8C"},P:{"1":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"}},B:6,C:"text-decoration-color property",D:undefined}; 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..29bdd22 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"1 2 3 4 5 6 7 8 9 nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB"},L:{"1":"D"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB fC gC","33":"0 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB"},M:{"1":"D"},A:{"2":"K E F G A B bC"},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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB sC tC uC vC 7B ZC wC 8B"},K:{"1":"I","2":"A B C 7B ZC 8B"},E:{"1":"L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC","2":"J GB K E hC KC iC jC kC rC","33":"F G A B C lC LC 7B"},G:{"1":"9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC 0C","33":"F 1C 2C 3C 4C 5C 6C 7C 8C"},P:{"1":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"}},B:6,C:"text-decoration-line property",D:undefined}; 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..4e0a509 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"1 2 3 4 5 6 7 8 9 nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB"},L:{"1":"D"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB fC gC"},M:{"1":"D"},A:{"2":"K E F G A B bC"},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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB sC tC uC vC 7B ZC wC 8B"},K:{"1":"I","2":"A B C 7B ZC 8B"},E:{"2":"J GB K E hC KC iC jC kC rC","33":"F G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC"},G:{"2":"KC xC aC yC zC 0C","33":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},P:{"1":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"}},B:6,C:"text-decoration shorthand property",D:undefined}; 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..f58b0b0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"1 2 3 4 5 6 7 8 9 nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB"},L:{"1":"D"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB fC gC","33":"0 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB"},M:{"1":"D"},A:{"2":"K E F G A B bC"},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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB sC tC uC vC 7B ZC wC 8B"},K:{"1":"I","2":"A B C 7B ZC 8B"},E:{"1":"L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC","2":"J GB K E hC KC iC jC kC rC","33":"F G A B C lC LC 7B"},G:{"1":"9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC 0C","33":"F 1C 2C 3C 4C 5C 6C 7C 8C"},P:{"1":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"}},B:6,C:"text-decoration-style property",D:undefined}; 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..60526b2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/media-fragments.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","132":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB fC gC","132":"1 2 3 4 5 6 7 8 9 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"2":"J GB K E F G A B C L M H N O","132":"0 1 2 3 4 5 6 7 8 9 P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB hC KC iC","132":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"G B C sC tC uC vC 7B ZC wC 8B","132":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"KC xC aC yC zC 0C","132":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC","132":"D OD PD"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","132":"I"},L:{"132":"D"},M:{"132":"D"},N:{"132":"A B"},O:{"132":"9B"},P:{"2":"J QD","132":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"132":"bD"},R:{"132":"cD"},S:{"132":"dD eD"}},B:2,C:"Media Fragments",D:true}; 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..0abe073 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB fC gC","260":"1 2 3 4 5 6 7 8 9 ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB","324":"hB iB jB kB lB mB nB oB EC pB FC"},E:{"2":"J GB K E F G A hC KC iC jC kC lC LC","132":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB sC tC uC vC 7B ZC wC 8B","324":"SB TB UB VB WB XB YB ZB aB bB cB dB"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"260":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J","132":"QD RD SD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"260":"dD eD"}},B:5,C:"Media Capture from DOM Elements API",D:true}; 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..70fcbe8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mediarecorder.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB","194":"dB eB"},E:{"1":"H nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C hC KC iC jC kC lC LC 7B","322":"L M 8B mC"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB sC tC uC vC 7B ZC wC 8B","194":"QB RB"},G:{"1":"FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C","578":"8C 9C AD BD CD DD ED"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"MediaRecorder API",D:true}; 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..29ce11a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mediasource.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","132":"B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB v w x y z fC gC","66":"0 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},D:{"1":"1 2 3 4 5 6 7 8 9 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N","33":"0 y z IB JB KB LB MB","66":"O P HB v w x"},E:{"1":"F G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E hC KC iC jC kC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C","260":"AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D PD","2":"DC J KD LD MD ND aC OD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"9B"},P:{"1":"0 v w x y z UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"Media Source Extensions",D:true}; 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..b4a2ff2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/menu.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"cC DC J GB K E fC gC","132":"0 F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T","450":"1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","66":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","66":"RB SB TB UB VB WB XB YB ZB aB bB cB"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"450":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"Context menu item (menuitem element)",D:true}; 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..7e731cf --- /dev/null +++ b/node_modules/caniuse-lite/data/features/meta-theme-color.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB","132":"1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","258":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B"},E:{"1":"H oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M hC KC iC jC kC lC LC 7B 8B mC nC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"513":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J","16":"QD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:1,C:"theme-color Meta Tag",D:true}; 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..418713d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/meter.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 7B ZC wC 8B","2":"G sC tC uC vC"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C"},H:{"1":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"meter element",D:true}; 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..5aa4d2b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/midi.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:5,C:"Web MIDI API",D:true}; 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..4bf1cee --- /dev/null +++ b/node_modules/caniuse-lite/data/features/minmaxwh.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","8":"K bC","129":"E","257":"F"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS min/max-width/height",D:true}; 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..7bb3572 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mp3.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC","132":"J GB K E F G A B C L M H N O P HB v w fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC"},H:{"2":"JD"},I:{"1":"DC J D MD ND aC OD PD","2":"KD LD"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"MP3 audio format",D:true}; 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..1e24ee2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mpeg-dash.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"C L M H N O P","2":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","386":"w x"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:6,C:"Dynamic Adaptive Streaming over HTTP (MPEG-DASH)",D:true}; 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..bcd6584 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mpeg4.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB v fC gC","4":"0 w x y z IB JB KB LB MB NB OB PB QB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC"},F:{"1":"0 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w x y z sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D OD PD","4":"DC J KD LD ND aC","132":"MD"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"MPEG-4/H.264 video format",D:true}; 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..f6dd910 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/multibackgrounds.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC gC","2":"cC DC fC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u uC vC 7B ZC wC 8B","2":"G sC tC"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS3 Multiple backgrounds",D:true}; 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..852e4f2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/multicolumn.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"C L M H N O P","516":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"132":"iB jB kB lB mB nB oB EC pB FC qB rB sB","164":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB fC gC","516":"tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a","1028":"1 2 3 4 5 6 7 8 9 b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"420":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB","516":"1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","132":"G lC","164":"E F kC","420":"J GB K hC KC iC jC"},F:{"1":"C 7B ZC wC 8B","2":"G B sC tC uC vC","420":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB","516":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","132":"2C 3C","164":"F 0C 1C","420":"KC xC aC yC zC"},H:{"1":"JD"},I:{"420":"DC J KD LD MD ND aC OD PD","516":"D"},J:{"420":"E A"},K:{"1":"C 7B ZC 8B","2":"A B","516":"I"},L:{"516":"D"},M:{"1028":"D"},N:{"1":"A B"},O:{"516":"9B"},P:{"420":"J","516":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"516":"bD"},R:{"516":"cD"},S:{"164":"dD eD"}},B:4,C:"CSS3 Multiple column layout",D:true}; 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..804f2e1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mutation-events.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","260":"G A B"},B:{"132":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","260":"C L M H N O P"},C:{"2":"cC DC J GB fC gC","260":"0 1 2 3 4 5 6 7 8 9 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"16":"J GB K E F G A B C L M","132":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"16":"hC KC","132":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"C wC 8B","2":"G sC tC uC vC","16":"B 7B ZC","132":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"16":"KC xC","132":"F aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"16":"KD LD","132":"DC J D MD ND aC OD PD"},J:{"132":"E A"},K:{"1":"C 8B","2":"A","16":"B 7B ZC","132":"I"},L:{"132":"D"},M:{"260":"D"},N:{"260":"A B"},O:{"132":"9B"},P:{"132":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"132":"bD"},R:{"132":"cD"},S:{"260":"dD eD"}},B:5,C:"Mutation events",D:true}; 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..70c88bf --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mutationobserver.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E F bC","8":"G A"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O","33":"0 P HB v w x y z IB"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC","33":"K"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC","33":"zC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC KD LD MD","8":"J ND aC"},J:{"1":"A","2":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","8":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Mutation Observer",D:true}; 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..3367dd9 --- /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":"bC","8":"K E"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","4":"cC DC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u uC vC 7B ZC wC 8B","2":"G sC tC"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Web Storage - name/value pairs",D:true}; 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..287f8c1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/native-filesystem-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P","194":"Q I R S T U","260":"V W X Y Z a b c d e f g h i j k l m n"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B","194":"2B 3B 4B 5B 6B Q I R S T U","260":"V W X Y Z a b c d e f g h i j k l m n"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB sC tC uC vC 7B ZC wC 8B","194":"qB rB sB tB uB vB wB xB yB zB","260":"0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"File System Access API",D:true}; 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..d1f8157 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/nav-timing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB","33":"K E F G A B C"},E:{"1":"F G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E hC KC iC jC kC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC 0C 1C"},H:{"2":"JD"},I:{"1":"J D ND aC OD PD","2":"DC KD LD MD"},J:{"1":"A","2":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"Navigation Timing API",D:true}; 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..1484146 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/netinfo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","1028":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB","1028":"1 2 3 4 5 6 7 8 9 FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB sC tC uC vC 7B ZC wC 8B","1028":"eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"KD OD PD","132":"DC J LD MD ND aC"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD","132":"J","516":"QD RD SD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"eD","260":"dD"}},B:7,C:"Network Information API",D:true}; 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..40eb07a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/notifications.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB v w fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J","36":"GB K E F G A B C L M H N O P HB v w"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC"},F:{"1":"0 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w x y z sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC","516":"RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC","36":"D OD PD"},J:{"1":"A","2":"E"},K:{"2":"A B C 7B ZC 8B","36":"I"},L:{"257":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"36":"J","130":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"130":"cD"},S:{"1":"dD eD"}},B:1,C:"Web Notifications",D:true}; 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..5b54cf6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/object-entries.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L"},C:{"1":"1 2 3 4 5 6 7 8 9 dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC"},F:{"1":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB sC tC uC vC 7B ZC wC 8B"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E","16":"A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"Object.entries",D:true}; 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..9a30aab --- /dev/null +++ b/node_modules/caniuse-lite/data/features/object-fit.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H","260":"N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E hC KC iC jC","132":"F G kC lC"},F:{"1":"0 HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G H N O P sC tC uC","33":"B C vC 7B ZC wC 8B"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC 0C","132":"F 1C 2C 3C"},H:{"33":"JD"},I:{"1":"D PD","2":"DC J KD LD MD ND aC OD"},J:{"2":"E A"},K:{"1":"I","2":"A","33":"B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS3 object-fit/object-position",D:true}; 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..33c5e4f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/object-observe.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB","2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 y z IB JB KB LB MB NB OB PB QB RB SB","2":"G B C H N O P HB v w x TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"J","2":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"Object.observe data binding",D:true}; 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..3e0f1ff --- /dev/null +++ b/node_modules/caniuse-lite/data/features/object-values.js @@ -0,0 +1 @@ +module.exports={A:{A:{"8":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L"},C:{"1":"1 2 3 4 5 6 7 8 9 dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","8":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","8":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","8":"J GB K E F G A hC KC iC jC kC lC"},F:{"1":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","8":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB sC tC uC vC 7B ZC wC 8B"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","8":"F KC xC aC yC zC 0C 1C 2C 3C 4C"},H:{"8":"JD"},I:{"1":"D","8":"DC J KD LD MD ND aC OD PD"},J:{"8":"E A"},K:{"1":"I","8":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","8":"J QD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"Object.values method",D:true}; 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..f039434 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/objectrtc.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"L M H N O P","2":"1 2 3 4 5 6 7 8 9 C Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:6,C:"Object RTC (ORTC) API for WebRTC",D:true}; 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..80d45be --- /dev/null +++ b/node_modules/caniuse-lite/data/features/offline-apps.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"G bC","8":"K E F"},B:{"1":"C L M H N O P Q I R S T","2":"1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S fC gC","2":"1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","4":"DC","8":"cC"},D:{"1":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T","2":"1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M iC jC kC lC LC 7B 8B mC nC","2":"H oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","8":"hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B vC 7B ZC wC 8B","2":"G 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC","8":"tC uC"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD","2":"GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J KD LD MD ND aC OD PD","2":"D"},J:{"1":"E A"},K:{"1":"B C 7B ZC 8B","2":"A I"},L:{"2":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"2":"cD"},S:{"1":"dD","2":"eD"}},B:7,C:"Offline web applications",D:true}; 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..64f9eb9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/offscreencanvas.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB fC gC","194":"aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n"},D:{"1":"1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB","322":"oB EC pB FC qB rB sB tB uB vB wB"},E:{"1":"BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC","516":"PC QC RC SC qC"},F:{"1":"sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB sC tC uC vC 7B ZC wC 8B","322":"bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB"},G:{"1":"BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC","516":"PC QC RC SC ID"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"194":"dD eD"}},B:1,C:"OffscreenCanvas",D:true}; 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..72f4fa9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ogg-vorbis.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","2":"cC DC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M hC KC iC jC kC lC LC 7B 8B mC","260":"BC TC UC VC WC XC YC CC rC","388":"H nC oC MC NC 9B pC AC OC PC QC RC SC qC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u uC vC 7B ZC wC 8B","2":"G sC tC"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC","260":"WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"A","2":"E"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"Ogg Vorbis audio format",D:true}; 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..d21330c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ogv.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","8":"G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB","8":"C L M H N","194":"BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","2":"cC DC"},D:{"1":"0 1 2 3 4 5 6 7 8 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","194":"9 AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o uC vC 7B ZC wC 8B","2":"G sC tC","194":"p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"2":"cD"},S:{"1":"dD eD"}},B:6,C:"Ogg/Theora video format",D:true}; 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..8901ed4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ol-reversed.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H","16":"N O P HB"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC","16":"K"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G B sC tC uC vC 7B ZC wC","16":"C"},G:{"1":"F zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC"},H:{"1":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"A","2":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Reversed attribute of ordered lists",D:true}; 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..9424915 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/once-event-listener.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H"},C:{"1":"1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC"},F:{"1":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB sC tC uC vC 7B ZC wC 8B"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:1,C:"\"once\" event listener option",D:true}; 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..3a051af --- /dev/null +++ b/node_modules/caniuse-lite/data/features/online-status.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E bC","260":"F"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","2":"cC DC","516":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L"},E:{"1":"GB K F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC","1025":"E"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC","4":"8B"},G:{"1":"F aC yC zC 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC","1025":"0C"},H:{"2":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"A","132":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Online/offline status",D:true}; 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..6f81d0d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/opus.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB"},E:{"2":"J GB K E F G A hC KC iC jC kC lC LC","132":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC","260":"WC","516":"XC YC CC rC"},F:{"1":"0 v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C","132":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC","260":"WC","516":"XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"Opus audio format",D:true}; 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..cb3d629 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/orientation-sensor.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB","194":"oB EC pB FC qB rB sB tB uB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:4,C:"Orientation Sensor",D:true}; 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..0b4e35e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/outline.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E bC","260":"F","388":"G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","388":"C L M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u wC","129":"8B","260":"G B sC tC uC vC 7B ZC"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"C I 8B","260":"A B 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"388":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS outline properties",D:true}; 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..a4fdf65 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/pad-start-end.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M"},C:{"1":"1 2 3 4 5 6 7 8 9 eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC"},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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB sC tC uC vC 7B ZC wC 8B"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"String.prototype.padStart(), String.prototype.padEnd()",D:true}; 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..f17d8dc --- /dev/null +++ b/node_modules/caniuse-lite/data/features/page-transition-events.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E F G A bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC"},H:{"2":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"PageTransitionEvent",D:true}; 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..08df304 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/pagevisibility.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G fC gC","33":"A B C L M H N O"},D:{"1":"1 2 3 4 5 6 7 8 9 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L","33":"0 M H N O P HB v w x y z IB JB KB LB MB NB OB"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC"},F:{"1":"0 v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G B C sC tC uC vC 7B ZC wC","33":"H N O P HB"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC","33":"OD PD"},J:{"1":"A","2":"E"},K:{"1":"I 8B","2":"A B C 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","33":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"Page Visibility",D:true}; 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..8da727f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/passive-event-listener.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H"},C:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC"},F:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB sC tC uC vC 7B ZC wC 8B"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:1,C:"Passive event listeners",D:true}; diff --git a/node_modules/caniuse-lite/data/features/passkeys.js b/node_modules/caniuse-lite/data/features/passkeys.js new file mode 100644 index 0000000..c21dd62 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/passkeys.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q"},C:{"1":"BB CB DB EB FB D HC IC JC dC eC","2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q"},E:{"1":"OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC"},F:{"1":"g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f sC tC uC vC 7B ZC wC 8B"},G:{"1":"AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 w x y z","2":"J QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","16":"v"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:6,C:"Passkeys",D:true}; 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..fd4c9ca --- /dev/null +++ b/node_modules/caniuse-lite/data/features/passwordrules.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","16":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC fC gC","16":"JC dC eC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","16":"HC IC JC"},E:{"1":"C L 8B","2":"J GB K E F G A B hC KC iC jC kC lC LC 7B","16":"M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB sC tC uC vC 7B ZC wC 8B","16":"jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"16":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","16":"D"},J:{"2":"E","16":"A"},K:{"2":"A B C 7B ZC 8B","16":"I"},L:{"16":"D"},M:{"16":"D"},N:{"2":"A","16":"B"},O:{"16":"9B"},P:{"2":"J QD RD","16":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"16":"bD"},R:{"16":"cD"},S:{"2":"dD eD"}},B:1,C:"Password Rules",D:false}; 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..7ff6233 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/path2d.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L","132":"M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB fC gC","132":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},D:{"1":"1 2 3 4 5 6 7 8 9 wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB","132":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB"},E:{"1":"A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E hC KC iC jC","132":"F G kC"},F:{"1":"lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w x sC tC uC vC 7B ZC wC 8B","132":"0 y z IB JB KB LB MB 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":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC 0C","16":"F","132":"1C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"1":"A","2":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z LC VD WD XD YD ZD AC BC CC aD","132":"J QD RD SD TD UD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Path2D",D:true}; 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..1c36585 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/payment-request.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L","322":"M","8196":"H N O P"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB fC gC","4162":"lB mB nB oB EC pB FC qB rB sB tB","16452":"1 2 3 4 5 6 7 8 9 uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"1 2 3 4 5 6 7 8 9 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB","194":"jB kB lB mB nB oB","1090":"EC pB","8196":"FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B"},E:{"1":"L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC","514":"A B LC","8196":"C 7B"},F:{"1":"uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB sC tC uC vC 7B ZC wC 8B","194":"WB XB YB ZB aB bB cB dB","8196":"eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB"},G:{"1":"9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C","514":"4C 5C 6C","8196":"7C 8C"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"2049":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 v w x y z WD XD YD ZD AC BC CC aD","2":"J","8196":"QD RD SD TD UD LC VD"},Q:{"8196":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:2,C:"Payment Request API",D:true}; 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..5060c63 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/pdf-viewer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","132":"B"},B:{"1":"1 2 3 4 5 6 7 8 9 H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","16":"C L M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"hC KC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G B sC tC uC vC 7B ZC wC"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"16":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"16":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:6,C:"Built-in PDF viewer",D:true}; 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..df840e8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/permissions-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},E:{"1":"AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB sC tC uC vC 7B ZC wC 8B"},G:{"1":"AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"Permissions API",D:true}; 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..8290bdc --- /dev/null +++ b/node_modules/caniuse-lite/data/features/permissions-policy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","258":"Q I R S T U","322":"V W","388":"1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B fC gC","258":"1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC","258":"pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U","322":"V W","388":"1 2 3 4 5 6 7 8 9 X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B hC KC iC jC kC lC LC","258":"C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB sC tC uC vC 7B ZC wC 8B","258":"dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB","322":"0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d","388":"e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C","258":"7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","258":"D"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","388":"I"},L:{"388":"D"},M:{"258":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"J QD RD SD","258":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"258":"bD"},R:{"388":"cD"},S:{"2":"dD","258":"eD"}},B:5,C:"Permissions Policy",D:true}; 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..f09ee7f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/picture-in-picture.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB fC gC","132":"1 2 3 4 5 6 7 8 9 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","1090":"vB","1412":"zB","1668":"wB xB yB"},D:{"1":"1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB","2114":"xB"},E:{"1":"M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC","4100":"A B C L LC 7B 8B"},F:{"1":"1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB sC tC uC vC 7B ZC wC 8B","8196":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B"},G:{"1":"ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C","4100":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"16388":"D"},M:{"16388":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"Picture-in-Picture",D:true}; 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..0d2c110 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/picture.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C"},C:{"1":"1 2 3 4 5 6 7 8 9 UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB fC gC","578":"QB RB SB TB"},D:{"1":"1 2 3 4 5 6 7 8 9 UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB","194":"TB"},E:{"1":"A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC"},F:{"1":"0 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w x y sC tC uC vC 7B ZC wC 8B","322":"z"},G:{"1":"3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Picture element",D:true}; 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..5b1627c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ping.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N"},C:{"2":"cC","194":"0 1 2 3 4 5 6 7 8 9 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"194":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"194":"dD eD"}},B:1,C:"Ping attribute",D:true}; 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..c184464 --- /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":"bC","8":"K"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"PNG alpha transparency",D:true}; 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..77325f6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/pointer-events.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E F G A bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC gC","2":"cC DC fC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:7,C:"CSS pointer-events (for HTML)",D:true}; 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..d6a7b9a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/pointer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E F G bC","164":"A"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB fC gC","8":"0 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","328":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB"},D:{"1":"1 2 3 4 5 6 7 8 9 lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v w","8":"0 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB","584":"iB jB kB"},E:{"1":"L M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC","8":"E F G A B C jC kC lC LC 7B","1096":"8B"},F:{"1":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","8":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB","584":"VB WB XB"},G:{"1":"BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","8":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C","6148":"AD"},H:{"2":"JD"},I:{"1":"D","8":"DC J KD LD MD ND aC OD PD"},J:{"8":"E A"},K:{"1":"I","2":"A","8":"B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","36":"A"},O:{"1":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"QD","8":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","328":"dD"}},B:2,C:"Pointer events",D:true}; 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..0589887 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/pointerlock.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C"},C:{"1":"1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L fC gC","33":"0 M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB"},D:{"1":"1 2 3 4 5 6 7 8 9 TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H","33":"0 x y z IB JB KB LB MB NB OB PB QB RB SB","66":"N O P HB v w"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC"},F:{"1":"0 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","33":"H N O P HB v w x y"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","16":"I"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"16":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"16":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"Pointer Lock API",D:true}; 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..5e100d1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/portals.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P Q I R S T","322":"1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","450":"U V W X Y"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B","194":"3B 4B 5B 6B Q I R S T","322":"1 2 3 4 5 6 7 8 9 V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","450":"U"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB sC tC uC vC 7B ZC wC 8B","194":"qB rB sB tB uB vB wB xB yB zB 0B","322":"1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"450":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"Portals",D:true}; 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..2b9855d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/prefers-color-scheme.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B"},E:{"1":"L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C hC KC iC jC kC lC LC 7B"},F:{"1":"qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB sC tC uC vC 7B ZC wC 8B"},G:{"1":"AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"prefers-color-scheme media query",D:true}; 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..3152d4b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC"},F:{"1":"sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sC tC uC vC 7B ZC wC 8B"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"prefers-reduced-motion media query",D:true}; 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..2bc3e19 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/progress.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 7B ZC wC 8B","2":"G sC tC uC vC"},G:{"1":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC","132":"0C"},H:{"1":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"progress element",D:true}; 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..9d87562 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/promise-finally.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O"},C:{"1":"1 2 3 4 5 6 7 8 9 oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB"},E:{"1":"C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B hC KC iC jC kC lC LC"},F:{"1":"gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB sC tC uC vC 7B ZC wC 8B"},G:{"1":"7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:6,C:"Promise.prototype.finally",D:true}; 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..c6c7a9f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/promises.js @@ -0,0 +1 @@ +module.exports={A:{A:{"8":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","4":"JB KB","8":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","4":"OB","8":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB"},E:{"1":"F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","8":"J GB K E hC KC iC jC"},F:{"1":"0 v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","4":"HB","8":"G B C H N O P sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","8":"KC xC aC yC zC 0C"},H:{"8":"JD"},I:{"1":"D PD","8":"DC J KD LD MD ND aC OD"},J:{"8":"E A"},K:{"1":"I","8":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"Promises",D:true}; 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..8d597f3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/proximity.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"1":"dD eD"}},B:4,C:"Proximity API",D:true}; 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..bcaf6d2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/proxy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P UB VB WB XB YB ZB aB bB cB dB eB","66":"0 HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C IB JB KB LB MB NB OB PB QB RB sC tC uC vC 7B ZC wC 8B","66":"H N O P HB v w x y z"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"Proxy object",D:true}; 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..66f97d0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/publickeypinning.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB","2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB","2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB","2":"G B C H N O P HB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","4":"y","16":"v w x z"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"J QD RD SD TD UD LC","2":"0 v w x y z VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"1":"dD","2":"eD"}},B:6,C:"HTTP Public Key Pinning",D:true}; 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..d757f1f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/push-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"O P","2":"C L M H N","257":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB fC gC","257":"1 2 3 4 5 6 7 8 9 aB cB dB eB fB gB hB jB kB lB mB nB oB EC FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","1281":"bB iB pB"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB","257":"1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","388":"aB bB cB dB eB fB"},E:{"2":"J GB K hC KC iC jC","514":"E F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC","2564":"OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB sC tC uC vC 7B ZC wC 8B","16":"TB UB VB WB XB","257":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC","4100":"RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"2":"cD"},S:{"257":"dD eD"}},B:5,C:"Push API",D:true}; 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..1c3c2fe --- /dev/null +++ b/node_modules/caniuse-lite/data/features/queryselector.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"bC","8":"K E","132":"F"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","8":"cC DC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u tC uC vC 7B ZC wC 8B","8":"G sC"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"querySelector/querySelectorAll",D:true}; 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..66bb0e8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/readonly-attr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"K E F G A B","16":"bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","16":"cC DC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"0 J GB K E F G A B C L M H N O P HB v w x y z"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"J GB hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","16":"G sC","132":"B C tC uC vC 7B ZC wC 8B"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC yC zC"},H:{"1":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"E A"},K:{"1":"I","132":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"257":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"readonly attribute of input and textarea elements",D:true}; 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..466ccbd --- /dev/null +++ b/node_modules/caniuse-lite/data/features/referrer-policy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","132":"B"},B:{"1":"1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","132":"C L M H N O P","513":"Q I R S T"},C:{"1":"W X Y Z a","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB fC gC","513":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V","2049":"1 2 3 4 5 6 7 8 9 b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v","260":"0 w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB","513":"FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T"},E:{"2":"J GB K E hC KC iC jC","132":"F G A B kC lC LC","513":"C 7B 8B","1025":"H oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","1537":"L M mC nC"},F:{"1":"1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","513":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B"},G:{"2":"KC xC aC yC zC 0C","132":"F 1C 2C 3C 4C 5C 6C 7C","513":"8C 9C AD BD","1025":"GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","1537":"CD DD ED FD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2049":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z YD ZD AC BC CC aD","2":"J","513":"QD RD SD TD UD LC VD WD XD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"513":"dD eD"}},B:4,C:"Referrer Policy",D:true}; 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..46304b0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/registerprotocolhandler.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","129":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","2":"cC"},D:{"2":"J GB K E F G A B C","129":"0 1 2 3 4 5 6 7 8 9 L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"G B sC tC uC vC 7B ZC","129":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E","129":"A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:1,C:"Custom protocol handling",D:true}; 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..5aa272b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/rel-noopener.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB sC tC uC vC 7B ZC wC 8B"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:1,C:"rel=noopener",D:true}; 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..7d55b94 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/rel-noreferrer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","132":"B"},B:{"1":"1 2 3 4 5 6 7 8 9 L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","16":"C"},C:{"1":"1 2 3 4 5 6 7 8 9 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M H"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC"},H:{"2":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Link type \"noreferrer\"",D:true}; 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..1807f0d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/rellist.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N","132":"O"},C:{"1":"1 2 3 4 5 6 7 8 9 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB","132":"gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F hC KC iC jC kC"},F:{"1":"iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB sC tC uC vC 7B ZC wC 8B","132":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z UD LC VD WD XD YD ZD AC BC CC aD","2":"J","132":"QD RD SD TD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"relList (DOMTokenList)",D:true}; 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..59eea7f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/rem.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E F bC","132":"G A"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC gC","2":"cC DC fC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u wC 8B","2":"G B sC tC uC vC 7B ZC"},G:{"1":"F xC aC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC","260":"yC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"C I 8B","2":"A B 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"rem (root em) units",D:true}; 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..284c91f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/requestanimationframe.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","33":"B C L M H N O P HB v w x","164":"J GB K E F G A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G","33":"x y","164":"P HB v w","420":"A B C L M H N O"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC","33":"K"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC","33":"zC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"A","2":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"requestAnimationFrame",D:true}; 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..57084ef --- /dev/null +++ b/node_modules/caniuse-lite/data/features/requestidlecallback.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB fC gC","194":"jB kB"},D:{"1":"1 2 3 4 5 6 7 8 9 dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB"},E:{"1":"rC","2":"J GB K E F G A B C L hC KC iC jC kC lC LC 7B 8B","322":"M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD","322":"DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"requestIdleCallback",D:true}; 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..2b7fc80 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/resizeobserver.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB","194":"kB lB mB nB oB EC pB FC qB rB"},E:{"1":"M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C hC KC iC jC kC lC LC 7B 8B","66":"L"},F:{"1":"iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB sC tC uC vC 7B ZC wC 8B","194":"XB YB ZB aB bB cB dB eB fB gB hB"},G:{"1":"DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"Resize Observer",D:true}; 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..b72fcae --- /dev/null +++ b/node_modules/caniuse-lite/data/features/resource-timing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB fC gC","194":"NB OB PB QB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v w x y z"},E:{"1":"C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC LC","260":"B"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"Resource Timing (basic support)",D:true}; 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..518838f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/rest-parameters.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB","194":"aB bB cB"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB sC tC uC vC 7B ZC wC 8B","194":"NB OB PB"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"Rest parameters",D:true}; 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..a06dd98 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/rtcpeerconnection.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M","260":"H N O P"},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 EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB v w fC gC","33":"0 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},D:{"1":"1 2 3 4 5 6 7 8 9 mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v w x","33":"0 y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC LC"},F:{"1":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O sC tC uC vC 7B ZC wC 8B","33":"0 P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E","130":"A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","33":"J QD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"WebRTC Peer-to-peer connections",D:true}; 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..8c4dcb8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ruby.js @@ -0,0 +1 @@ +module.exports={A:{A:{"4":"K E F bC","132":"G A B"},B:{"4":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","8":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB fC gC"},D:{"4":"0 1 2 3 4 5 6 7 8 9 GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","8":"J"},E:{"4":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","8":"J hC KC"},F:{"4":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","8":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"4":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","8":"KC xC aC"},H:{"8":"JD"},I:{"4":"DC J D ND aC OD PD","8":"KD LD MD"},J:{"4":"A","8":"E"},K:{"4":"I","8":"A B C 7B ZC 8B"},L:{"4":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"4":"9B"},P:{"4":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"4":"bD"},R:{"4":"cD"},S:{"1":"dD eD"}},B:1,C:"Ruby annotation",D:true}; 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..2e08a6d --- /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":"K E bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB","2":"1 2 3 4 5 6 7 8 9 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"GB K iC","2":"E F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"jC","129":"J hC KC"},F:{"1":"G B C H N O P sC tC uC vC 7B ZC wC 8B","2":"0 HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"1":"xC aC yC zC 0C","2":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","129":"KC"},H:{"1":"JD"},I:{"1":"DC J KD LD MD ND aC OD","2":"D PD"},J:{"1":"E A"},K:{"1":"A B C 7B ZC 8B","2":"I"},L:{"2":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:4,C:"display: run-in",D:true}; 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..e27e2bb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","388":"B"},B:{"1":"P Q I R S T U","2":"C L M H","129":"N O","513":"1 2 3 4 5 6 7 8 9 V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC fC gC"},D:{"1":"hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB","513":"1 2 3 4 5 6 7 8 9 I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"H oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B hC KC iC jC kC lC LC 7B","2052":"M nC","3076":"C L 8B mC"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB sC tC uC vC 7B ZC wC 8B","513":"zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"1":"AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C","2052":"8C 9C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","513":"I"},L:{"513":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"16":"bD"},R:{"513":"cD"},S:{"1":"eD","2":"dD"}},B:6,C:"'SameSite' cookie attribute",D:true}; 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..909cadb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/screen-orientation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","164":"B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","36":"C L M H N O P"},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 EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O fC gC","36":"0 P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},D:{"1":"1 2 3 4 5 6 7 8 9 UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"1":"RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC"},F:{"1":"0 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w x y z sC tC uC vC 7B ZC wC 8B"},G:{"1":"RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A","36":"B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","16":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"Screen Orientation",D:true}; 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..8504a08 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/script-async.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC gC","2":"cC DC fC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC","132":"GB"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC"},H:{"2":"JD"},I:{"1":"DC J D ND aC OD PD","2":"KD LD MD"},J:{"1":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"async attribute for external scripts",D:true}; 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..7f0dc85 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/script-defer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","132":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC","257":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC"},H:{"2":"JD"},I:{"1":"DC J D ND aC OD PD","2":"KD LD MD"},J:{"1":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"defer attribute for external scripts",D:true}; 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..c7b0076 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/scrollintoview.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E bC","132":"F G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","132":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","132":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","132":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB"},E:{"1":"AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC","132":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B 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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G sC tC uC vC","16":"B 7B ZC","132":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB wC 8B"},G:{"1":"AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC","132":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD"},H:{"2":"JD"},I:{"1":"D","16":"KD LD","132":"DC J MD ND aC OD PD"},J:{"132":"E A"},K:{"1":"I","132":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD","132":"J QD RD SD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"scrollIntoView",D:true}; 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..4ccb1a3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"J GB hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC"},H:{"2":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:7,C:"Element.scrollIntoViewIfNeeded()",D:true}; 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..09f64a6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/sdch.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB","2":"1 2 3 4 5 6 7 8 9 EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B","2":"G B C 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:6,C:"SDCH Accept-Encoding/Content-Encoding",D:true}; 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..95a0a58 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/selection-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","16":"bC","260":"K E F"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","132":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB fC gC","2180":"ZB aB bB cB dB eB fB gB hB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"J GB hC KC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","132":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"16":"aC","132":"KC xC","516":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D OD PD","16":"DC J KD LD MD ND","1025":"aC"},J:{"1":"A","16":"E"},K:{"1":"I","16":"A B C 7B ZC","132":"8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","16":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2180":"dD"}},B:5,C:"Selection API",D:true}; diff --git a/node_modules/caniuse-lite/data/features/selectlist.js b/node_modules/caniuse-lite/data/features/selectlist.js new file mode 100644 index 0000000..ca3767a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/selectlist.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f","194":"1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f","194":"1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC sC tC uC vC 7B ZC wC 8B","194":"S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","194":"I"},L:{"194":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"Selectlist - Customizable select element",D:true}; 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..b03cffb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/server-timing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC","196":"pB FC qB rB","324":"sB"},E:{"1":"RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C hC KC iC jC kC lC LC 7B","516":"L M H 8B mC nC oC MC NC 9B pC AC OC PC QC"},F:{"1":"iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB sC tC uC vC 7B ZC wC 8B"},G:{"1":"RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"Server Timing",D:true}; 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..5436623 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/serviceworkers.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M","322":"H N"},C:{"1":"1 2 3 4 5 6 7 8 9 aB cB dB eB fB gB hB jB kB lB mB nB oB EC FC qB rB sB tB uB vB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB fC gC","194":"PB QB RB SB TB UB VB WB XB YB ZB","513":"bB iB pB wB"},D:{"1":"1 2 3 4 5 6 7 8 9 bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB","4":"WB XB YB ZB aB"},E:{"1":"C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B hC KC iC jC kC lC LC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB sC tC uC vC 7B ZC wC 8B","4":"JB KB LB MB NB"},G:{"1":"7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","4":"D"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:4,C:"Service Workers",D:true}; 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..e3d1bf6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/setimmediate.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"C L M H N O P","2":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"Efficient Script Yielding: setImmediate()",D:true}; 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..77cd761 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/shadowdom.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"Q","2":"1 2 3 4 5 6 7 8 9 C L M H N O P I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","66":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB"},D:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q","2":"1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","33":"0 IB JB KB LB MB NB OB PB QB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB","2":"G B C vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","33":"H N O P HB v w"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC","33":"OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"QD RD SD TD UD LC VD WD","2":"0 v w x y z XD YD ZD AC BC CC aD","33":"J"},Q:{"1":"bD"},R:{"2":"cD"},S:{"1":"dD","2":"eD"}},B:7,C:"Shadow DOM (deprecated V0 spec)",D:true}; 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..eecb841 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/shadowdomv1.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB fC gC","322":"oB","578":"EC pB FC qB"},D:{"1":"1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB"},E:{"1":"A B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC"},F:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB sC tC uC vC 7B ZC wC 8B"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C","132":"4C 5C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J","4":"QD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"Shadow DOM (V1)",D:true}; 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..2d89e69 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/sharedarraybuffer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"Q I R S T U V W X Y Z","2":"C L M H","194":"N O P","513":"1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB fC gC","194":"nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B","450":"2B 3B 4B 5B 6B","513":"1 2 3 4 5 6 7 8 9 Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC","194":"pB FC qB rB sB tB uB vB","513":"1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A hC KC iC jC kC lC","194":"B C L M H LC 7B 8B mC nC oC","513":"MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB sC tC uC vC 7B ZC wC 8B","194":"dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB","513":"6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C","194":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD","513":"MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","513":"I"},L:{"513":"D"},M:{"513":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"2":"J QD RD SD TD UD LC VD WD XD YD","513":"0 v w x y z ZD AC BC CC aD"},Q:{"2":"bD"},R:{"513":"cD"},S:{"2":"dD","513":"eD"}},B:6,C:"Shared Array Buffer",D:true}; 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..d69eb32 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/sharedworkers.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"GB K iC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J E F G A B C L M H hC KC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u vC 7B ZC wC 8B","2":"G sC tC uC"},G:{"1":"yC zC AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"B C 7B ZC 8B","2":"I","16":"A"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"J","2":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"1":"dD eD"}},B:1,C:"Shared Web Workers",D:true}; 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..9919d0c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/sni.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K bC","132":"E F"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC"},H:{"1":"JD"},I:{"1":"DC J D ND aC OD PD","2":"KD LD MD"},J:{"1":"A","2":"E"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"Server Name Indication",D:true}; 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..d1f787e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/spdy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E F G A bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 L M H N O P HB v w x y z IB 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":"1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 J GB K E F G A B C L M H N O P HB v w x y z IB 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":"1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"F G A B C lC LC 7B","2":"J GB K E hC KC iC jC kC","129":"L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB YB aB 8B","2":"G B C WB XB ZB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC"},G:{"1":"F 1C 2C 3C 4C 5C 6C 7C 8C","2":"KC xC aC yC zC 0C","257":"9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J ND aC OD PD","2":"D KD LD MD"},J:{"2":"E A"},K:{"1":"8B","2":"A B C I 7B ZC"},L:{"2":"D"},M:{"2":"D"},N:{"1":"B","2":"A"},O:{"2":"9B"},P:{"1":"J","2":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"1":"dD","2":"eD"}},B:7,C:"SPDY protocol",D:true}; 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..f610e32 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/speech-recognition.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","514":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"cC DC J GB K E F G A B C L M H N O P HB v w fC gC","322":"0 1 2 3 4 5 6 7 8 9 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"2":"J GB K E F G A B C L M H N O P HB v w x y z","164":"0 1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M hC KC iC jC kC lC LC 7B 8B mC","1060":"H nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB sC tC uC vC 7B ZC wC 8B","514":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED","1060":"FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","164":"I"},L:{"164":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"164":"9B"},P:{"164":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"164":"bD"},R:{"164":"cD"},S:{"322":"dD eD"}},B:7,C:"Speech Recognition API",D:true}; 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..56481c6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/speech-synthesis.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"M H N O P","2":"C L","257":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB fC gC","194":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},D:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB","257":"1 2 3 4 5 6 7 8 9 lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"E F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC jC"},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 oB pB qB rB","2":"0 G B C H N O P HB v w x y z IB sC tC uC vC 7B ZC wC 8B","257":"sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"2":"cD"},S:{"1":"dD eD"}},B:7,C:"Speech Synthesis API",D:true}; 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..cb42956 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/spellcheck-attribute.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u uC vC 7B ZC wC 8B","2":"G sC tC"},G:{"4":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"4":"JD"},I:{"4":"DC J D KD LD MD ND aC OD PD"},J:{"1":"A","4":"E"},K:{"4":"A B C I 7B ZC 8B"},L:{"4":"D"},M:{"4":"D"},N:{"4":"A B"},O:{"4":"9B"},P:{"4":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"4":"cD"},S:{"2":"dD eD"}},B:1,C:"Spellcheck attribute",D:true}; 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..28a31f7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/sql-storage.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"Q I R S T U V W X Y Z a b c d e f g h i j","2":"C L M H N O P DB EB FB D","129":"k l m n o p q r s","385":"1 2 3 4 5 6 7 8 9 t u AB BB CB"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j","2":"DB EB FB D HC IC JC","129":"k l m n o p q r s","385":"1 2 3 4 5 6 7 t u","897":"8 9 AB BB CB"},E:{"1":"J GB K E F G A B C hC KC iC jC kC lC LC 7B 8B","2":"L M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z uC vC 7B ZC wC 8B","2":"G t u sC tC","257":"a b c d e f g h i j k l m n o p q r s"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C","2":"AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J KD LD MD ND aC OD PD","2":"D"},J:{"1":"E A"},K:{"1":"B C 7B ZC 8B","2":"A","257":"I"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:7,C:"Web SQL Database",D:true}; 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..fa5320b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/srcset.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","260":"C","514":"L M H"},C:{"1":"1 2 3 4 5 6 7 8 9 UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB fC gC","194":"OB PB QB RB SB TB"},D:{"1":"1 2 3 4 5 6 7 8 9 UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB","260":"QB RB SB TB"},E:{"2":"J GB K E hC KC iC jC","260":"F kC","1028":"G A lC LC","3076":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v sC tC uC vC 7B ZC wC 8B","260":"w x y z"},G:{"2":"KC xC aC yC zC 0C","260":"F 1C","1028":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Srcset and sizes attributes",D:true}; 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..59dd0cb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/stream.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N fC gC","129":"SB TB UB VB WB XB","420":"0 O P HB v w x y z IB JB KB LB MB NB OB PB QB RB"},D:{"1":"1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v","420":"0 w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC LC"},F:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B H N O sC tC uC vC 7B ZC wC","420":"0 C P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C","513":"DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","1537":"6C 7C 8C 9C AD BD CD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E","420":"A"},K:{"1":"I","2":"A B 7B ZC","420":"C 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","420":"J QD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:4,C:"getUserMedia/Stream API",D:true}; 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..d06220a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/streams.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","130":"B"},B:{"1":"1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","16":"C L","260":"M H","1028":"Q I R S T U V W X","5124":"N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB fC gC","5124":"j k","7172":"tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i","7746":"nB oB EC pB FC qB rB sB"},D:{"1":"1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB","260":"iB jB kB lB mB nB oB","1028":"EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X"},E:{"2":"J GB K E F G hC KC iC jC kC lC","1028":"H nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","3076":"A B C L M LC 7B 8B mC"},F:{"1":"4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB sC tC uC vC 7B ZC wC 8B","260":"VB WB XB YB ZB aB bB","1028":"cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C","16":"4C","1028":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z ZD AC BC CC aD","2":"J QD RD","1028":"SD TD UD LC VD WD XD YD"},Q:{"1028":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:1,C:"Streams",D:true}; 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..567046f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/stricttransportsecurity.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A bC","129":"B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"E F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC jC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G B sC tC uC vC 7B ZC wC"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"Strict Transport Security",D:true}; 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..357218c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/style-scoped.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB","2":"1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","322":"lB mB nB oB EC pB"},D:{"2":"1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","194":"0 v w x y z IB JB KB LB MB NB OB PB QB RB SB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"1":"dD","2":"eD"}},B:7,C:"Scoped attribute",D:true}; 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..580f621 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/subresource-bundling.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"Subresource Loading with Web Bundles",D:false}; 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..8fb62d9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/subresource-integrity.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N"},C:{"1":"1 2 3 4 5 6 7 8 9 ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC LC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB sC tC uC vC 7B ZC wC 8B"},G:{"1":"7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C","194":"6C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"Subresource Integrity",D:true}; 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..ebad9fb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/svg-css.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","516":"C L M H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","260":"J GB K E F G A B C L M H N O P HB v w x y"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","4":"J"},E:{"1":"GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC","132":"J KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","2":"G"},G:{"1":"F aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","132":"KC xC"},H:{"260":"JD"},I:{"1":"DC J D ND aC OD PD","2":"KD LD MD"},J:{"1":"E A"},K:{"1":"I","260":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"SVG in CSS backgrounds",D:true}; 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..a3bb987 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/svg-filters.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","2":"cC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J","4":"GB K E"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC"},H:{"1":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"A","2":"E"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"SVG filters",D:true}; 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..22cc13d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/svg-fonts.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"G A B bC","8":"K E F"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB","2":"1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","130":"UB VB WB XB YB ZB aB bB cB dB eB fB gB"},E:{"1":"J GB K E F G A B C L M H KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC"},F:{"1":"G B C H N O P HB v w x y z sC tC uC vC 7B ZC wC 8B","2":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","130":"0 IB JB KB LB MB NB OB PB QB RB SB"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"258":"JD"},I:{"1":"DC J ND aC OD PD","2":"D KD LD MD"},J:{"1":"E A"},K:{"1":"A B C 7B ZC 8B","2":"I"},L:{"130":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"J","130":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"130":"cD"},S:{"2":"dD eD"}},B:2,C:"SVG fonts",D:true}; 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..3001969 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/svg-fragment.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","260":"G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB","132":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB"},E:{"1":"C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E G A B hC KC iC jC lC LC","132":"F kC"},F:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"H N O P HB v w x","4":"B C tC uC vC 7B ZC wC","16":"G sC","132":"0 y z IB JB KB LB MB NB OB PB QB RB SB"},G:{"1":"7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC 0C 2C 3C 4C 5C 6C","132":"F 1C"},H:{"1":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E","132":"A"},K:{"1":"I 8B","4":"A B C 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","132":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"SVG fragment identifiers",D:true}; 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..20e59ce --- /dev/null +++ b/node_modules/caniuse-lite/data/features/svg-html.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","388":"G A B"},B:{"4":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","260":"C L M H N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","2":"cC","4":"DC"},D:{"4":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"hC KC","4":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"4":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"4":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC","4":"D OD PD"},J:{"1":"A","2":"E"},K:{"4":"A B C I 7B ZC 8B"},L:{"4":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"4":"9B"},P:{"4":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"4":"bD"},R:{"4":"cD"},S:{"1":"dD eD"}},B:2,C:"SVG effects for HTML",D:true}; 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..dc3cebc --- /dev/null +++ b/node_modules/caniuse-lite/data/features/svg-html5.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"bC","8":"K E F","129":"G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","129":"C L M H N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","8":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","8":"J GB K"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","8":"J GB hC KC","129":"K E F iC jC kC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u wC 8B","2":"B vC 7B ZC","8":"G sC tC uC"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","8":"KC xC aC","129":"F yC zC 0C 1C"},H:{"1":"JD"},I:{"1":"D OD PD","2":"KD LD MD","129":"DC J ND aC"},J:{"1":"A","129":"E"},K:{"1":"C I 8B","8":"A B 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"129":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Inline SVG in HTML5",D:true}; 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..e76cfa1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/svg-img.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","132":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC","4":"KC","132":"J GB K E F iC jC kC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","132":"F KC xC aC yC zC 0C 1C"},H:{"1":"JD"},I:{"1":"D OD PD","2":"KD LD MD","132":"DC J ND aC"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"SVG in HTML img element",D:true}; 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..9dd1381 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/svg-smil.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"bC","8":"K E F G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","8":"C L M H N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","8":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","4":"J"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","8":"hC KC","132":"J GB iC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","132":"KC xC aC yC"},H:{"2":"JD"},I:{"1":"DC J D ND aC OD PD","2":"KD LD MD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"SVG SMIL animation",D:true}; 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..44de4a9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/svg.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"bC","8":"K E F","772":"G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","513":"C L M H N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","4":"cC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","4":"hC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"D OD PD","2":"KD LD MD","132":"DC J ND aC"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"257":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"SVG (basic support)",D:true}; 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..d6850ad --- /dev/null +++ b/node_modules/caniuse-lite/data/features/sxg.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB","132":"zB 0B"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:6,C:"Signed HTTP Exchanges (SXG)",D:true}; 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..36f899b --- /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":"K bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"16":"cC DC fC gC","129":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M"},E:{"16":"J GB hC KC","257":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","16":"G"},G:{"769":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"16":"JD"},I:{"16":"DC J D KD LD MD ND aC OD PD"},J:{"16":"E A"},K:{"1":"I","16":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"16":"A B"},O:{"1":"9B"},P:{"16":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"129":"dD eD"}},B:1,C:"tabindex global attribute",D:true}; 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..91a2d7d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/template-literals.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","16":"C"},C:{"1":"1 2 3 4 5 6 7 8 9 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},E:{"1":"A B L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC","129":"C"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB sC tC uC vC 7B ZC wC 8B"},G:{"1":"2C 3C 4C 5C 6C 7C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C","129":"8C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"ES6 Template Literals (Template Strings)",D:true}; 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..3a29691 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/template.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C","388":"L M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB v w fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z","132":"IB JB KB LB MB NB OB PB QB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E hC KC iC","388":"F kC","514":"jC"},F:{"1":"0 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","132":"H N O P HB v w"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC 0C","388":"F 1C"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"HTML templates",D:true}; 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..699b9d4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/temporal.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:6,C:"Temporal",D:true}; 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..f3231f8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/testfeat.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F A B bC","16":"G"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","16":"J GB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"B C"},E:{"2":"J K hC KC iC","16":"GB E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC ZC wC 8B","16":"7B"},G:{"2":"KC xC aC yC zC","16":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD ND aC OD PD","16":"MD"},J:{"2":"A","16":"E"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"Test feature - updated",D:false}; 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..9e28c3e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/text-decoration.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","2052":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"cC DC J GB fC gC","1028":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","1060":"0 K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z","226":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB","2052":"1 2 3 4 5 6 7 8 9 nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E hC KC iC jC","772":"L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","804":"F G A B C lC LC 7B","1316":"kC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB sC tC uC vC 7B ZC wC 8B","226":"RB SB TB UB VB WB XB YB ZB","2052":"aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"KC xC aC yC zC 0C","292":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","2052":"I"},L:{"2052":"D"},M:{"1028":"D"},N:{"2":"A B"},O:{"2052":"9B"},P:{"2":"J QD RD","2052":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2052":"bD"},R:{"2052":"cD"},S:{"1028":"dD eD"}},B:4,C:"text-decoration styling",D:true}; 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..52b46c1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/text-emphasis.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P","164":"Q I R S T U V W X Y Z a b c d e f g h"},C:{"1":"1 2 3 4 5 6 7 8 9 cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB fC gC","322":"bB"},D:{"1":"1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v w x y z","164":"0 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h"},E:{"1":"F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC","164":"E jC"},F:{"1":"V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","164":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC","164":"OD PD"},J:{"2":"E","164":"A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z CC aD","164":"J QD RD SD TD UD LC VD WD XD YD ZD AC BC"},Q:{"164":"bD"},R:{"164":"cD"},S:{"1":"dD eD"}},B:4,C:"text-emphasis styling",D:true}; 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..e2a8f0f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/text-overflow.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"K E F G A B","2":"bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","8":"cC DC J GB K fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 7B ZC wC 8B","33":"G sC tC uC vC"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"I 8B","33":"A B C 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"CSS3 Text-overflow",D:true}; 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..0552665 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/text-size-adjust.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","33":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB","258":"IB"},E:{"2":"J GB K E F G A B C L M H hC KC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","258":"iC"},F:{"1":"ZB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB aB sC tC uC vC 7B ZC wC 8B"},G:{"2":"KC xC aC","33":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"33":"D"},N:{"161":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:7,C:"CSS text-size-adjust",D:true}; 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..974be07 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/text-stroke.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M","33":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","161":"H N O P"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB fC gC","161":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","450":"eB"},D:{"33":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"33":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"G B C sC tC uC vC 7B ZC wC 8B","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"33":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","36":"KC"},H:{"2":"JD"},I:{"2":"DC","33":"J D KD LD MD ND aC OD PD"},J:{"33":"E A"},K:{"2":"A B C 7B ZC 8B","33":"I"},L:{"33":"D"},M:{"161":"D"},N:{"2":"A B"},O:{"33":"9B"},P:{"33":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"33":"bD"},R:{"33":"cD"},S:{"161":"dD eD"}},B:7,C:"CSS text-stroke and text-fill",D:true}; 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..6a2b5aa --- /dev/null +++ b/node_modules/caniuse-lite/data/features/textcontent.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"hC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","16":"G"},G:{"1":"F xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC"},H:{"1":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Node.textContent",D:true}; 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..8fcb168 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/textencoder.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P fC gC","132":"HB"},D:{"1":"1 2 3 4 5 6 7 8 9 UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC"},F:{"1":"0 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w x y z sC tC uC vC 7B ZC wC 8B"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"TextEncoder & TextDecoder",D:true}; 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..57c9c5a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/tls1-1.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E bC","66":"F G A"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB","2":"cC DC J GB K E F G A B C L M H N O P HB v w x fC gC","66":"y","129":"wB xB yB zB 0B 1B 2B 3B 4B 5B","388":"1 2 3 4 5 6 7 8 9 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"0 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T","2":"J GB K E F G A B C L M H N O P HB v w","1540":"1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"E F G A B C L kC lC LC 7B 8B","2":"J GB K hC KC iC jC","513":"M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 8B","2":"G B C sC tC uC vC 7B ZC wC","1540":"1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC"},H:{"1":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"1":"A","2":"E"},K:{"1":"I 8B","2":"A B C 7B ZC"},L:{"1":"D"},M:{"129":"D"},N:{"1":"B","66":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"TLS 1.1",D:true}; 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..b16b489 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/tls1-2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E bC","66":"F G A"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB v w x y fC gC","66":"0 z IB"},D:{"1":"1 2 3 4 5 6 7 8 9 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB"},E:{"1":"E F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC jC"},F:{"1":"0 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G H sC","66":"B C tC uC vC 7B ZC wC 8B"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC"},H:{"1":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"1":"A","2":"E"},K:{"1":"I 8B","2":"A B C 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","66":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"TLS 1.2",D:true}; 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..28ee75f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/tls1-3.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB fC gC","132":"pB FC qB","450":"hB iB jB kB lB mB nB oB EC"},D:{"1":"1 2 3 4 5 6 7 8 9 yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB","706":"kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB"},E:{"1":"M H nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C hC KC iC jC kC lC LC 7B","1028":"L 8B mC"},F:{"1":"nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB sC tC uC vC 7B ZC wC 8B","706":"kB lB mB"},G:{"1":"9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:6,C:"TLS 1.3",D:true}; 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..ef48c76 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/touch.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","8":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","578":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 P HB v w x y z iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","4":"J GB K E F G A B C L M H N O","194":"0 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v w"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A","260":"B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:2,C:"Touch events",D:true}; 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..636c655 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/transforms2d.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"bC","8":"K E F","129":"A B","161":"G"},B:{"1":"1 2 3 4 5 6 7 8 9 O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","129":"C L M H N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC","33":"J GB K E F G A B C L M H fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","33":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","33":"J GB K E F hC KC iC jC kC"},F:{"1":"0 y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G sC tC","33":"B C H N O P HB v w x uC vC 7B ZC wC"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","33":"F KC xC aC yC zC 0C 1C"},H:{"2":"JD"},I:{"1":"D","33":"DC J KD LD MD ND aC OD PD"},J:{"33":"E A"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS3 2D Transforms",D:true}; 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..dcacd37 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/transforms3d.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","132":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G fC gC","33":"A B C L M H"},D:{"1":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B","33":"0 C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB"},E:{"1":"NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC","33":"J GB K E F iC jC kC","257":"G A B C L M H lC LC 7B 8B mC nC oC MC"},F:{"1":"0 y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","33":"H N O P HB v w x"},G:{"1":"NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","33":"F KC xC aC yC zC 0C 1C","257":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC"},H:{"2":"JD"},I:{"1":"D","2":"KD LD MD","33":"DC J ND aC OD PD"},J:{"33":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:5,C:"CSS3 3D Transforms",D:true}; 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..868a204 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/trusted-types.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD WD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:7,C:"Trusted Types for DOM manipulation",D:true}; 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..278f29e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ttf.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","132":"G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","2":"cC DC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u tC uC vC 7B ZC wC 8B","2":"G sC"},G:{"1":"F aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC"},H:{"2":"JD"},I:{"1":"DC J D LD MD ND aC OD PD","2":"KD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"TTF/OTF - TrueType and OpenType font support",D:true}; 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..902f2b7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/typedarrays.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"K E F G bC","132":"A"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC","260":"iC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u wC 8B","2":"G B sC tC uC vC 7B ZC"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC","260":"aC"},H:{"1":"JD"},I:{"1":"J D ND aC OD PD","2":"DC KD LD MD"},J:{"1":"A","2":"E"},K:{"1":"C I 8B","2":"A B 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"Typed Arrays",D:true}; 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..9b9c227 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/u2f.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P p q r s t u AB BB CB DB EB FB D","513":"Q I R S T U V W X Y Z a b c d e f g h i j k l m n o"},C:{"1":"vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB AB BB CB DB EB FB D HC IC JC dC eC fC gC","322":"1 2 dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB p q r s t u AB BB CB DB EB FB D HC IC JC","130":"UB VB WB","513":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g","578":"h i j k l m n o"},E:{"1":"L M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C hC KC iC jC kC lC LC 7B 8B"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB XB sC tC uC vC 7B ZC wC 8B","513":"WB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"1":"CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"1":"eD","322":"dD"}},B:7,C:"FIDO U2F API",D:true}; 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..920bf4a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/unhandledrejection.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC LC"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB sC tC uC vC 7B ZC wC 8B"},G:{"1":"7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C","16":"6C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:1,C:"unhandledrejection/rejectionhandled events",D:true}; 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..61a3969 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N"},C:{"1":"1 2 3 4 5 6 7 8 9 YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB sC tC uC vC 7B ZC wC 8B"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"Upgrade Insecure Requests",D:true}; 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..ac0bb0b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P","66":"Q I R"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B","66":"2B 3B 4B 5B 6B Q I"},E:{"1":"OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC"},F:{"1":"wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB sC tC uC vC 7B ZC wC 8B","66":"uB vB"},G:{"1":"OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 v w x y z XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD WD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:7,C:"URL Scroll-To-Text Fragment",D:true}; 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..034c55d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/url.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v w x","130":"0 y z IB JB KB LB MB NB"},E:{"1":"F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC jC","130":"E"},F:{"1":"0 HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","130":"H N O P"},G:{"1":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC","130":"0C"},H:{"2":"JD"},I:{"1":"D PD","2":"DC J KD LD MD ND aC","130":"OD"},J:{"2":"E","130":"A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"URL API",D:true}; 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..90449a5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/urlsearchparams.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N"},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 EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB fC gC","132":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},D:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},E:{"1":"B C L M H LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB sC tC uC vC 7B ZC wC 8B"},G:{"1":"5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"URLSearchParams",D:true}; 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..8ccb8c6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/use-strict.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC","132":"GB iC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u wC 8B","2":"G B sC tC uC vC 7B ZC"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC"},H:{"1":"JD"},I:{"1":"DC J D ND aC OD PD","2":"KD LD MD"},J:{"1":"E A"},K:{"1":"C I ZC 8B","2":"A B 7B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"ECMAScript 5 Strict Mode",D:true}; 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..3fea2df --- /dev/null +++ b/node_modules/caniuse-lite/data/features/user-select-none.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","33":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","33":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","33":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","33":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB"},E:{"33":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","33":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},G:{"33":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","33":"DC J KD LD MD ND aC OD PD"},J:{"33":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"33":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","33":"J QD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","33":"dD"}},B:5,C:"CSS user-select: none",D:true}; 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..666c911 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/user-timing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"1 2 3 4 5 6 7 8 9 UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v w x y z"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC LC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"User Timing API",D:true}; 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..bb6aa53 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/variable-fonts.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB fC gC","4609":"qB rB sB tB uB vB wB xB yB","4674":"FC","5698":"pB","7490":"jB kB lB mB nB","7746":"oB EC","8705":"1 2 3 4 5 6 7 8 9 zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB","4097":"uB","4290":"EC pB FC","6148":"qB rB sB tB"},E:{"1":"H oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC LC","4609":"B C 7B 8B","8193":"L M mC nC"},F:{"1":"kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB sC tC uC vC 7B ZC wC 8B","4097":"jB","6148":"fB gB hB iB"},G:{"1":"AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C","4097":"6C 7C 8C 9C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"4097":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"2":"J QD RD SD","4097":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:5,C:"Variable fonts",D:true}; 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..7cf1a1d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/vector-effect.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K E F G A B C L M"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u wC 8B","2":"G B sC tC uC vC 7B ZC"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC"},H:{"1":"JD"},I:{"1":"D OD PD","16":"DC J KD LD MD ND aC"},J:{"16":"E A"},K:{"1":"C I 8B","2":"A B 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"SVG vector-effect: non-scaling-stroke",D:true}; 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..cf3dfa8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/vibration.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A fC gC","33":"B C L M H"},D:{"1":"1 2 3 4 5 6 7 8 9 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"A","2":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"Vibration API",D:true}; 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..a5d4bd5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/video.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC","260":"J GB K E F G A B C L M H N O P HB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A hC KC iC jC kC lC LC","513":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u uC vC 7B ZC wC 8B","2":"G sC tC"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C","513":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J D MD ND aC OD PD","132":"KD LD"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Video element",D:true}; 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..7950981 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/videotracks.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"C L M H N O P","322":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB fC gC","194":"1 2 3 4 5 6 7 8 9 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","322":"1 2 3 4 5 6 7 8 9 bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K hC KC iC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB sC tC uC vC 7B ZC wC 8B","322":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","322":"I"},L:{"322":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"322":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"322":"bD"},R:{"322":"cD"},S:{"194":"dD eD"}},B:1,C:"Video Tracks",D:true}; diff --git a/node_modules/caniuse-lite/data/features/view-transitions.js b/node_modules/caniuse-lite/data/features/view-transitions.js new file mode 100644 index 0000000..0126499 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/view-transitions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t"},E:{"1":"CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC"},F:{"1":"g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f sC tC uC vC 7B ZC wC 8B"},G:{"1":"CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 y z","2":"J v w x QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"View Transitions API (single-document)",D:true}; 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..dcccacb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/viewport-unit-variants.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n","194":"o p q"},C:{"1":"1 2 3 4 5 6 7 8 9 k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i","194":"j k l m n o p q"},E:{"1":"NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC"},F:{"1":"d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z sC tC uC vC 7B ZC wC 8B","194":"a b c"},G:{"1":"NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 w x y z","2":"J v QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:5,C:"Small, Large, and Dynamic viewport units",D:true}; 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..6e4d0af --- /dev/null +++ b/node_modules/caniuse-lite/data/features/viewport-units.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","132":"G","260":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","260":"C L M H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB","260":"0 v w x y z"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC","260":"K"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC","516":"0C","772":"zC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"A","2":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"260":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"Viewport units: vw, vh, vmin, vmax",D:true}; 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..87ed607 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wai-aria.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E bC","4":"F G A B"},B:{"4":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"4":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"4":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"hC KC","4":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"G","4":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"4":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"4":"JD"},I:{"2":"DC J KD LD MD ND aC","4":"D OD PD"},J:{"2":"E A"},K:{"4":"A B C I 7B ZC 8B"},L:{"4":"D"},M:{"4":"D"},N:{"4":"A B"},O:{"4":"9B"},P:{"4":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"4":"bD"},R:{"4":"cD"},S:{"4":"dD eD"}},B:2,C:"WAI-ARIA Accessibility features",D:true}; 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..43d1fa2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wake-lock.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P","194":"Q I R S T U V W X Y"},C:{"1":"FB D HC IC JC dC eC","2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB fC gC","322":"DB EB"},D:{"1":"1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB","194":"zB 0B 1B 2B 3B 4B 5B 6B Q I R S T"},E:{"1":"RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC"},F:{"1":"1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB sC tC uC vC 7B ZC wC 8B","194":"oB pB qB rB sB tB uB vB wB xB yB zB 0B"},G:{"1":"RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD WD XD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:4,C:"Screen Wake Lock API",D:true}; diff --git a/node_modules/caniuse-lite/data/features/wasm-bigint.js b/node_modules/caniuse-lite/data/features/wasm-bigint.js new file mode 100644 index 0000000..5ebbc6a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wasm-bigint.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T"},C:{"1":"1 2 3 4 5 6 7 8 9 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T"},E:{"1":"H nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M hC KC iC jC kC lC LC 7B 8B mC"},F:{"1":"zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB sC tC uC vC 7B ZC wC 8B"},G:{"1":"FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD WD XD"},Q:{"16":"bD"},R:{"16":"cD"},S:{"2":"dD","16":"eD"}},B:5,C:"WebAssembly BigInt to i64 conversion in JS API",D:true}; diff --git a/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js b/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js new file mode 100644 index 0000000..2aa4b58 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B"},E:{"1":"H oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M hC KC iC jC kC lC LC 7B 8B mC nC"},F:{"1":"qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB sC tC uC vC 7B ZC wC 8B"},G:{"1":"GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC"},Q:{"16":"bD"},R:{"16":"cD"},S:{"2":"dD","16":"eD"}},B:5,C:"WebAssembly Bulk Memory Operations",D:true}; diff --git a/node_modules/caniuse-lite/data/features/wasm-extended-const.js b/node_modules/caniuse-lite/data/features/wasm-extended-const.js new file mode 100644 index 0000000..8838b8d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wasm-extended-const.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB D","2":"1 2 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u fC gC"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB D HC IC JC","2":"0 1 2 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},E:{"1":"WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC"},F:{"1":"j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i sC tC uC vC 7B ZC wC 8B"},G:{"1":"WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 y z","2":"J v w x QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"16":"bD"},R:{"16":"cD"},S:{"2":"dD","16":"eD"}},B:5,C:"WebAssembly Extended Constant Expressions",D:false}; diff --git a/node_modules/caniuse-lite/data/features/wasm-gc.js b/node_modules/caniuse-lite/data/features/wasm-gc.js new file mode 100644 index 0000000..6ee527c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wasm-gc.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"8 9 AB BB CB DB EB FB D","2":"1 2 3 4 5 6 7 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},C:{"1":"9 AB BB CB DB EB FB D HC IC JC dC eC","2":"0 1 2 3 4 5 6 7 8 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u fC gC"},D:{"1":"8 9 AB BB CB DB EB FB D HC IC JC","2":"0 1 2 3 4 5 6 7 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"16":"bD"},R:{"16":"cD"},S:{"2":"dD","16":"eD"}},B:5,C:"WebAssembly Garbage Collection",D:false}; diff --git a/node_modules/caniuse-lite/data/features/wasm-multi-memory.js b/node_modules/caniuse-lite/data/features/wasm-multi-memory.js new file mode 100644 index 0000000..fb6d5a8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wasm-multi-memory.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"9 AB BB CB DB EB FB D","2":"1 2 3 4 5 6 7 8 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},C:{"1":"EB FB D HC IC JC dC eC","2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB fC gC"},D:{"1":"8 9 AB BB CB DB EB FB D HC IC JC","2":"0 1 2 3 4 5 6 7 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"16":"bD"},R:{"16":"cD"},S:{"2":"dD","16":"eD"}},B:5,C:"WebAssembly Multi-Memory",D:false}; diff --git a/node_modules/caniuse-lite/data/features/wasm-multi-value.js b/node_modules/caniuse-lite/data/features/wasm-multi-value.js new file mode 100644 index 0000000..947ac1d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wasm-multi-value.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T"},C:{"1":"1 2 3 4 5 6 7 8 9 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T"},E:{"1":"M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L hC KC iC jC kC lC LC 7B 8B"},F:{"1":"zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB sC tC uC vC 7B ZC wC 8B"},G:{"1":"BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC VD WD XD"},Q:{"16":"bD"},R:{"16":"cD"},S:{"2":"dD","16":"eD"}},B:5,C:"WebAssembly Multi-Value",D:true}; diff --git a/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js b/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js new file mode 100644 index 0000000..3400579 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B"},E:{"1":"C L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B hC KC iC jC kC lC LC 7B"},F:{"1":"pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB sC tC uC vC 7B ZC wC 8B"},G:{"1":"8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC"},Q:{"16":"bD"},R:{"16":"cD"},S:{"2":"dD","16":"eD"}},B:5,C:"WebAssembly Import/Export of Mutable Globals",D:true}; diff --git a/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js b/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js new file mode 100644 index 0000000..b2d1cab --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B"},E:{"1":"H oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M hC KC iC jC kC lC LC 7B 8B mC nC"},F:{"1":"qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB sC tC uC vC 7B ZC wC 8B"},G:{"1":"GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC"},Q:{"16":"bD"},R:{"16":"cD"},S:{"2":"dD","16":"eD"}},B:5,C:"WebAssembly Non-trapping float-to-int Conversion",D:true}; diff --git a/node_modules/caniuse-lite/data/features/wasm-reference-types.js b/node_modules/caniuse-lite/data/features/wasm-reference-types.js new file mode 100644 index 0000000..f395137 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wasm-reference-types.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e"},C:{"1":"1 2 3 4 5 6 7 8 9 Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e"},E:{"1":"H oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M hC KC iC jC kC lC LC 7B 8B mC nC"},F:{"1":"GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R sC tC uC vC 7B ZC wC 8B"},G:{"1":"GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z BC CC aD","2":"J QD RD SD TD UD LC VD WD XD YD ZD AC"},Q:{"16":"bD"},R:{"16":"cD"},S:{"2":"dD","16":"eD"}},B:5,C:"WebAssembly Reference Types",D:true}; diff --git a/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js b/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js new file mode 100644 index 0000000..024a4f6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB D","2":"1 2 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g fC gC","194":"1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB D HC IC JC","2":"0 1 2 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 y z","2":"J v w x QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"16":"bD"},R:{"16":"cD"},S:{"2":"dD","16":"eD"}},B:5,C:"WebAssembly Relaxed SIMD",D:false}; diff --git a/node_modules/caniuse-lite/data/features/wasm-signext.js b/node_modules/caniuse-lite/data/features/wasm-signext.js new file mode 100644 index 0000000..88e7ee3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wasm-signext.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B"},E:{"1":"H nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M hC KC iC jC kC lC LC 7B 8B mC"},F:{"1":"qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB sC tC uC vC 7B ZC wC 8B"},G:{"1":"FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC"},Q:{"16":"bD"},R:{"16":"cD"},S:{"2":"dD","16":"eD"}},B:5,C:"WebAssembly Sign Extension Operators",D:true}; diff --git a/node_modules/caniuse-lite/data/features/wasm-simd.js b/node_modules/caniuse-lite/data/features/wasm-simd.js new file mode 100644 index 0000000..0b795b5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wasm-simd.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z"},C:{"1":"1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z"},E:{"1":"RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC"},F:{"1":"5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B sC tC uC vC 7B ZC wC 8B"},G:{"1":"RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z AC BC CC aD","2":"J QD RD SD TD UD LC VD WD XD YD ZD"},Q:{"16":"bD"},R:{"16":"cD"},S:{"2":"dD","16":"eD"}},B:5,C:"WebAssembly SIMD",D:true}; diff --git a/node_modules/caniuse-lite/data/features/wasm-tail-calls.js b/node_modules/caniuse-lite/data/features/wasm-tail-calls.js new file mode 100644 index 0000000..071f2c9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wasm-tail-calls.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},C:{"1":"AB BB CB DB EB FB D HC IC JC dC eC","2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 y z","2":"J v w x QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"16":"bD"},R:{"16":"cD"},S:{"2":"dD","16":"eD"}},B:5,C:"WebAssembly Tail Calls",D:false}; diff --git a/node_modules/caniuse-lite/data/features/wasm-threads.js b/node_modules/caniuse-lite/data/features/wasm-threads.js new file mode 100644 index 0000000..126a2fd --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wasm-threads.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B"},E:{"1":"H nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L M hC KC iC jC kC lC LC 7B 8B mC"},F:{"1":"qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB sC tC uC vC 7B ZC wC 8B"},G:{"1":"FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD TD UD LC"},Q:{"16":"bD"},R:{"16":"cD"},S:{"2":"dD","16":"eD"}},B:5,C:"WebAssembly Threads and Atomics",D:true}; 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..304543b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wasm.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M","578":"H"},C:{"1":"1 2 3 4 5 6 7 8 9 jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB fC gC","194":"dB eB fB gB hB","1025":"iB"},D:{"1":"1 2 3 4 5 6 7 8 9 nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB","322":"hB iB jB kB lB mB"},E:{"1":"B C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC LC"},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 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB sC tC uC vC 7B ZC wC 8B","322":"UB VB WB XB YB ZB"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","194":"dD"}},B:6,C:"WebAssembly",D:true}; 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..f8ac046 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wav.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","2":"cC DC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u uC vC 7B ZC wC 8B","2":"G sC tC"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","16":"A"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"Wav audio format",D:true}; 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..773d4cf --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wbr-element.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"K E bC","2":"F G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"hC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","16":"G"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC"},H:{"1":"JD"},I:{"1":"DC J D MD ND aC OD PD","16":"KD LD"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"wbr (word break opportunity) element",D:true}; 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..3134f5d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/web-animation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P","260":"Q I R S"},C:{"1":"1 2 3 4 5 6 7 8 9 R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB fC gC","260":"EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B","516":"dB eB fB gB hB iB jB kB lB mB nB oB","580":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB","2049":"3B 4B 5B 6B Q I"},D:{"1":"1 2 3 4 5 6 7 8 9 T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB","132":"SB TB UB","260":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S"},E:{"1":"H oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC LC","1090":"B C L 7B 8B","2049":"M mC nC"},F:{"1":"zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w x sC tC uC vC 7B ZC wC 8B","132":"0 y z","260":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C","1090":"6C 7C 8C 9C AD BD CD","2049":"DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z YD ZD AC BC CC aD","260":"J QD RD SD TD UD LC VD WD XD"},Q:{"260":"bD"},R:{"1":"cD"},S:{"1":"eD","516":"dD"}},B:5,C:"Web Animations API",D:true}; 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..7cd12af --- /dev/null +++ b/node_modules/caniuse-lite/data/features/web-app-manifest.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N","130":"O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","578":"4B 5B 6B Q I R GC S T U"},D:{"1":"1 2 3 4 5 6 7 8 9 VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC","4":"BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C","4":"RC SC ID BC TC UC VC WC XC YC CC","260":"7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:5,C:"Add to home screen (A2HS)",D:false}; 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..b796355 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/web-bluetooth.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","1025":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","194":"bB cB dB eB fB gB hB iB","706":"jB kB lB","1025":"1 2 3 4 5 6 7 8 9 mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB sC tC uC vC 7B ZC wC 8B","450":"SB TB UB VB","706":"WB XB YB","1025":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD PD","1025":"D"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","1025":"I"},L:{"1025":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1025":"9B"},P:{"1":"0 v w x y z RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD"},Q:{"2":"bD"},R:{"1025":"cD"},S:{"2":"dD eD"}},B:7,C:"Web Bluetooth",D:true}; 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..a3710b4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/web-serial.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P","66":"Q I R S T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B","66":"6B Q I R S T U V W X"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB sC tC uC vC 7B ZC wC 8B","66":"tB uB vB wB xB yB zB 0B 1B 2B 3B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"Web Serial API",D:true}; 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..e757d0e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/web-share.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I","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 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 J GB K E F G A B C L M H N O IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X","130":"P HB v w x y z","1028":"1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","4100":"HC IC JC"},E:{"1":"M H nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C hC KC iC jC kC lC LC 7B","2049":"L 8B mC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C","2049":"9C AD BD CD DD"},H:{"2":"JD"},I:{"2":"DC J KD LD MD ND aC OD","258":"D PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J","258":"QD RD SD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:4,C:"Web Share API",D:true}; 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..01a6bd5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webauthn.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C","226":"L M H N O"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC fC gC","4100":"3 4 5 6 7 8 9 AB BB CB DB EB FB D HC IC JC dC eC","5124":"1 2 pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},D:{"1":"1 2 3 4 5 6 7 8 9 vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB"},E:{"1":"L M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C hC KC iC jC kC lC LC 7B","322":"8B"},F:{"1":"kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB sC tC uC vC 7B ZC wC 8B"},G:{"1":"FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD","578":"BD","2052":"ED","3076":"CD DD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1028":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z BC CC aD","2":"J QD RD SD TD UD LC VD WD XD YD ZD AC"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2":"dD"}},B:2,C:"Web Authentication API",D:true}; 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..beb135e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webcodecs.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c"},C:{"1":"JC dC eC","2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC","132":"RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC","132":"RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z BC CC aD","2":"J QD RD SD TD UD LC VD WD XD YD ZD AC"},Q:{"2":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:5,C:"WebCodecs API",D:true}; 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..c6d53af --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webgl.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"bC","8":"K E F G A","129":"B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","129":"C L M H N O P"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","129":"J GB K E F G A B C L M H N O P HB v w x y"},D:{"1":"1 2 3 4 5 6 7 8 9 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E","129":"0 F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB"},E:{"1":"F G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC","129":"K E iC jC kC"},F:{"1":"0 HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B sC tC uC vC 7B ZC wC","129":"C H N O P 8B"},G:{"1":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC 0C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"1":"A","2":"E"},K:{"1":"C I 8B","2":"A B 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A","129":"B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","129":"dD"}},B:6,C:"WebGL - 3D Canvas graphics",D:true}; 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..3007190 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webgl2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M H N O P HB v w x y z fC gC","194":"YB ZB aB","450":"0 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2242":"bB cB dB eB fB gB"},D:{"1":"1 2 3 4 5 6 7 8 9 mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","578":"ZB aB bB cB dB eB fB gB hB iB jB kB lB"},E:{"1":"H oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A hC KC iC jC kC lC","1090":"B C L M LC 7B 8B mC nC"},F:{"1":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB sC tC uC vC 7B ZC wC 8B"},G:{"1":"GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C","1090":"8C 9C AD BD CD DD ED FD"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z SD TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","2242":"dD"}},B:6,C:"WebGL 2.0",D:true}; 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..ea1402c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webgpu.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB D","2":"C L M H N O P Q","578":"I R S T U V W X Y Z a b c","1602":"1 d e f g h i j k l m n o p q r s t u"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB fC gC","194":"1 2 3 4 5 6 7 8 9 rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q","578":"I R S T U V W X Y Z a b c","1602":"1 d e f g h i j k l m n o p q r s t u","2049":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB D HC IC JC"},E:{"1":"rC","2":"J GB K E F G A B H hC KC iC jC kC lC LC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC","322":"C L M 7B 8B mC nC WC XC YC CC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B sC tC uC vC 7B ZC wC 8B","578":"1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h","2049":"i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC","322":"WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","2049":"I"},L:{"1":"D"},M:{"194":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"1":"0 z","2":"J v w x y QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD","194":"eD"}},B:5,C:"WebGPU",D:true}; 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..c438e2a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webhid.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P","66":"Q I R S T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B","66":"6B Q I R S T U V W X"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB sC tC uC vC 7B ZC wC 8B","66":"uB vB wB xB yB zB 0B 1B 2B 3B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"WebHID API",D:true}; 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..68a72f0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webkit-user-drag.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","132":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"16":"J GB K E F G A B C L M H","132":"0 1 2 3 4 5 6 7 8 9 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"G B C sC tC uC vC 7B ZC wC 8B","132":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","132":"I"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"CSS -webkit-user-drag property",D:true}; 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..11c47ae --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webm.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F bC","520":"G A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","8":"C L","388":"M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","132":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB","132":"K E F G A B C L M H N O P HB v w x y z"},E:{"1":"AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC","8":"J GB KC iC","520":"K E F G A B C jC kC lC LC 7B","1028":"L 8B mC","7172":"M","8196":"H nC oC MC NC 9B pC"},F:{"1":"0 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G sC tC uC","132":"B C H vC 7B ZC wC 8B"},G:{"1":"WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C","1028":"9C AD BD CD DD","3076":"ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC"},H:{"2":"JD"},I:{"1":"D","2":"KD LD","132":"DC J MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","132":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:6,C:"WebM video format",D:true}; 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..26cf208 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webnfc.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M H N O P Q Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","450":"I R S T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","450":"I R S T U V W X"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","450":"vB wB xB yB zB 0B 1B 2B 3B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"257":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:7,C:"Web NFC",D:true}; 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..79d5137 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webp.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O"},C:{"1":"1 2 3 4 5 6 7 8 9 tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","8":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB"},D:{"1":"1 2 3 4 5 6 7 8 9 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB","8":"K E F","132":"G A B C L M H N O P HB v w x","260":"0 y z IB JB KB LB MB NB"},E:{"1":"AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G A B C L hC KC iC jC kC lC LC 7B 8B mC","516":"M H nC oC MC NC 9B pC"},F:{"1":"0 HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G sC tC uC","8":"B vC","132":"7B ZC wC","260":"C H N O P 8B"},G:{"1":"ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD"},H:{"1":"JD"},I:{"1":"D aC OD PD","2":"DC KD LD MD","132":"J ND"},J:{"2":"E A"},K:{"1":"C I 7B ZC 8B","2":"A","132":"B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","8":"dD"}},B:6,C:"WebP image format",D:true}; 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..2948d22 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/websockets.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC fC gC","132":"J GB","292":"K E F G A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","132":"J GB K E F G A B C L M","260":"H"},E:{"1":"E F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC","132":"GB iC","260":"K jC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G sC tC uC vC","132":"B C 7B ZC wC"},G:{"1":"F zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC","132":"aC yC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"A","129":"E"},K:{"1":"I 8B","2":"A","132":"B C 7B ZC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Web Sockets",D:true}; 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..c5105b3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webtransport.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P Q I R S T U V W X Y Z a b c d e f g"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB D HC IC JC dC eC","2":"0 1 2 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z e f","66":"a b c d"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z CC aD","2":"J QD RD SD TD UD LC VD WD XD YD ZD AC BC"},Q:{"2":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:5,C:"WebTransport",D:true}; 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..6c794aa --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webusb.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB","66":"kB lB mB nB oB EC pB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB sC tC uC vC 7B ZC wC 8B","66":"XB YB ZB aB bB cB dB"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z TD UD LC VD WD XD YD ZD AC BC CC aD","2":"J QD RD SD"},Q:{"2":"bD"},R:{"1":"cD"},S:{"2":"dD eD"}},B:7,C:"WebUSB",D:true}; 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..6cab327 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webvr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"1 2 3 4 5 6 7 8 9 C L M I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","66":"Q","257":"H N O P"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB fC gC","129":"1 2 3 4 5 6 7 8 9 lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","194":"kB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","66":"nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","66":"aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"513":"J","516":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:7,C:"WebVR API",D:true}; 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..518d8ff --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webvtt.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"cC DC J GB K E F G A B C L M H N O P HB v w x y fC gC","66":"0 z IB JB KB LB MB","129":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB","257":"1 2 3 4 5 6 7 8 9 lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J GB K E F G A B C L M H N O P HB v w x"},E:{"1":"K E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC iC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC yC zC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC J KD LD MD ND aC"},J:{"1":"A","2":"E"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"129":"dD eD"}},B:4,C:"WebVTT - Web Video Text Tracks",D:true}; 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..60f8266 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webworkers.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"bC","8":"K E F G"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","8":"cC DC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","8":"hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u vC 7B ZC wC 8B","2":"G sC","8":"tC uC"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC"},H:{"2":"JD"},I:{"1":"D KD OD PD","2":"DC J LD MD ND aC"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","8":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Web Workers",D:true}; 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..7b0947b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webxr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"2":"C L M H N O P","132":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B fC gC","322":"1 2 3 4 5 6 7 8 9 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC"},D:{"2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB","66":"tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B","132":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"2":"J GB K E F G A B C hC KC iC jC kC lC LC 7B 8B","578":"L M H mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB sC tC uC vC 7B ZC wC 8B","66":"iB jB kB lB mB nB oB pB qB rB sB tB","132":"uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"2":"DC J D KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C 7B ZC 8B","132":"I"},L:{"132":"D"},M:{"322":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"J QD RD SD TD UD LC VD","132":"0 v w x y z WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD","322":"eD"}},B:4,C:"WebXR Device API",D:true}; 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..858709b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/will-change.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB fC gC","194":"LB MB NB OB PB QB RB"},D:{"1":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB"},E:{"1":"A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC"},F:{"1":"0 z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w x y sC tC uC vC 7B ZC wC 8B"},G:{"1":"3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS will-change property",D:true}; 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..875321a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/woff.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC gC","2":"cC DC fC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"J"},E:{"1":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB hC KC"},F:{"1":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 7B ZC wC 8B","2":"G B sC tC uC vC"},G:{"1":"F yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC"},H:{"2":"JD"},I:{"1":"D OD PD","2":"DC KD LD MD ND aC","130":"J"},J:{"1":"E A"},K:{"1":"B C I 7B ZC 8B","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"WOFF - Web Open Font Format",D:true}; 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..291b452 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/woff2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","2":"C L"},C:{"1":"1 2 3 4 5 6 7 8 9 VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"0 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","2":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB"},E:{"1":"C L M H 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J GB K E F G hC KC iC jC kC lC","132":"A B LC 7B"},F:{"1":"0 y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C H N O P HB v w x sC tC uC vC 7B ZC wC 8B"},G:{"1":"4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"F KC xC aC yC zC 0C 1C 2C 3C"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:2,C:"WOFF 2.0 - Web Open Font Format",D:true}; 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..34d4c8c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/word-break.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC J GB K E F G A B C L M fC gC"},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 EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","4":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},E:{"1":"G A B C L M H lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","4":"J GB K E F hC KC iC jC kC"},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 oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B C sC tC uC vC 7B ZC wC 8B","4":"0 H N O P HB v w x y z IB JB KB LB MB"},G:{"1":"2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","4":"F KC xC aC yC zC 0C 1C"},H:{"2":"JD"},I:{"1":"D","4":"DC J KD LD MD ND aC OD PD"},J:{"4":"E A"},K:{"1":"I","2":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"CSS3 word-break",D:true}; 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..8b3db1c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wordwrap.js @@ -0,0 +1 @@ +module.exports={A:{A:{"4":"K E F G A B bC"},B:{"1":"1 2 3 4 5 6 7 8 9 P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","4":"C L M H N O"},C:{"1":"1 2 3 4 5 6 7 8 9 fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC","4":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","4":"J GB K E F G A B C L M H N O P HB v w x"},E:{"1":"E F G A B C L M H jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","4":"J GB K hC KC iC"},F:{"1":"0 H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u 8B","2":"G sC tC","4":"B C uC vC 7B ZC wC"},G:{"1":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","4":"KC xC aC yC zC"},H:{"4":"JD"},I:{"1":"D OD PD","4":"DC J KD LD MD ND aC"},J:{"1":"A","4":"E"},K:{"1":"I","4":"A B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"4":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"eD","4":"dD"}},B:4,C:"CSS3 Overflow-wrap",D:true}; 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..226ebcd --- /dev/null +++ b/node_modules/caniuse-lite/data/features/x-doc-messaging.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E bC","132":"F G","260":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC","2":"cC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"hC KC"},F:{"1":"0 B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B","2":"G"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"4":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"Cross-document messaging",D:true}; 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..84c9dfd --- /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":"K E bC"},B:{"1":"C L M H N O P","4":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB","4":"1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","16":"cC DC fC gC"},D:{"4":"1 2 3 4 5 6 7 8 9 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"0 J GB K E F G A B C L M H N O P HB v w x y z"},E:{"4":"K E F G A B C L M H iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","16":"J GB hC KC"},F:{"4":"0 C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u wC 8B","16":"G B sC tC uC vC 7B ZC"},G:{"4":"F 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","16":"KC xC aC yC zC"},H:{"2":"JD"},I:{"4":"J D ND aC OD PD","16":"DC KD LD MD"},J:{"4":"E A"},K:{"4":"I 8B","16":"A B C 7B ZC"},L:{"4":"D"},M:{"4":"D"},N:{"1":"A B"},O:{"4":"9B"},P:{"4":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"4":"bD"},R:{"4":"cD"},S:{"1":"dD","4":"eD"}},B:6,C:"X-Frame-Options HTTP header",D:true}; 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..f0bd7ff --- /dev/null +++ b/node_modules/caniuse-lite/data/features/xhr2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G bC","1156":"A B"},B:{"1":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D","1028":"C L M H N O P"},C:{"1":"1 2 3 4 5 6 7 8 9 dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","2":"cC DC","1028":"0 C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB","1284":"A B","1412":"K E F G","1924":"J GB fC gC"},D:{"1":"1 2 3 4 5 6 7 8 9 gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","16":"J GB K","1028":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB","1156":"LB MB","1412":"0 E F G A B C L M H N O P HB v w x y z IB JB KB"},E:{"1":"C L M H 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","2":"J hC KC","1028":"F G A B kC lC LC","1156":"E jC","1412":"GB K iC"},F:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","2":"G B sC tC uC vC 7B ZC wC","132":"H N O","1028":"0 C P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB 8B"},G:{"1":"6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","2":"KC xC aC","1028":"F 1C 2C 3C 4C 5C","1156":"0C","1412":"yC zC"},H:{"2":"JD"},I:{"1":"D","2":"KD LD MD","1028":"PD","1412":"OD","1924":"DC J ND aC"},J:{"1156":"A","1412":"E"},K:{"1":"I","2":"A B 7B ZC","1028":"C 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1156":"A B"},O:{"1":"9B"},P:{"1":"0 v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD","1028":"J"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"XMLHttpRequest advanced features",D:true}; 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..789e73e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/xhtml.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"K E F bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"1":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"1":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"1":"JD"},I:{"1":"DC J D KD LD MD ND aC OD PD"},J:{"1":"E A"},K:{"1":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:1,C:"XHTML served as application/xhtml+xml",D:true}; 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..a4547fb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/xhtmlsmil.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"G A B bC","4":"K E F"},B:{"2":"C L M H N O P","8":"1 2 3 4 5 6 7 8 9 Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"8":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC fC gC"},D:{"8":"0 1 2 3 4 5 6 7 8 9 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC"},E:{"8":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"8":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u sC tC uC vC 7B ZC wC 8B"},G:{"8":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"8":"JD"},I:{"8":"DC J D KD LD MD ND aC OD PD"},J:{"8":"E A"},K:{"8":"A B C I 7B ZC 8B"},L:{"8":"D"},M:{"8":"D"},N:{"2":"A B"},O:{"8":"9B"},P:{"8":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"8":"bD"},R:{"8":"cD"},S:{"8":"dD eD"}},B:7,C:"XHTML+SMIL animation",D:true}; 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..3723447 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/xml-serializer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","260":"K E F G bC"},B:{"1":"1 2 3 4 5 6 7 8 9 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC dC eC","132":"B","260":"cC DC J GB K E fC gC","516":"F G A"},D:{"1":"1 2 3 4 5 6 7 8 9 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB FB D HC IC JC","132":"0 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB"},E:{"1":"F G A B C L M H kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC","132":"J GB K E hC KC iC jC"},F:{"1":"0 P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","16":"G sC","132":"B C H N O tC uC vC 7B ZC wC 8B"},G:{"1":"F 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC","132":"KC xC aC yC zC 0C"},H:{"132":"JD"},I:{"1":"D OD PD","132":"DC J KD LD MD ND aC"},J:{"132":"E A"},K:{"1":"I","16":"A","132":"B C 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"9B"},P:{"1":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"1":"bD"},R:{"1":"cD"},S:{"1":"dD eD"}},B:4,C:"DOM Parsing and Serialization",D:true}; diff --git a/node_modules/caniuse-lite/data/features/zstd.js b/node_modules/caniuse-lite/data/features/zstd.js new file mode 100644 index 0000000..a65e24c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/zstd.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"K E F G A B bC"},B:{"1":"CB DB EB FB D","2":"1 2 3 4 5 6 C L M H N O P Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","194":"7 8 9 AB BB"},C:{"1":"FB D HC IC JC dC eC","2":"0 1 2 3 4 5 6 7 8 9 cC DC J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u AB BB CB DB EB fC gC"},D:{"1":"CB DB EB FB D HC IC JC","2":"0 1 2 3 4 5 6 J GB K E F G A B C L M H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB EC pB FC qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u","194":"7 8 9 AB BB"},E:{"2":"J GB K E F G A B C L M H hC KC iC jC kC lC LC 7B 8B mC nC oC MC NC 9B pC AC OC PC QC RC SC qC BC TC UC VC WC XC YC CC rC"},F:{"1":"s t u","2":"0 G B C H N O P HB v w x y z IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB 0B 1B 2B 3B 4B 5B 6B Q I R GC S T U V W X Y Z a b c d e f g h i j k l m n o p q r sC tC uC vC 7B ZC wC 8B"},G:{"2":"F KC xC aC yC zC 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AD BD CD DD ED FD GD MC NC 9B HD AC OC PC QC RC SC ID BC TC UC VC WC XC YC CC"},H:{"2":"JD"},I:{"1":"D","2":"DC J KD LD MD ND aC OD PD"},J:{"2":"E A"},K:{"2":"A B C I 7B ZC 8B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"9B"},P:{"2":"0 J v w x y z QD RD SD TD UD LC VD WD XD YD ZD AC BC CC aD"},Q:{"2":"bD"},R:{"2":"cD"},S:{"2":"dD eD"}},B:6,C:"zstd (Zstandard) content-encoding",D:true}; 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..1cf57eb --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AD.js @@ -0,0 +1 @@ +module.exports={C:{"2":0.00388,"3":0.00776,"4":0.00388,"5":0.00388,"9":0.00388,"13":0.00388,"15":0.00388,"17":0.00388,"23":0.00388,"25":0.00388,"26":0.00388,"29":0.00388,"37":0.00388,"38":0.00776,"39":0.00388,"40":0.00776,"43":0.00388,"48":0.00776,"52":0.00388,"78":0.00388,"103":0.00776,"114":0.00388,"115":0.1358,"122":0.00388,"123":0.00388,"124":0.01552,"125":0.01552,"126":0.02328,"127":1.11744,"128":2.55304,_:"6 7 8 10 11 12 14 16 18 19 20 21 22 24 27 28 30 31 32 33 34 35 36 41 42 44 45 46 47 49 50 51 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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 112 113 116 117 118 119 120 121 129 130 131","3.5":0.00388,"3.6":0.01164},D:{"21":0.00388,"22":0.00388,"23":0.00388,"29":0.00388,"30":0.00388,"31":0.00776,"32":0.00388,"33":0.00388,"34":0.00388,"37":0.00776,"38":0.01164,"39":0.00388,"40":0.00776,"41":0.00776,"42":0.00776,"43":0.01164,"44":0.0194,"45":0.01164,"46":0.01552,"47":0.0194,"51":0.01552,"58":0.00388,"70":0.00388,"76":0.00388,"78":0.00388,"79":0.00776,"81":0.0582,"87":0.05432,"90":0.01552,"91":0.00388,"92":0.02328,"94":0.00776,"97":0.00388,"98":0.02716,"99":0.01552,"100":0.0194,"103":0.22892,"109":0.41904,"112":0.00776,"113":0.00388,"114":0.04268,"115":0.00776,"116":0.63244,"117":0.06984,"118":0.00776,"119":0.01552,"120":0.00776,"121":0.00776,"122":0.06208,"123":0.05044,"124":0.21728,"125":0.679,"126":13.02516,"127":1.35412,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 24 25 26 27 28 35 36 48 49 50 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 77 80 83 84 85 86 88 89 93 95 96 101 102 104 105 106 107 108 110 111 128 129 130"},F:{"20":0.00388,"30":0.00388,"31":0.00388,"83":0.00776,"95":0.00388,"106":0.00388,"107":0.00388,"109":0.23668,"110":0.00388,"111":0.41128,_:"9 11 12 15 16 17 18 19 21 22 23 24 25 26 27 28 29 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.00388},B:{"12":0.00388,"87":0.00388,"98":0.00388,"100":0.00388,"108":0.00388,"109":0.0194,"118":0.16684,"119":0.00388,"120":0.0194,"121":0.00388,"122":0.00388,"123":0.00388,"124":0.0194,"125":0.07372,"126":2.33964,"127":0.2716,_:"13 14 15 16 17 18 79 80 81 83 84 85 86 88 89 90 91 92 93 94 95 96 97 99 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117"},E:{"4":0.00388,"7":0.00388,"8":0.00388,"9":0.0194,"14":0.02716,_:"0 5 6 10 11 12 13 15 3.1 3.2 7.1 9.1 10.1 11.1","5.1":0.00388,"6.1":0.00388,"12.1":0.00388,"13.1":0.05432,"14.1":0.08148,"15.1":0.03492,"15.2-15.3":0.08536,"15.4":0.04268,"15.5":0.07372,"15.6":0.63244,"16.0":0.31428,"16.1":0.13192,"16.2":0.17848,"16.3":0.32592,"16.4":0.05432,"16.5":0.21728,"16.6":1.58304,"17.0":0.08148,"17.1":0.44232,"17.2":0.18236,"17.3":0.27936,"17.4":0.56648,"17.5":6.984,"17.6":0.13192,"18.0":0.02716},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00768,"5.0-5.1":0.00384,"6.0-6.1":0.02304,"7.0-7.1":0.02304,"8.1-8.4":0,"9.0-9.2":0.0192,"9.3":0.07679,"10.0-10.2":0.01536,"10.3":0.13439,"11.0-11.2":0.35325,"11.3-11.4":0.0384,"12.0-12.1":0.02688,"12.2-12.5":0.49532,"13.0-13.1":0.00768,"13.2":0.08063,"13.3":0.02688,"13.4-13.7":0.11519,"14.0-14.4":0.26494,"14.5-14.8":0.2995,"15.0-15.1":0.14975,"15.2-15.3":0.16127,"15.4":0.18431,"15.5":0.2227,"15.6-15.8":2.04272,"16.0":0.41085,"16.1":0.87161,"16.2":0.43773,"16.3":0.73338,"16.4":0.17279,"16.5":0.31102,"16.6-16.7":2.54956,"17.0":0.23038,"17.1":0.37245,"17.2":0.36093,"17.3":0.5414,"17.4":1.35542,"17.5":24.81984,"17.6":0.19199,"18.0":0.25342},P:{"4":0.03133,"21":0.03133,"22":0.02088,"23":0.04177,"25":1.19035,_:"20 24 5.0-5.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0","6.2-6.4":0.01044,"17.0":0.01044,"19.0":0.02088},I:{"0":0.18299,"3":0,"4":0.00002,"2.1":0,"2.2":0.00004,"2.3":0,"4.1":0.00011,"4.2-4.3":0.00007,"4.4":0,"4.4.3-4.4.4":0.00031},K:{"0":0.19587,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.00393,"7":0.0118,"8":0.1337,"9":0.02359,"10":0.03146,"11":0.08258,_:"5.5"},S:{"2.5":0.00612,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":20.61784},R:{_:"0"},M:{"0":0.44683},Q:{_:"14.9"},O:{"0":0.02448},H:{"0":0}}; 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..eb10545 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AE.js @@ -0,0 +1 @@ +module.exports={C:{"3":0.00214,"34":0.00214,"52":0.00428,"75":0.00214,"77":0.00214,"99":0.00214,"102":0.00214,"105":0.00214,"108":0.00214,"109":0.00428,"110":0.00214,"115":0.05559,"119":0.00214,"122":0.00214,"123":0.00214,"124":0.00214,"125":0.00428,"126":0.01283,"127":0.17745,"128":0.26725,"129":0.01283,"130":0.00855,_:"2 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 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 100 101 103 104 106 107 111 112 113 114 116 117 118 120 121 131 3.5 3.6"},D:{"26":0.00214,"38":0.00641,"41":0.00214,"45":0.00214,"46":0.00214,"49":0.00214,"51":0.00214,"52":0.06628,"56":0.00428,"58":0.02352,"65":0.00214,"68":0.00214,"69":0.00214,"70":0.00214,"71":0.00214,"72":0.02138,"73":0.00428,"75":0.00428,"76":0.0171,"78":0.00428,"79":0.01924,"80":0.00214,"81":0.00428,"83":0.01069,"84":0.00214,"85":0.00428,"86":0.01069,"87":1.20583,"88":0.02993,"89":0.01069,"90":0.00428,"91":0.01069,"92":0.00641,"93":0.02566,"94":0.01069,"95":0.00641,"96":0.00214,"97":0.00214,"98":0.00855,"99":0.01283,"100":0.00428,"101":0.00214,"102":0.00428,"103":0.11973,"104":0.01497,"105":0.00641,"106":0.01283,"107":0.01924,"108":0.02566,"109":0.54091,"110":0.02566,"111":0.01924,"112":0.01924,"113":0.05131,"114":0.06628,"115":0.00428,"116":0.07697,"117":0.00855,"118":0.01283,"119":0.01924,"120":0.07055,"121":0.03848,"122":0.07483,"123":0.04917,"124":0.1967,"125":0.32498,"126":10.13198,"127":1.18873,"128":0.01283,"129":0.00214,_:"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 34 35 36 37 39 40 42 43 44 47 48 50 53 54 55 57 59 60 61 62 63 64 66 67 74 77 130"},F:{"46":0.00641,"83":0.04917,"89":0.00214,"93":0.00214,"95":0.00641,"106":0.00214,"107":0.00214,"108":0.00214,"109":0.124,"110":0.01283,"111":0.1689,_:"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 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 84 85 86 87 88 90 91 92 94 96 97 98 99 100 101 102 103 104 105 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00214,"92":0.01283,"100":0.00214,"105":0.00214,"107":0.00428,"108":0.00214,"109":0.0171,"110":0.00214,"111":0.00428,"113":0.00214,"114":0.00428,"115":0.00214,"116":0.00214,"118":0.00214,"119":0.00214,"120":0.00428,"121":0.00428,"122":0.00855,"123":0.00428,"124":0.0171,"125":0.07911,"126":1.79164,"127":0.23732,_:"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 101 102 103 104 106 112 117"},E:{"4":0.00214,"9":0.00428,"13":0.00214,"14":0.00855,"15":0.00214,_:"0 5 6 7 8 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00214,"13.1":0.0171,"14.1":0.03848,"15.1":0.00855,"15.2-15.3":0.00214,"15.4":0.01283,"15.5":0.01069,"15.6":0.10476,"16.0":0.01069,"16.1":0.01924,"16.2":0.01497,"16.3":0.07269,"16.4":0.01069,"16.5":0.02138,"16.6":0.10904,"17.0":0.0171,"17.1":0.02566,"17.2":0.01924,"17.3":0.02566,"17.4":0.0898,"17.5":0.80603,"17.6":0.00641,"18.0":0.01497},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00182,"5.0-5.1":0.00091,"6.0-6.1":0.00546,"7.0-7.1":0.00546,"8.1-8.4":0,"9.0-9.2":0.00455,"9.3":0.01819,"10.0-10.2":0.00364,"10.3":0.03184,"11.0-11.2":0.08369,"11.3-11.4":0.0091,"12.0-12.1":0.00637,"12.2-12.5":0.11734,"13.0-13.1":0.00182,"13.2":0.0191,"13.3":0.00637,"13.4-13.7":0.02729,"14.0-14.4":0.06276,"14.5-14.8":0.07095,"15.0-15.1":0.03548,"15.2-15.3":0.0382,"15.4":0.04366,"15.5":0.05276,"15.6-15.8":0.48392,"16.0":0.09733,"16.1":0.20649,"16.2":0.1037,"16.3":0.17374,"16.4":0.04093,"16.5":0.07368,"16.6-16.7":0.604,"17.0":0.05458,"17.1":0.08823,"17.2":0.08551,"17.3":0.12826,"17.4":0.3211,"17.5":5.87987,"17.6":0.04548,"18.0":0.06004},P:{"4":0.05068,"20":0.01014,"21":0.03041,"22":0.06081,"23":0.04054,"24":0.05068,"25":1.07435,_:"5.0-5.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0","6.2-6.4":0.01014,"7.2-7.4":0.03041,"11.1-11.2":0.01014,"17.0":0.01014,"18.0":0.01014,"19.0":0.01014},I:{"0":0.10185,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00006,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00017},K:{"0":1.42302,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01397,"9":0.00233,"10":0.00233,"11":0.27001,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":64.9257},R:{_:"0"},M:{"0":0.11793},Q:{"14.9":0.00786},O:{"0":2.61018},H:{"0":0}}; 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..b0ab422 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AF.js @@ -0,0 +1 @@ +module.exports={C:{"38":0.00356,"48":0.00119,"52":0.00119,"56":0.00119,"57":0.00119,"58":0.00119,"65":0.00119,"72":0.00474,"74":0.00119,"76":0.00119,"94":0.00119,"99":0.00119,"100":0.00119,"106":0.00356,"107":0.00119,"109":0.00119,"110":0.00119,"111":0.00237,"112":0.00119,"113":0.00119,"115":0.12572,"116":0.00119,"120":0.00712,"121":0.00119,"122":0.00119,"124":0.00237,"125":0.00237,"126":0.0083,"127":0.11148,"128":0.16723,"129":0.00119,_:"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 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 59 60 61 62 63 64 66 67 68 69 70 71 73 75 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 101 102 103 104 105 108 114 117 118 119 123 130 131 3.5 3.6"},D:{"11":0.00119,"31":0.00119,"34":0.00119,"36":0.00237,"38":0.00119,"39":0.00119,"42":0.00119,"43":0.00119,"44":0.00119,"47":0.00119,"48":0.00119,"49":0.00119,"50":0.00237,"51":0.00119,"52":0.00237,"53":0.00119,"54":0.00237,"55":0.00237,"56":0.00119,"57":0.00119,"59":0.00237,"61":0.00237,"62":0.0083,"63":0.00356,"64":0.00119,"65":0.00119,"66":0.00119,"67":0.00119,"68":0.00119,"69":0.00119,"70":0.00593,"71":0.0083,"72":0.00356,"73":0.00356,"74":0.00356,"75":0.00119,"76":0.00356,"77":0.00474,"78":0.02016,"79":0.02135,"80":0.01067,"81":0.00356,"83":0.01067,"84":0.00356,"85":0.00119,"86":0.01067,"87":0.00712,"88":0.00119,"89":0.00474,"90":0.00237,"91":0.00237,"92":0.00474,"93":0.00119,"94":0.00593,"95":0.00356,"96":0.00949,"97":0.00119,"98":0.00237,"99":0.02609,"101":0.00119,"102":0.00356,"103":0.01423,"104":0.00237,"105":0.0083,"106":0.0083,"107":0.02016,"108":0.01067,"109":1.33425,"110":0.00237,"111":0.00712,"112":0.01423,"113":0.00237,"114":0.00593,"115":0.01067,"116":0.00949,"117":0.00474,"118":0.0083,"119":0.00949,"120":0.02135,"121":0.01067,"122":0.02609,"123":0.03321,"124":0.06404,"125":0.10318,"126":3.82011,"127":0.49338,"128":0.00356,_:"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 32 33 35 37 40 41 45 46 58 60 100 129 130"},F:{"18":0.00119,"64":0.00119,"73":0.00119,"79":0.01067,"81":0.00119,"83":0.02491,"86":0.00119,"93":0.00237,"95":0.04151,"101":0.00119,"102":0.00119,"108":0.00119,"109":0.0166,"110":0.00356,"111":0.10911,_:"9 11 12 15 16 17 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 65 66 67 68 69 70 71 72 74 75 76 77 78 80 82 84 85 87 88 89 90 91 92 94 96 97 98 99 100 103 104 105 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00237,"13":0.00237,"14":0.00593,"15":0.00356,"16":0.02016,"17":0.00356,"18":0.05574,"81":0.00237,"83":0.00119,"84":0.00949,"88":0.00119,"89":0.00949,"90":0.02016,"92":0.11623,"93":0.00119,"100":0.02135,"104":0.00119,"107":0.00119,"108":0.00237,"109":0.04151,"110":0.00119,"111":0.00237,"114":0.00356,"115":0.00237,"116":0.00119,"117":0.00237,"118":0.00237,"119":0.00356,"120":0.00593,"121":0.0166,"122":0.00712,"123":0.01067,"124":0.02135,"125":0.03202,"126":0.74362,"127":0.10911,_:"79 80 85 86 87 91 94 95 96 97 98 99 101 102 103 105 106 112 113"},E:{"13":0.00237,_:"0 4 5 6 7 8 9 10 11 12 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.00119,"14.1":0.00119,"15.1":0.00712,"15.2-15.3":0.00712,"15.4":0.00593,"15.5":0.0166,"15.6":0.07828,"16.0":0.00119,"16.1":0.01067,"16.2":0.02016,"16.3":0.01542,"16.4":0.0166,"16.5":0.0759,"16.6":0.09014,"17.0":0.01067,"17.1":0.0427,"17.2":0.02609,"17.3":0.03084,"17.4":0.14351,"17.5":0.80411,"17.6":0.0083,"18.0":0.01305},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00183,"5.0-5.1":0.00091,"6.0-6.1":0.00548,"7.0-7.1":0.00548,"8.1-8.4":0,"9.0-9.2":0.00457,"9.3":0.01828,"10.0-10.2":0.00366,"10.3":0.03199,"11.0-11.2":0.0841,"11.3-11.4":0.00914,"12.0-12.1":0.0064,"12.2-12.5":0.11792,"13.0-13.1":0.00183,"13.2":0.0192,"13.3":0.0064,"13.4-13.7":0.02742,"14.0-14.4":0.06307,"14.5-14.8":0.0713,"15.0-15.1":0.03565,"15.2-15.3":0.03839,"15.4":0.04388,"15.5":0.05302,"15.6-15.8":0.48631,"16.0":0.09781,"16.1":0.2075,"16.2":0.10421,"16.3":0.1746,"16.4":0.04114,"16.5":0.07404,"16.6-16.7":0.60697,"17.0":0.05485,"17.1":0.08867,"17.2":0.08593,"17.3":0.12889,"17.4":0.32268,"17.5":5.90884,"17.6":0.04571,"18.0":0.06033},P:{"4":0.11067,"20":0.03018,"21":0.04024,"22":0.07042,"23":0.12073,"24":0.11067,"25":0.60364,"5.0-5.4":0.04024,"6.2-6.4":0.04024,"7.2-7.4":0.09055,"8.2":0.02012,"9.2":0.22133,_:"10.1 12.0","11.1-11.2":0.04024,"13.0":0.02012,"14.0":0.02012,"15.0":0.01006,"16.0":0.03018,"17.0":0.02012,"18.0":0.03018,"19.0":0.06036},I:{"0":0.15811,"3":0,"4":0.00002,"2.1":0,"2.2":0.00003,"2.3":0,"4.1":0.0001,"4.2-4.3":0.00006,"4.4":0,"4.4.3-4.4.4":0.00027},K:{"0":0.40838,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00474,"9":0.00119,"11":0.09132,_:"6 7 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":77.91508},R:{_:"0"},M:{"0":0.04408},Q:{_:"14.9"},O:{"0":0.44957},H:{"0":0.05}}; 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..605cc8a --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AG.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00316,"88":0.00316,"89":0.00316,"97":0.00316,"100":0.00316,"115":0.03163,"124":0.05061,"126":0.0253,"127":0.22774,"128":0.32895,_:"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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 90 91 92 93 94 95 96 98 99 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 125 129 130 131 3.5 3.6"},D:{"34":0.00949,"38":0.00316,"65":0.00316,"74":0.00316,"76":0.00316,"79":0.00949,"81":0.00949,"83":0.00316,"85":0.00316,"87":0.03163,"88":0.09173,"91":0.05061,"93":0.00949,"94":0.07591,"97":0.01582,"98":0.00316,"103":0.11387,"105":0.00316,"108":0.00633,"109":0.80973,"110":0.03796,"111":0.00316,"115":0.00316,"116":0.05693,"117":0.00316,"119":0.01265,"120":0.02214,"121":0.01898,"122":0.05061,"123":0.08224,"124":0.22774,"125":0.33528,"126":13.24664,"127":1.34428,"128":0.00316,_:"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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 75 77 78 80 84 86 89 90 92 95 96 99 100 101 102 104 106 107 112 113 114 118 129 130"},F:{"83":0.39854,"102":0.00633,"108":0.00316,"109":0.33844,"111":0.17397,_:"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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00316,"100":0.00316,"104":0.00633,"105":0.00316,"109":0.06326,"115":0.00633,"116":0.01265,"119":0.00316,"120":0.02214,"121":0.00316,"123":0.01582,"124":0.01265,"125":0.16131,"126":5.35812,"127":0.70219,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 106 107 108 110 111 112 113 114 117 118 122"},E:{"13":0.00316,"14":0.02847,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.4","13.1":0.02214,"14.1":0.04112,"15.1":0.00316,"15.2-15.3":0.00316,"15.5":0.02214,"15.6":0.21192,"16.0":0.17713,"16.1":0.0253,"16.2":0.07591,"16.3":0.18029,"16.4":0.0253,"16.5":0.02214,"16.6":0.22141,"17.0":0.03479,"17.1":0.03479,"17.2":0.04745,"17.3":0.03163,"17.4":0.13285,"17.5":1.77128,"17.6":0.01265,"18.0":0.01582},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00471,"5.0-5.1":0.00236,"6.0-6.1":0.01414,"7.0-7.1":0.01414,"8.1-8.4":0,"9.0-9.2":0.01179,"9.3":0.04714,"10.0-10.2":0.00943,"10.3":0.0825,"11.0-11.2":0.21685,"11.3-11.4":0.02357,"12.0-12.1":0.0165,"12.2-12.5":0.30406,"13.0-13.1":0.00471,"13.2":0.0495,"13.3":0.0165,"13.4-13.7":0.07071,"14.0-14.4":0.16264,"14.5-14.8":0.18385,"15.0-15.1":0.09193,"15.2-15.3":0.099,"15.4":0.11314,"15.5":0.13671,"15.6-15.8":1.25396,"16.0":0.25221,"16.1":0.53505,"16.2":0.2687,"16.3":0.4502,"16.4":0.10607,"16.5":0.19092,"16.6-16.7":1.56509,"17.0":0.14142,"17.1":0.22863,"17.2":0.22156,"17.3":0.33235,"17.4":0.83204,"17.5":15.23603,"17.6":0.11785,"18.0":0.15557},P:{"4":0.03234,"20":0.02156,"21":0.02156,"22":0.07545,"23":0.03234,"24":0.05389,"25":4.26848,"5.0-5.4":0.01078,"6.2-6.4":0.07545,"7.2-7.4":0.17246,_:"8.2 9.2 10.1 13.0 15.0 17.0 18.0","11.1-11.2":0.03234,"12.0":0.01078,"14.0":0.01078,"16.0":0.01078,"19.0":0.01078},I:{"0":0.02044,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.22565,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.00633,"11":0.00949,_:"6 7 8 9 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":42.2495},R:{_:"0"},M:{"0":0.07522},Q:{_:"14.9"},O:{"0":0.02051},H:{"0":0}}; 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..5ddd69b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AI.js @@ -0,0 +1 @@ +module.exports={C:{"105":0.02613,"107":0.08213,"115":0.13066,"123":0.0112,"126":0.03733,"127":0.3845,"128":0.61595,_:"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 106 108 109 110 111 112 113 114 116 117 118 119 120 121 122 124 125 129 130 131 3.5 3.6"},D:{"75":0.06346,"76":0.01867,"78":0.0224,"83":0.02986,"89":0.27251,"90":0.00373,"98":0.07093,"99":0.08586,"101":0.06346,"103":0.0448,"104":0.01867,"105":0.00747,"106":0.13812,"107":0.18292,"108":0.36957,"109":1.00791,"110":0.01493,"111":0.01867,"112":0.00373,"113":0.00373,"114":0.0448,"115":0.00373,"116":0.09706,"117":0.01493,"118":0.01493,"119":0.056,"120":0.06346,"121":0.05226,"122":0.16052,"123":0.52262,"124":0.19038,"125":0.23518,"126":10.67265,"127":1.4596,"128":0.02613,"129":0.00373,_:"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 77 79 80 81 84 85 86 87 88 91 92 93 94 95 96 97 100 102 130"},F:{"109":0.07466,"111":0.02986,_:"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 99 100 101 102 103 104 105 106 107 108 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.02986,"101":0.00373,"103":0.04853,"105":0.01493,"108":0.00747,"109":0.00373,"111":0.00373,"112":0.00373,"113":0.03733,"114":0.00373,"119":0.00747,"120":0.02613,"121":0.01493,"122":0.06719,"123":0.00747,"124":0.0112,"125":0.26504,"126":3.24024,"127":0.26131,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 102 104 106 107 110 115 116 117 118"},E:{_:"0 4 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":0.01493,"14.1":0.02986,"15.1":0.04853,"15.2-15.3":0.0336,"15.4":0.01493,"15.5":0.02613,"15.6":0.18665,"16.0":0.10452,"16.1":0.12692,"16.2":0.19785,"16.3":0.27624,"16.4":0.08959,"16.5":0.20905,"16.6":1.12363,"17.0":0.02613,"17.1":0.25011,"17.2":0.26878,"17.3":0.14185,"17.4":0.54129,"17.5":7.36521,"17.6":0.0224,"18.0":0.0112},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00723,"5.0-5.1":0.00361,"6.0-6.1":0.02169,"7.0-7.1":0.02169,"8.1-8.4":0,"9.0-9.2":0.01807,"9.3":0.0723,"10.0-10.2":0.01446,"10.3":0.12652,"11.0-11.2":0.33256,"11.3-11.4":0.03615,"12.0-12.1":0.0253,"12.2-12.5":0.46631,"13.0-13.1":0.00723,"13.2":0.07591,"13.3":0.0253,"13.4-13.7":0.10844,"14.0-14.4":0.24942,"14.5-14.8":0.28195,"15.0-15.1":0.14098,"15.2-15.3":0.15182,"15.4":0.17351,"15.5":0.20966,"15.6-15.8":1.92308,"16.0":0.38678,"16.1":0.82056,"16.2":0.41209,"16.3":0.69043,"16.4":0.16267,"16.5":0.2928,"16.6-16.7":2.40023,"17.0":0.21689,"17.1":0.35064,"17.2":0.33979,"17.3":0.50969,"17.4":1.27603,"17.5":23.3661,"17.6":0.18074,"18.0":0.23858},P:{"4":0.13906,"22":0.05348,"23":0.02139,"24":0.02139,"25":0.96269,_:"20 21 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 18.0","5.0-5.4":0.0107,"7.2-7.4":0.0107,"13.0":0.0107,"17.0":0.13906,"19.0":0.0107},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":0.06267,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.36583,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":26.24262},R:{_:"0"},M:{"0":0.50763},Q:{"14.9":0.10654},O:{"0":0.28828},H:{"0":0}}; 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..751c650 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AL.js @@ -0,0 +1 @@ +module.exports={C:{"2":0.00178,"3":0.00178,"4":0.00356,"5":0.00178,"11":0.00178,"12":0.00178,"20":0.00178,"21":0.00178,"23":0.00178,"24":0.00178,"25":0.00178,"27":0.00178,"29":0.00178,"31":0.00178,"34":0.00178,"35":0.00178,"36":0.00178,"37":0.00178,"38":0.00178,"39":0.00178,"40":0.00535,"41":0.00178,"48":0.00178,"52":0.00178,"78":0.00178,"101":0.00356,"102":0.00178,"103":0.01247,"107":0.00356,"108":0.00535,"110":0.00178,"111":0.00178,"115":0.10514,"120":0.00178,"121":0.00178,"122":0.00178,"123":0.00356,"124":0.00178,"125":0.01247,"126":0.01247,"127":0.22631,"128":0.40986,"129":0.00535,"130":0.00178,_:"6 7 8 9 10 13 14 15 16 17 18 19 22 26 28 30 32 33 42 43 44 45 46 47 49 50 51 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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 104 105 106 109 112 113 114 116 117 118 119 131","3.5":0.00178,"3.6":0.00535},D:{"10":0.00178,"11":0.00178,"20":0.00178,"21":0.00178,"27":0.00178,"28":0.00178,"30":0.00178,"31":0.00356,"32":0.00178,"33":0.00178,"34":0.00178,"35":0.00178,"36":0.00356,"37":0.00356,"38":0.00178,"39":0.00535,"40":0.00535,"41":0.00713,"42":0.00356,"43":0.01069,"44":0.01069,"45":0.01247,"46":0.02495,"47":0.00891,"49":0.15147,"51":0.05168,"52":0.00356,"56":0.00178,"63":0.00178,"65":0.00178,"70":0.02138,"71":0.00178,"73":0.00356,"74":0.00178,"75":0.00356,"76":0.00178,"79":0.04811,"80":0.00178,"81":0.00178,"83":0.0196,"85":0.00178,"86":0.00535,"87":0.01604,"88":0.00356,"89":0.01426,"90":0.00356,"91":0.00713,"93":0.00535,"94":0.00356,"95":0.00178,"97":0.00356,"98":0.00713,"99":0.00356,"100":0.00356,"102":0.00356,"103":0.00891,"104":0.03208,"105":0.00178,"106":0.01604,"107":0.0196,"108":0.0196,"109":1.38105,"110":0.00178,"111":0.00891,"112":0.00713,"113":0.00178,"114":0.00713,"115":0.00356,"116":0.0695,"117":0.00178,"118":0.00356,"119":0.01069,"120":0.38491,"121":0.01426,"122":0.06415,"123":0.0196,"124":0.11583,"125":0.24592,"126":7.0389,"127":0.86249,"128":0.00178,_:"4 5 6 7 8 9 12 13 14 15 16 17 18 19 22 23 24 25 26 29 48 50 53 54 55 57 58 59 60 61 62 64 66 67 68 69 72 77 78 84 92 96 101 129 130"},F:{"12":0.00178,"25":0.00178,"30":0.00178,"31":0.00535,"32":0.00178,"36":0.00178,"40":0.00178,"46":0.01069,"69":0.00178,"83":0.03742,"84":0.00178,"94":0.00356,"95":0.00535,"102":0.00178,"109":0.17107,"110":0.00535,"111":0.17642,_:"9 11 15 16 17 18 19 20 21 22 23 24 26 27 28 29 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 70 71 72 73 74 75 76 77 78 79 80 81 82 85 86 87 88 89 90 91 92 93 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.00356},B:{"12":0.00178,"92":0.00356,"108":0.00535,"109":0.00713,"118":0.00178,"119":0.00356,"120":0.00713,"121":0.00178,"122":0.00356,"123":0.00356,"124":0.00356,"125":0.05702,"126":0.86605,"127":0.26374,_:"13 14 15 16 17 18 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 110 111 112 113 114 115 116 117"},E:{"4":0.00178,"5":0.00178,"8":0.00178,"9":0.09445,"13":0.00356,"14":0.00713,_:"0 6 7 10 11 12 15 3.1 3.2 7.1 9.1 10.1 11.1","5.1":0.00178,"6.1":0.00178,"12.1":0.00535,"13.1":0.02673,"14.1":0.0196,"15.1":0.00713,"15.2-15.3":0.00356,"15.4":0.01069,"15.5":0.02495,"15.6":0.27621,"16.0":0.0196,"16.1":0.02495,"16.2":0.01069,"16.3":0.04277,"16.4":0.01069,"16.5":0.03029,"16.6":0.1782,"17.0":0.01069,"17.1":0.03029,"17.2":0.04811,"17.3":0.02851,"17.4":0.11227,"17.5":1.81586,"17.6":0.00535,"18.0":0.01426},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00757,"5.0-5.1":0.00378,"6.0-6.1":0.02271,"7.0-7.1":0.02271,"8.1-8.4":0,"9.0-9.2":0.01892,"9.3":0.07569,"10.0-10.2":0.01514,"10.3":0.13245,"11.0-11.2":0.34816,"11.3-11.4":0.03784,"12.0-12.1":0.02649,"12.2-12.5":0.48819,"13.0-13.1":0.00757,"13.2":0.07947,"13.3":0.02649,"13.4-13.7":0.11353,"14.0-14.4":0.26112,"14.5-14.8":0.29518,"15.0-15.1":0.14759,"15.2-15.3":0.15894,"15.4":0.18165,"15.5":0.21949,"15.6-15.8":2.01329,"16.0":0.40493,"16.1":0.85906,"16.2":0.43142,"16.3":0.72282,"16.4":0.1703,"16.5":0.30654,"16.6-16.7":2.51283,"17.0":0.22706,"17.1":0.36709,"17.2":0.35573,"17.3":0.5336,"17.4":1.33589,"17.5":24.46229,"17.6":0.18922,"18.0":0.24977},P:{"4":0.11152,"20":0.03041,"21":0.05069,"22":0.06083,"23":0.07097,"24":0.09124,"25":2.99074,"5.0-5.4":0.01014,"6.2-6.4":0.04055,"7.2-7.4":0.0811,_:"8.2 9.2 10.1 12.0 15.0","11.1-11.2":0.01014,"13.0":0.02028,"14.0":0.06083,"16.0":0.02028,"17.0":0.03041,"18.0":0.01014,"19.0":0.02028},I:{"0":0.36033,"3":0,"4":0.00004,"2.1":0,"2.2":0.00007,"2.3":0,"4.1":0.00022,"4.2-4.3":0.00014,"4.4":0,"4.4.3-4.4.4":0.00061},K:{"0":0.25476,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.0037,"7":0.00925,"8":0.08879,"9":0.01665,"10":0.01295,"11":0.0555,_:"5.5"},S:{"2.5":0.02465,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":39.66281},R:{_:"0"},M:{"0":0.40268},Q:{_:"14.9"},O:{"0":0.05753},H:{"0":0}}; 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..6b53e42 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AM.js @@ -0,0 +1 @@ +module.exports={C:{"52":57.83801,"56":0.00749,"109":0.00749,"115":0.18728,"125":0.00749,"126":0.00749,"127":0.13484,"128":0.35957,_:"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 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 110 111 112 113 114 116 117 118 119 120 121 122 123 124 129 130 131 3.5 3.6"},D:{"49":0.00749,"51":0.00749,"70":0.00749,"79":0.02247,"80":0.00749,"87":0.00749,"88":0.00749,"97":0.01498,"98":0.00749,"101":0.00749,"102":0.00749,"103":0.03746,"106":0.01498,"107":0.00749,"108":0.00749,"109":1.47573,"110":0.01498,"112":0.00749,"113":0.00749,"114":0.01498,"116":0.09738,"117":0.02247,"118":0.00749,"119":0.02247,"120":0.05244,"121":0.02996,"122":0.02996,"123":0.04495,"124":0.11986,"125":0.23971,"126":8.79443,"127":1.32591,"128":0.01498,"129":0.01498,_:"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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 78 81 83 84 85 86 89 90 91 92 93 94 95 96 99 100 104 105 111 115 130"},F:{"79":0.07491,"82":0.05993,"83":0.00749,"85":0.00749,"95":0.03746,"109":0.08989,"110":0.00749,"111":0.29215,_:"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 80 81 84 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"108":0.00749,"109":0.00749,"122":0.00749,"125":0.00749,"126":0.85397,"127":0.09738,_:"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 107 110 111 112 113 114 115 116 117 118 119 120 121 123 124"},E:{"14":0.01498,_:"0 4 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 12.1 15.1 15.2-15.3 15.4 16.0 17.6","13.1":0.00749,"14.1":0.01498,"15.5":0.02247,"15.6":0.05244,"16.1":0.02247,"16.2":0.00749,"16.3":0.0824,"16.4":0.00749,"16.5":0.00749,"16.6":0.05244,"17.0":0.02247,"17.1":0.00749,"17.2":0.02247,"17.3":0.01498,"17.4":0.03746,"17.5":0.61426,"18.0":0.00749},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00131,"5.0-5.1":0.00066,"6.0-6.1":0.00394,"7.0-7.1":0.00394,"8.1-8.4":0,"9.0-9.2":0.00328,"9.3":0.01312,"10.0-10.2":0.00262,"10.3":0.02295,"11.0-11.2":0.06034,"11.3-11.4":0.00656,"12.0-12.1":0.00459,"12.2-12.5":0.0846,"13.0-13.1":0.00131,"13.2":0.01377,"13.3":0.00459,"13.4-13.7":0.01968,"14.0-14.4":0.04525,"14.5-14.8":0.05116,"15.0-15.1":0.02558,"15.2-15.3":0.02755,"15.4":0.03148,"15.5":0.03804,"15.6-15.8":0.34891,"16.0":0.07018,"16.1":0.14888,"16.2":0.07477,"16.3":0.12527,"16.4":0.02951,"16.5":0.05312,"16.6-16.7":0.43549,"17.0":0.03935,"17.1":0.06362,"17.2":0.06165,"17.3":0.09248,"17.4":0.23152,"17.5":4.23943,"17.6":0.03279,"18.0":0.04329},P:{"20":0.01042,"21":0.03125,"22":0.03125,"23":0.03125,"24":0.02083,"25":0.71867,_:"4 5.0-5.4 6.2-6.4 8.2 9.2 12.0 13.0 14.0 15.0 16.0 17.0","7.2-7.4":0.03125,"10.1":0.01042,"11.1-11.2":0.01042,"18.0":0.01042,"19.0":0.01042},I:{"0":0.02,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.21832,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01498,"11":0.01498,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":17.18373},R:{_:"0"},M:{"0":0.06022},Q:{_:"14.9"},O:{"0":0.10036},H:{"0":0.01}}; 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..71605b6 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AO.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.01319,"78":0.00659,"113":0.0033,"115":0.14507,"124":0.02308,"125":0.0033,"126":0.0033,"127":0.16815,"128":0.2209,_:"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 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 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 112 114 116 117 118 119 120 121 122 123 129 130 131 3.5 3.6"},D:{"11":0.00659,"43":0.0033,"46":0.0033,"49":0.0033,"54":0.0033,"55":0.00659,"56":0.0033,"68":0.0033,"69":0.00659,"70":0.0033,"72":0.01649,"73":0.0033,"75":0.0033,"76":0.00659,"77":0.00659,"79":0.01319,"81":0.02308,"83":0.00659,"85":0.0033,"86":0.02967,"87":0.04946,"88":0.01978,"89":0.00659,"90":0.01319,"91":0.00659,"92":0.00989,"93":0.00989,"94":0.00659,"95":0.00989,"96":0.00659,"97":0.00659,"98":0.00659,"99":0.00989,"100":0.00659,"101":0.0033,"102":0.02308,"103":0.00659,"104":0.0033,"105":0.0033,"106":0.03297,"107":0.00659,"108":0.0033,"109":1.80346,"110":0.00989,"111":0.00659,"112":0.0033,"113":0.0033,"114":0.02638,"115":0.0033,"116":0.09891,"117":0.01649,"118":0.04286,"119":0.04946,"120":0.03956,"121":0.02638,"122":0.02638,"123":0.04946,"124":0.07913,"125":0.1154,"126":7.07536,"127":0.94954,"128":0.00659,_:"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 44 45 47 48 50 51 52 53 57 58 59 60 61 62 63 64 65 66 67 71 74 78 80 84 129 130"},F:{"34":0.01978,"79":0.02638,"83":0.00659,"85":0.00989,"87":0.0033,"89":0.0033,"95":0.06264,"108":0.00659,"109":0.04616,"110":0.00659,"111":0.47477,_:"9 11 12 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 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 84 86 88 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00659,"14":0.0033,"15":0.00989,"16":0.0033,"17":0.00659,"18":0.01649,"81":0.0033,"84":0.01978,"89":0.00659,"90":0.01978,"92":0.04286,"100":0.0033,"101":0.0033,"104":0.0033,"105":0.0033,"106":0.0033,"109":0.08572,"110":0.0033,"113":0.0033,"114":0.01649,"115":0.0033,"117":0.00659,"118":0.01319,"119":0.00659,"120":0.02967,"121":0.02308,"122":0.02967,"123":0.02967,"124":0.06924,"125":0.12858,"126":2.70024,"127":0.36267,_:"13 79 80 83 85 86 87 88 91 93 94 95 96 97 98 99 102 103 107 108 111 112 116"},E:{"13":0.0033,_:"0 4 5 6 7 8 9 10 11 12 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.2 16.3 17.0 17.1 17.2 17.6 18.0","13.1":0.02967,"14.1":0.00659,"15.6":0.03956,"16.1":0.0033,"16.4":0.0033,"16.5":0.0033,"16.6":0.01319,"17.3":0.0033,"17.4":0.00989,"17.5":0.05605},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00155,"5.0-5.1":0.00077,"6.0-6.1":0.00465,"7.0-7.1":0.00465,"8.1-8.4":0,"9.0-9.2":0.00387,"9.3":0.01549,"10.0-10.2":0.0031,"10.3":0.0271,"11.0-11.2":0.07124,"11.3-11.4":0.00774,"12.0-12.1":0.00542,"12.2-12.5":0.09989,"13.0-13.1":0.00155,"13.2":0.01626,"13.3":0.00542,"13.4-13.7":0.02323,"14.0-14.4":0.05343,"14.5-14.8":0.0604,"15.0-15.1":0.0302,"15.2-15.3":0.03252,"15.4":0.03717,"15.5":0.04491,"15.6-15.8":0.41193,"16.0":0.08285,"16.1":0.17577,"16.2":0.08827,"16.3":0.14789,"16.4":0.03484,"16.5":0.06272,"16.6-16.7":0.51414,"17.0":0.04646,"17.1":0.07511,"17.2":0.07279,"17.3":0.10918,"17.4":0.27333,"17.5":5.00515,"17.6":0.03872,"18.0":0.0511},P:{"4":0.05319,"20":0.02128,"21":0.02128,"22":0.02128,"23":0.04256,"24":0.06383,"25":0.34045,_:"5.0-5.4 6.2-6.4 9.2 10.1 11.1-11.2 12.0","7.2-7.4":0.11703,"8.2":0.01064,"13.0":0.01064,"14.0":0.04256,"15.0":0.02128,"16.0":0.05319,"17.0":0.05319,"18.0":0.02128,"19.0":0.02128},I:{"0":0.06681,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00011},K:{"0":0.46962,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0033,_:"6 7 8 9 10 5.5"},S:{"2.5":0.10056,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":73.94861},R:{_:"0"},M:{"0":0.14078},Q:{"14.9":0.0067},O:{"0":0.07374},H:{"0":0.06}}; 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..afc156c --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AR.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.01089,"52":0.02177,"59":0.01089,"71":0.00363,"78":0.00726,"80":0.00363,"81":0.00363,"82":0.00363,"83":0.00363,"84":0.00363,"86":0.00726,"88":0.03992,"91":0.04718,"92":0.00363,"94":0.00363,"95":0.00363,"99":0.00363,"102":0.00726,"103":0.03629,"104":0.00363,"105":0.00363,"106":0.00726,"107":0.00363,"108":0.00363,"109":0.00363,"110":0.00363,"111":0.00363,"112":0.00726,"113":0.01452,"114":0.00363,"115":0.38105,"117":0.00363,"118":0.00363,"119":0.00363,"120":0.0254,"121":0.00363,"122":0.00363,"123":0.00726,"124":0.00363,"125":0.01089,"126":0.01815,"127":0.4754,"128":0.68588,"129":0.00363,_:"2 3 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 68 69 70 72 73 74 75 76 77 79 85 87 89 90 93 96 97 98 100 101 116 130 131 3.5 3.6"},D:{"34":0.00363,"38":0.0254,"47":0.00726,"49":0.04355,"51":0.00363,"56":0.00363,"58":0.00363,"63":0.00363,"66":0.03266,"70":0.00363,"71":0.00363,"74":0.00363,"75":0.00726,"76":0.00363,"78":0.01089,"79":0.0254,"80":0.00363,"81":0.00363,"83":0.00363,"84":0.00363,"85":0.00363,"86":0.00363,"87":0.01815,"88":0.01815,"89":0.00363,"90":0.00363,"91":0.02903,"92":0.00363,"93":0.01815,"94":0.00363,"95":0.01089,"96":0.00726,"97":0.02177,"98":0.00363,"99":0.00726,"100":0.00363,"101":0.00726,"102":0.00726,"103":0.04355,"104":0.01089,"105":0.01089,"106":0.01452,"107":0.01452,"108":0.01815,"109":3.7161,"110":0.01815,"111":0.00726,"112":0.01089,"113":0.01089,"114":0.01452,"115":0.01815,"116":0.07984,"117":0.01089,"118":0.01452,"119":0.05081,"120":0.07621,"121":0.11613,"122":0.09073,"123":0.10887,"124":0.17056,"125":0.41008,"126":19.38612,"127":2.68183,"128":0.00363,_:"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 50 52 53 54 55 57 59 60 61 62 64 65 67 68 69 72 73 77 129 130"},F:{"36":0.00363,"83":0.00726,"95":0.05444,"102":0.00363,"109":0.80927,"110":0.00726,"111":0.44637,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00363,"18":0.00363,"92":0.01089,"109":0.04355,"113":0.00363,"114":0.00363,"115":0.00363,"116":0.00363,"117":0.00363,"118":0.00363,"119":0.00726,"120":0.00726,"121":0.00726,"122":0.00726,"123":0.01089,"124":0.01815,"125":0.05081,"126":2.50038,"127":0.34838,_:"12 13 14 15 16 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 108 110 111 112"},E:{"9":0.00363,"14":0.00726,_:"0 4 5 6 7 8 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00363,"11.1":0.00726,"12.1":0.00363,"13.1":0.00726,"14.1":0.01815,"15.1":0.00363,"15.2-15.3":0.00363,"15.4":0.00363,"15.5":0.00363,"15.6":0.05081,"16.0":0.00363,"16.1":0.00726,"16.2":0.00363,"16.3":0.01452,"16.4":0.00363,"16.5":0.00726,"16.6":0.05806,"17.0":0.01815,"17.1":0.00726,"17.2":0.01815,"17.3":0.01089,"17.4":0.0254,"17.5":0.34476,"17.6":0.00363,"18.0":0.00363},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00095,"5.0-5.1":0.00047,"6.0-6.1":0.00284,"7.0-7.1":0.00284,"8.1-8.4":0,"9.0-9.2":0.00237,"9.3":0.00948,"10.0-10.2":0.0019,"10.3":0.01659,"11.0-11.2":0.04361,"11.3-11.4":0.00474,"12.0-12.1":0.00332,"12.2-12.5":0.06115,"13.0-13.1":0.00095,"13.2":0.00995,"13.3":0.00332,"13.4-13.7":0.01422,"14.0-14.4":0.03271,"14.5-14.8":0.03697,"15.0-15.1":0.01849,"15.2-15.3":0.01991,"15.4":0.02275,"15.5":0.02749,"15.6-15.8":0.25217,"16.0":0.05072,"16.1":0.1076,"16.2":0.05404,"16.3":0.09053,"16.4":0.02133,"16.5":0.03839,"16.6-16.7":0.31474,"17.0":0.02844,"17.1":0.04598,"17.2":0.04456,"17.3":0.06683,"17.4":0.16732,"17.5":3.06395,"17.6":0.0237,"18.0":0.03128},P:{"4":0.10224,"20":0.01022,"21":0.05112,"22":0.0409,"23":0.07157,"24":0.10224,"25":2.32088,"5.0-5.4":0.01022,_:"6.2-6.4 8.2 9.2 10.1 12.0","7.2-7.4":0.16359,"11.1-11.2":0.01022,"13.0":0.02045,"14.0":0.01022,"15.0":0.01022,"16.0":0.02045,"17.0":0.07157,"18.0":0.01022,"19.0":0.02045},I:{"0":0.03174,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":0.13653,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00435,"11":0.01742,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":56.59938},R:{_:"0"},M:{"0":0.13379},Q:{_:"14.9"},O:{"0":0.03186},H:{"0":0.01}}; 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..84f3121 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AS.js @@ -0,0 +1 @@ +module.exports={C:{"115":0.00313,"127":0.01254,"128":0.0188,_:"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 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 3.5 3.6"},D:{"79":0.00313,"93":0.06581,"103":0.02821,"109":0.03447,"110":0.00313,"113":0.00313,"115":0.00313,"117":0.01254,"120":0.00313,"121":0.00313,"122":0.01567,"123":0.00313,"124":0.01567,"125":0.09402,"126":0.85245,"127":0.05014,_:"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 80 81 83 84 85 86 87 88 89 90 91 92 94 95 96 97 98 99 100 101 102 104 105 106 107 108 111 112 114 116 118 119 128 129 130"},F:{"109":0.02194,"111":0.03447,_:"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 99 100 101 102 103 104 105 106 107 108 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"124":0.01254,"126":0.18177,"127":0.03761,_:"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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 125"},E:{_:"0 4 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":0.00627,"15.1":0.04074,"15.2-15.3":0.05014,"15.4":0.20371,"15.5":0.09402,"15.6":1.55446,"16.0":0.02507,"16.1":0.46697,"16.2":0.42309,"16.3":0.53591,"16.4":0.04388,"16.5":0.14416,"16.6":2.57615,"17.0":0.20371,"17.1":0.37608,"17.2":0.15357,"17.3":0.47323,"17.4":1.04362,"17.5":20.3804,"17.6":0.07522,"18.0":0.08775},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.01335,"5.0-5.1":0.00668,"6.0-6.1":0.04006,"7.0-7.1":0.04006,"8.1-8.4":0,"9.0-9.2":0.03338,"9.3":0.13354,"10.0-10.2":0.02671,"10.3":0.23369,"11.0-11.2":0.61427,"11.3-11.4":0.06677,"12.0-12.1":0.04674,"12.2-12.5":0.86132,"13.0-13.1":0.01335,"13.2":0.14021,"13.3":0.04674,"13.4-13.7":0.20031,"14.0-14.4":0.46071,"14.5-14.8":0.5208,"15.0-15.1":0.2604,"15.2-15.3":0.28043,"15.4":0.32049,"15.5":0.38726,"15.6-15.8":3.55211,"16.0":0.71443,"16.1":1.51566,"16.2":0.76117,"16.3":1.27529,"16.4":0.30046,"16.5":0.54083,"16.6-16.7":4.43346,"17.0":0.40061,"17.1":0.64766,"17.2":0.62763,"17.3":0.94144,"17.4":2.35695,"17.5":43.15948,"17.6":0.33384,"18.0":0.44068},P:{"25":0.10984,_:"4 20 21 22 23 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.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":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":2.14576},R:{_:"0"},M:{_:"0"},Q:{_:"14.9"},O:{"0":0.05492},H:{"0":0}}; 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..0440586 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AT.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.0047,"47":0.0047,"48":0.0094,"52":0.02819,"53":0.0047,"60":0.0047,"68":0.02349,"72":0.0094,"75":0.0047,"76":0.0047,"78":0.03758,"83":0.0047,"88":0.0047,"89":0.0047,"91":0.0094,"94":0.0047,"96":0.02819,"102":0.02349,"103":0.01409,"104":0.0047,"106":0.0047,"107":0.0094,"108":0.0047,"109":0.0047,"110":0.0047,"111":0.0047,"112":0.0094,"113":0.0094,"115":1.24027,"116":0.01409,"117":0.11745,"118":0.0094,"119":0.0047,"120":0.0047,"121":0.0094,"122":0.01409,"123":0.01409,"124":0.01879,"125":0.03758,"126":0.13154,"127":2.40068,"128":3.83357,"129":0.0047,_:"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 43 44 45 46 49 50 51 54 55 56 57 58 59 61 62 63 64 65 66 67 69 70 71 73 74 77 79 80 81 82 84 85 86 87 90 92 93 95 97 98 99 100 101 105 114 130 131 3.5","3.6":0.0047},D:{"38":0.0094,"41":0.0047,"42":0.0094,"43":0.0047,"44":0.0047,"45":0.0047,"46":0.0094,"47":0.0047,"49":0.03289,"51":0.01409,"56":0.0047,"70":0.0047,"79":0.09866,"80":0.0094,"81":0.01409,"85":0.01409,"86":0.0047,"87":0.05638,"88":0.01879,"89":0.07047,"90":0.0047,"91":0.0094,"93":0.0094,"94":0.01879,"96":0.0047,"97":0.0047,"98":0.0047,"99":0.0094,"100":0.0047,"102":0.02819,"103":0.07517,"104":0.03289,"105":0.0047,"106":0.01409,"107":0.01879,"108":0.04698,"109":0.86913,"110":0.03289,"111":0.05638,"112":0.05168,"113":0.21141,"114":0.25839,"115":0.04228,"116":0.13154,"117":0.02349,"118":0.12685,"119":0.03758,"120":0.15034,"121":0.05638,"122":0.12215,"123":0.10805,"124":0.16443,"125":3.12887,"126":13.87319,"127":2.02484,_:"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 48 50 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 78 83 84 92 95 101 128 129 130"},F:{"46":0.01409,"71":0.01409,"81":0.0047,"83":0.02819,"85":0.02349,"95":0.04228,"102":0.02819,"107":0.0047,"109":0.62483,"110":0.04228,"111":0.84094,_:"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 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 80 82 84 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0047,"92":0.0094,"100":0.0047,"107":0.0047,"108":0.0094,"109":0.13624,"110":0.02349,"111":0.0094,"112":0.0047,"113":0.0094,"114":0.01879,"115":0.0047,"116":0.0094,"117":0.0047,"118":0.0094,"119":0.04228,"120":0.05638,"121":0.04698,"122":0.02349,"123":0.02819,"124":0.09396,"125":0.27248,"126":7.0423,"127":0.85034,_:"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 101 102 103 104 105 106"},E:{"8":0.0047,"9":0.02819,"13":0.0094,"14":0.04228,"15":0.01879,_:"0 4 5 6 7 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.0047,"12.1":0.01409,"13.1":0.07987,"14.1":0.09396,"15.1":0.11745,"15.2-15.3":0.01409,"15.4":0.02349,"15.5":0.04228,"15.6":0.32416,"16.0":0.05638,"16.1":0.05638,"16.2":0.05638,"16.3":0.11745,"16.4":0.01879,"16.5":0.05168,"16.6":0.39933,"17.0":0.04698,"17.1":0.05638,"17.2":0.07517,"17.3":0.07047,"17.4":0.21141,"17.5":2.48054,"17.6":0.02819,"18.0":0.01879},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00341,"5.0-5.1":0.0017,"6.0-6.1":0.01022,"7.0-7.1":0.01022,"8.1-8.4":0,"9.0-9.2":0.00852,"9.3":0.03408,"10.0-10.2":0.00682,"10.3":0.05964,"11.0-11.2":0.15677,"11.3-11.4":0.01704,"12.0-12.1":0.01193,"12.2-12.5":0.21982,"13.0-13.1":0.00341,"13.2":0.03579,"13.3":0.01193,"13.4-13.7":0.05112,"14.0-14.4":0.11758,"14.5-14.8":0.13292,"15.0-15.1":0.06646,"15.2-15.3":0.07157,"15.4":0.0818,"15.5":0.09884,"15.6-15.8":0.90656,"16.0":0.18233,"16.1":0.38682,"16.2":0.19426,"16.3":0.32548,"16.4":0.07668,"16.5":0.13803,"16.6-16.7":1.1315,"17.0":0.10224,"17.1":0.16529,"17.2":0.16018,"17.3":0.24027,"17.4":0.60153,"17.5":11.01506,"17.6":0.0852,"18.0":0.11247},P:{"4":0.14816,"20":0.02117,"21":0.0635,"22":0.0635,"23":0.08466,"24":0.09524,"25":3.88381,"5.0-5.4":0.01058,"6.2-6.4":0.04233,_:"7.2-7.4 8.2 10.1 11.1-11.2 12.0","9.2":0.01058,"13.0":0.01058,"14.0":0.01058,"15.0":0.01058,"16.0":0.02117,"17.0":0.01058,"18.0":0.01058,"19.0":0.02117},I:{"0":0.14794,"3":0,"4":0.00001,"2.1":0,"2.2":0.00003,"2.3":0,"4.1":0.00009,"4.2-4.3":0.00006,"4.4":0,"4.4.3-4.4.4":0.00025},K:{"0":0.51429,_:"10 11 12 11.1 11.5 12.1"},A:{"7":0.00493,"8":0.03946,"9":0.00493,"10":0.00493,"11":0.03946,_:"6 5.5"},S:{"2.5":0.0053,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":29.31047},R:{_:"0"},M:{"0":1.00738},Q:{_:"14.9"},O:{"0":0.07953},H:{"0":0}}; 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..25ce69f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AU.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00504,"52":0.01513,"54":0.01009,"78":0.02017,"83":0.00504,"88":0.02017,"101":0.00504,"102":0.00504,"103":0.01009,"113":0.00504,"114":0.02017,"115":0.23702,"118":0.00504,"119":0.00504,"120":0.01009,"121":0.00504,"122":0.00504,"123":0.01009,"124":0.01009,"125":0.02522,"126":0.06556,"127":0.74636,"128":1.23049,"129":0.00504,_:"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 43 44 45 46 47 48 49 50 51 53 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 104 105 106 107 108 109 110 111 112 116 117 130 131 3.5 3.6"},D:{"25":0.02522,"26":0.00504,"34":0.01009,"38":0.0706,"39":0.01009,"40":0.01009,"41":0.01009,"42":0.01009,"43":0.01009,"44":0.01009,"45":0.01009,"46":0.01009,"47":0.01009,"48":0.01009,"49":0.02017,"50":0.01009,"51":0.01513,"52":0.01513,"53":0.01009,"54":0.01009,"55":0.01009,"56":0.01513,"57":0.01009,"58":0.01009,"59":0.02522,"60":0.01009,"65":0.00504,"66":0.00504,"69":0.00504,"70":0.00504,"72":0.00504,"73":0.00504,"74":0.01009,"76":0.00504,"78":0.00504,"79":0.08573,"80":0.01009,"81":0.06556,"83":0.00504,"85":0.01009,"86":0.00504,"87":0.08069,"88":0.04539,"89":0.00504,"90":0.01009,"91":0.01009,"92":0.01009,"93":0.02017,"94":0.03026,"96":0.01009,"97":0.01513,"98":0.02017,"99":0.02522,"100":0.01009,"101":0.00504,"102":0.01513,"103":0.15633,"104":0.0706,"105":0.05547,"106":0.01009,"107":0.02017,"108":0.03026,"109":0.74636,"110":0.01513,"111":0.04539,"112":0.02017,"113":0.12608,"114":0.15633,"115":0.10086,"116":0.3278,"117":0.0353,"118":0.03026,"119":0.08069,"120":0.16642,"121":0.14625,"122":0.23198,"123":0.19668,"124":0.48917,"125":1.50786,"126":22.2598,"127":2.06763,"128":0.02017,_:"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 61 62 63 64 67 68 71 75 77 84 95 129 130"},F:{"36":0.00504,"46":0.02017,"83":0.00504,"95":0.01009,"102":0.00504,"109":0.40848,"110":0.00504,"111":0.25215,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00504,"85":0.00504,"92":0.00504,"99":0.00504,"101":0.00504,"107":0.00504,"108":0.00504,"109":0.08069,"110":0.00504,"111":0.00504,"112":0.00504,"113":0.01009,"114":0.02017,"115":0.00504,"116":0.00504,"117":0.00504,"118":0.01009,"119":0.01513,"120":0.02522,"121":0.02017,"122":0.0353,"123":0.02017,"124":0.06556,"125":0.21685,"126":6.72736,"127":0.79679,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 88 89 90 91 93 94 95 96 97 98 100 102 103 104 105 106"},E:{"9":0.01513,"13":0.01009,"14":0.07565,"15":0.01513,_:"0 4 5 6 7 8 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.02522,"13.1":0.13616,"14.1":0.23198,"15.1":0.02522,"15.2-15.3":0.03026,"15.4":0.05043,"15.5":0.08573,"15.6":0.6102,"16.0":0.06556,"16.1":0.12608,"16.2":0.08069,"16.3":0.21181,"16.4":0.06052,"16.5":0.11095,"16.6":0.77158,"17.0":0.0353,"17.1":0.11095,"17.2":0.09582,"17.3":0.13112,"17.4":0.30258,"17.5":4.39245,"17.6":0.02017,"18.0":0.02017},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00416,"5.0-5.1":0.00208,"6.0-6.1":0.01247,"7.0-7.1":0.01247,"8.1-8.4":0,"9.0-9.2":0.01039,"9.3":0.04157,"10.0-10.2":0.00831,"10.3":0.07275,"11.0-11.2":0.19122,"11.3-11.4":0.02078,"12.0-12.1":0.01455,"12.2-12.5":0.26812,"13.0-13.1":0.00416,"13.2":0.04365,"13.3":0.01455,"13.4-13.7":0.06235,"14.0-14.4":0.14341,"14.5-14.8":0.16212,"15.0-15.1":0.08106,"15.2-15.3":0.0873,"15.4":0.09977,"15.5":0.12055,"15.6-15.8":1.10575,"16.0":0.2224,"16.1":0.47181,"16.2":0.23695,"16.3":0.39699,"16.4":0.09353,"16.5":0.16836,"16.6-16.7":1.3801,"17.0":0.12471,"17.1":0.20161,"17.2":0.19538,"17.3":0.29306,"17.4":0.7337,"17.5":13.43523,"17.6":0.10392,"18.0":0.13718},P:{"4":0.19784,"20":0.01099,"21":0.05495,"22":0.04396,"23":0.06595,"24":0.08793,"25":2.14322,"5.0-5.4":0.03297,"6.2-6.4":0.02198,"7.2-7.4":0.01099,_:"8.2 9.2 10.1 11.1-11.2 12.0","13.0":0.01099,"14.0":0.01099,"15.0":0.01099,"16.0":0.02198,"17.0":0.01099,"18.0":0.01099,"19.0":0.01099},I:{"0":0.09385,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00006,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00016},K:{"0":0.11897,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.06418,"9":0.01605,"10":0.01605,"11":0.08023,_:"6 7 5.5"},S:{"2.5":0.00496,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":25.22197},R:{_:"0"},M:{"0":0.41143},Q:{"14.9":0.00991},O:{"0":0.05948},H:{"0":0}}; 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..f0d5982 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AW.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.03933,"50":0.00262,"78":0.02098,"96":0.00524,"100":0.00262,"101":0.01573,"103":0.02884,"115":0.04457,"121":0.00262,"122":0.00262,"125":0.00262,"126":0.00787,"127":0.27793,"128":0.4169,_:"2 3 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 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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 97 98 99 102 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 123 124 129 130 131 3.5 3.6"},D:{"42":0.00262,"49":0.00262,"54":0.00262,"75":0.00262,"79":0.06031,"80":0.01573,"81":0.00262,"83":0.00262,"86":0.00262,"87":0.01835,"88":0.00262,"89":0.00262,"90":0.00524,"91":0.00262,"93":0.01573,"98":0.01049,"99":0.00787,"100":0.00262,"103":0.08915,"104":0.00787,"106":0.00262,"108":0.00262,"109":0.80233,"110":0.00262,"113":0.00787,"114":0.00262,"115":0.01311,"116":0.05244,"117":0.01049,"118":0.01311,"119":0.00787,"120":0.02098,"121":0.01573,"122":0.11012,"123":0.0472,"124":0.14945,"125":0.63452,"126":10.30184,"127":1.11697,"128":0.00524,_:"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 43 44 45 46 47 48 50 51 52 53 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 84 85 92 94 95 96 97 101 102 105 107 111 112 129 130"},F:{"83":0.00262,"95":0.00524,"106":0.00262,"109":0.21763,"110":0.00787,"111":0.14421,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"80":0.00262,"92":0.00262,"108":0.00524,"109":0.00524,"114":0.00262,"115":0.00524,"117":0.00524,"120":0.00262,"122":0.00524,"123":0.00524,"124":0.02622,"125":0.15208,"126":5.8523,"127":0.66599,_:"12 13 14 15 16 17 18 79 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 110 111 112 113 116 118 119 121"},E:{"13":0.00262,"14":0.01835,"15":0.00524,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1 11.1","9.1":0.00262,"12.1":0.00262,"13.1":0.02622,"14.1":0.09177,"15.1":0.01311,"15.2-15.3":0.00524,"15.4":0.00524,"15.5":0.03671,"15.6":0.11275,"16.0":0.04982,"16.1":0.04195,"16.2":0.02884,"16.3":0.15208,"16.4":0.01311,"16.5":0.04195,"16.6":0.3697,"17.0":0.04457,"17.1":0.0472,"17.2":0.03933,"17.3":0.03933,"17.4":0.22025,"17.5":1.98748,"17.6":0.05506,"18.0":0.02098},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00643,"5.0-5.1":0.00321,"6.0-6.1":0.01929,"7.0-7.1":0.01929,"8.1-8.4":0,"9.0-9.2":0.01607,"9.3":0.0643,"10.0-10.2":0.01286,"10.3":0.11252,"11.0-11.2":0.29577,"11.3-11.4":0.03215,"12.0-12.1":0.0225,"12.2-12.5":0.41472,"13.0-13.1":0.00643,"13.2":0.06751,"13.3":0.0225,"13.4-13.7":0.09645,"14.0-14.4":0.22183,"14.5-14.8":0.25076,"15.0-15.1":0.12538,"15.2-15.3":0.13503,"15.4":0.15432,"15.5":0.18646,"15.6-15.8":1.71032,"16.0":0.34399,"16.1":0.72978,"16.2":0.3665,"16.3":0.61405,"16.4":0.14467,"16.5":0.26041,"16.6-16.7":2.13469,"17.0":0.19289,"17.1":0.31184,"17.2":0.3022,"17.3":0.4533,"17.4":1.13486,"17.5":20.78109,"17.6":0.16074,"18.0":0.21218},P:{"4":0.03083,"20":0.02055,"21":0.04111,"22":0.08222,"23":0.03083,"24":0.03083,"25":5.03577,_:"5.0-5.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 17.0","6.2-6.4":0.01028,"7.2-7.4":0.07194,"11.1-11.2":0.01028,"18.0":0.01028,"19.0":0.01028},I:{"0":0.00735,"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.00001},K:{"0":0.12541,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00787,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":34.95367},R:{_:"0"},M:{"0":0.45},Q:{_:"14.9"},O:{"0":0.02213},H:{"0":0}}; 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..b55dd92 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AX.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.0044,"87":0.0044,"90":0.0088,"108":0.0088,"110":0.0044,"115":0.11435,"121":0.0044,"125":0.02639,"127":1.69323,"128":1.73281,_:"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 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 88 89 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 109 111 112 113 114 116 117 118 119 120 122 123 124 126 129 130 131 3.5 3.6"},D:{"38":0.0088,"76":0.15393,"79":0.0088,"87":0.03079,"92":0.0088,"103":0.10115,"107":0.0088,"109":1.315,"112":0.0044,"114":0.0044,"116":0.27268,"120":0.01319,"121":0.01759,"122":0.14074,"123":0.0088,"124":0.04838,"125":0.18472,"126":18.19892,"127":2.12423,_:"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 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 77 78 80 81 83 84 85 86 88 89 90 91 93 94 95 96 97 98 99 100 101 102 104 105 106 108 110 111 113 115 117 118 119 128 129 130"},F:{"83":0.0044,"109":4.6223,"110":0.0044,"111":0.25948,_:"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 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 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.0044,"15":0.0044,"92":0.01319,"99":0.0044,"102":0.01759,"109":0.09236,"111":0.0088,"113":0.0088,"119":0.02199,"123":0.01319,"124":0.03958,"125":0.0044,"126":4.97854,"127":1.35458,_:"12 13 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 100 101 103 104 105 106 107 108 110 112 114 115 116 117 118 120 121 122"},E:{"13":0.0044,"14":0.03518,"15":0.0044,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 17.6 18.0","12.1":0.0088,"13.1":0.0088,"14.1":0.03518,"15.2-15.3":0.0088,"15.4":0.0044,"15.5":0.0088,"15.6":0.48378,"16.0":0.01319,"16.1":0.0044,"16.2":0.0088,"16.3":0.09676,"16.4":0.03518,"16.5":0.04398,"16.6":0.49258,"17.0":0.0088,"17.1":0.03518,"17.2":0.0044,"17.3":0.02199,"17.4":0.11875,"17.5":2.37932},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00252,"5.0-5.1":0.00126,"6.0-6.1":0.00756,"7.0-7.1":0.00756,"8.1-8.4":0,"9.0-9.2":0.0063,"9.3":0.02522,"10.0-10.2":0.00504,"10.3":0.04413,"11.0-11.2":0.11599,"11.3-11.4":0.01261,"12.0-12.1":0.00883,"12.2-12.5":0.16264,"13.0-13.1":0.00252,"13.2":0.02648,"13.3":0.00883,"13.4-13.7":0.03782,"14.0-14.4":0.08699,"14.5-14.8":0.09834,"15.0-15.1":0.04917,"15.2-15.3":0.05295,"15.4":0.06052,"15.5":0.07313,"15.6-15.8":0.67074,"16.0":0.1349,"16.1":0.2862,"16.2":0.14373,"16.3":0.24081,"16.4":0.05674,"16.5":0.10212,"16.6-16.7":0.83716,"17.0":0.07565,"17.1":0.1223,"17.2":0.11851,"17.3":0.17777,"17.4":0.44506,"17.5":8.14971,"17.6":0.06304,"18.0":0.08321},P:{"21":0.01148,"22":0.01148,"23":0.04591,"24":0.03444,"25":4.61433,_:"4 20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","19.0":0.01148},I:{"0":0.19535,"3":0,"4":0.00002,"2.1":0,"2.2":0.00004,"2.3":0,"4.1":0.00012,"4.2-4.3":0.00008,"4.4":0,"4.4.3-4.4.4":0.00033},K:{"0":0.0224,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01759,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":34.73969},R:{_:"0"},M:{"0":5.0465},Q:{_:"14.9"},O:{"0":0.0056},H:{"0":0}}; 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..edbd53d --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AZ.js @@ -0,0 +1 @@ +module.exports={C:{"40":0.00233,"52":0.00233,"68":0.00233,"78":0.00233,"83":0.00466,"91":0.00233,"113":0.00466,"115":0.07692,"118":0.00233,"125":0.00233,"126":0.00466,"127":0.13753,"128":0.24009,_:"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 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 67 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 119 120 121 122 123 124 129 130 131 3.5","3.6":0.00233},D:{"11":0.00466,"38":0.00233,"40":0.00233,"41":0.00233,"43":0.00233,"44":0.00233,"45":0.00233,"46":0.00233,"47":0.00233,"49":0.00466,"51":0.00699,"53":0.00233,"56":0.00233,"63":0.00233,"66":0.00233,"67":0.00233,"68":0.00233,"69":0.00233,"70":0.00233,"71":0.00233,"72":0.00699,"73":0.00699,"74":0.00466,"75":0.00233,"77":0.00233,"78":0.00699,"79":0.0979,"80":0.01399,"81":0.00233,"83":0.02564,"84":0.00233,"85":0.00233,"86":0.00233,"87":0.11655,"88":0.01399,"89":0.00466,"90":0.04196,"91":0.00932,"92":0.00466,"94":0.08159,"95":0.00233,"96":0.00466,"97":0.00466,"98":0.00466,"99":0.01166,"100":0.01632,"101":0.00932,"102":0.00932,"103":0.00466,"104":0.01865,"105":0.00466,"106":0.02098,"107":0.00932,"108":0.01865,"109":2.69231,"110":0.00466,"111":0.01166,"112":0.02797,"113":0.00233,"114":0.00466,"115":0.00932,"116":0.02098,"117":0.00466,"118":0.01632,"119":0.03497,"120":0.1352,"121":0.02331,"122":0.06527,"123":0.03497,"124":0.13054,"125":0.23077,"126":11.36829,"127":1.40326,"128":0.01166,"129":0.00233,_:"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 39 42 48 50 52 54 55 57 58 59 60 61 62 64 65 76 93 130"},F:{"25":0.00233,"36":0.00233,"44":0.00233,"46":0.01632,"49":0.00233,"65":0.00233,"79":0.03263,"83":0.04895,"84":0.00233,"85":0.02331,"86":0.00233,"94":0.00466,"95":0.1655,"107":0.00466,"109":0.21911,"110":0.00932,"111":0.38228,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 45 47 48 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 87 88 89 90 91 92 93 96 97 98 99 100 101 102 103 104 105 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00233,"84":0.00233,"92":0.01399,"100":0.00233,"107":0.00233,"109":0.01865,"112":0.00466,"113":0.00233,"114":0.00233,"116":0.00466,"119":0.00466,"120":0.00932,"121":0.00466,"122":0.00699,"123":0.00466,"124":0.00699,"125":0.02098,"126":1.10956,"127":0.1655,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 108 110 111 115 117 118"},E:{"9":0.01166,"14":0.00466,_:"0 4 5 6 7 8 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.00233,"12.1":0.00466,"13.1":0.00466,"14.1":0.01166,"15.1":0.00233,"15.2-15.3":0.00233,"15.4":0.02098,"15.5":0.00233,"15.6":0.02797,"16.0":0.00466,"16.1":0.00699,"16.2":0.00233,"16.3":0.02564,"16.4":0.00466,"16.5":0.01632,"16.6":0.02797,"17.0":0.01399,"17.1":0.01865,"17.2":0.00932,"17.3":0.01399,"17.4":0.04895,"17.5":0.4662,"17.6":0.00233,"18.0":0.00699},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00161,"5.0-5.1":0.00081,"6.0-6.1":0.00483,"7.0-7.1":0.00483,"8.1-8.4":0,"9.0-9.2":0.00403,"9.3":0.0161,"10.0-10.2":0.00322,"10.3":0.02818,"11.0-11.2":0.07407,"11.3-11.4":0.00805,"12.0-12.1":0.00564,"12.2-12.5":0.10386,"13.0-13.1":0.00161,"13.2":0.01691,"13.3":0.00564,"13.4-13.7":0.02415,"14.0-14.4":0.05555,"14.5-14.8":0.0628,"15.0-15.1":0.0314,"15.2-15.3":0.03382,"15.4":0.03865,"15.5":0.0467,"15.6-15.8":0.42833,"16.0":0.08615,"16.1":0.18277,"16.2":0.09179,"16.3":0.15378,"16.4":0.03623,"16.5":0.06522,"16.6-16.7":0.53461,"17.0":0.04831,"17.1":0.0781,"17.2":0.07568,"17.3":0.11352,"17.4":0.28421,"17.5":5.20442,"17.6":0.04026,"18.0":0.05314},P:{"4":0.49684,"20":0.03042,"21":0.11153,"22":0.15209,"23":0.22307,"24":0.13181,"25":2.78836,"5.0-5.4":0.03042,"6.2-6.4":0.06084,"7.2-7.4":0.07098,_:"8.2 9.2 10.1 12.0 15.0","11.1-11.2":0.01014,"13.0":0.03042,"14.0":0.01014,"16.0":0.03042,"17.0":0.08112,"18.0":0.01014,"19.0":0.03042},I:{"0":0.06877,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00012},K:{"0":1.42692,_:"10 11 12 11.1 11.5 12.1"},A:{"7":0.00248,"8":0.01981,"9":0.00248,"10":0.00248,"11":0.05201,_:"6 5.5"},S:{"2.5":0.00767,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":63.09684},R:{_:"0"},M:{"0":0.23004},Q:{_:"14.9"},O:{"0":0.1687},H:{"0":0.03}}; 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..6d1d7e5 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BA.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.07774,"56":0.00324,"88":0.00324,"99":0.00324,"102":0.00648,"103":0.02591,"107":0.00324,"108":0.00648,"110":0.00324,"113":0.00324,"114":0.00324,"115":0.73201,"116":0.00324,"119":0.00324,"121":0.02267,"122":0.00324,"123":0.00648,"124":0.00324,"125":0.00648,"126":0.03239,"127":0.60245,"128":1.04296,"129":0.00648,_:"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 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 89 90 91 92 93 94 95 96 97 98 100 101 104 105 106 109 111 112 117 118 120 130 131 3.5 3.6"},D:{"28":0.00324,"43":0.00324,"44":0.00324,"45":0.00324,"46":0.00324,"47":0.00324,"49":0.02915,"51":0.00648,"53":0.0162,"55":0.00324,"56":0.00324,"58":0.00324,"63":0.00324,"64":0.01296,"68":0.00324,"70":0.00972,"71":0.00972,"72":0.01296,"75":0.00324,"77":0.01296,"78":0.00648,"79":0.40811,"80":0.00324,"81":0.00324,"83":0.0162,"84":0.01296,"85":0.0162,"86":0.01943,"87":0.17167,"88":0.01943,"90":0.00324,"91":0.02915,"92":0.00972,"93":0.00972,"94":0.10689,"95":0.00324,"96":0.00648,"97":0.00324,"98":0.00648,"99":0.02267,"100":0.03239,"102":0.00648,"103":0.04859,"104":0.03887,"106":0.0162,"107":0.02915,"108":0.00972,"109":3.25196,"110":0.00648,"111":0.00972,"112":0.0162,"113":0.00648,"114":0.00648,"115":0.02591,"116":0.11984,"117":0.00324,"118":0.0162,"119":0.06478,"120":0.02591,"121":0.05182,"122":0.15547,"123":0.08098,"124":0.16843,"125":0.34657,"126":16.16261,"127":1.98875,"128":0.00324,_:"4 5 6 7 8 9 10 11 12 13 14 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 48 50 52 54 57 59 60 61 62 65 66 67 69 73 74 76 89 101 105 129 130"},F:{"28":0.00324,"36":0.00324,"40":0.00324,"46":0.07126,"60":0.00324,"69":0.00324,"83":0.03239,"85":0.0162,"95":0.17491,"108":0.00324,"109":0.35629,"110":0.00972,"111":0.55711,_:"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 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 84 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"85":0.01296,"89":0.00324,"92":0.00972,"108":0.00648,"109":0.02915,"114":0.00324,"118":0.00324,"119":0.00324,"120":0.00972,"121":0.00324,"122":0.0162,"123":0.00648,"124":0.0162,"125":0.04859,"126":1.72315,"127":0.19434,_:"12 13 14 15 16 17 18 79 80 81 83 84 86 87 88 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 110 111 112 113 115 116 117"},E:{"8":0.00324,"9":0.00972,"11":0.00972,"13":0.00324,"14":0.00324,"15":0.00324,_:"0 4 5 6 7 10 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.4","12.1":0.0162,"13.1":0.00972,"14.1":0.02915,"15.1":0.00972,"15.2-15.3":0.00972,"15.5":0.00972,"15.6":0.13604,"16.0":0.00972,"16.1":0.00324,"16.2":0.01943,"16.3":0.01296,"16.4":0.00648,"16.5":0.00972,"16.6":0.10365,"17.0":0.00324,"17.1":0.00972,"17.2":0.04211,"17.3":0.00972,"17.4":0.02915,"17.5":0.60569,"17.6":0.00324,"18.0":0.00648},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00187,"5.0-5.1":0.00094,"6.0-6.1":0.00561,"7.0-7.1":0.00561,"8.1-8.4":0,"9.0-9.2":0.00468,"9.3":0.0187,"10.0-10.2":0.00374,"10.3":0.03273,"11.0-11.2":0.08604,"11.3-11.4":0.00935,"12.0-12.1":0.00655,"12.2-12.5":0.12064,"13.0-13.1":0.00187,"13.2":0.01964,"13.3":0.00655,"13.4-13.7":0.02806,"14.0-14.4":0.06453,"14.5-14.8":0.07294,"15.0-15.1":0.03647,"15.2-15.3":0.03928,"15.4":0.04489,"15.5":0.05424,"15.6-15.8":0.49752,"16.0":0.10006,"16.1":0.21229,"16.2":0.10661,"16.3":0.17862,"16.4":0.04208,"16.5":0.07575,"16.6-16.7":0.62096,"17.0":0.05611,"17.1":0.09071,"17.2":0.08791,"17.3":0.13186,"17.4":0.33012,"17.5":6.04503,"17.6":0.04676,"18.0":0.06172},P:{"4":0.7999,"20":0.02051,"21":0.08204,"22":0.0923,"23":0.07179,"24":0.08204,"25":3.71235,"5.0-5.4":0.07179,"6.2-6.4":0.07179,"7.2-7.4":0.02051,_:"8.2 10.1 12.0 16.0","9.2":0.01026,"11.1-11.2":0.01026,"13.0":0.01026,"14.0":0.01026,"15.0":0.01026,"17.0":0.04102,"18.0":0.01026,"19.0":0.06153},I:{"0":0.16846,"3":0,"4":0.00002,"2.1":0,"2.2":0.00003,"2.3":0,"4.1":0.0001,"4.2-4.3":0.00007,"4.4":0,"4.4.3-4.4.4":0.00029},K:{"0":0.31105,_:"10 11 12 11.1 11.5 12.1"},A:{"7":0.00324,"8":0.01296,"9":0.00324,"10":0.00324,"11":0.0162,_:"6 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":52.69021},R:{_:"0"},M:{"0":0.25696},Q:{_:"14.9"},O:{"0":0.01352},H:{"0":0}}; 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..f4ff193 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BB.js @@ -0,0 +1 @@ +module.exports={C:{"105":0.00905,"113":0.00453,"115":0.05431,"124":0.01358,"125":0.00453,"126":0.02716,"127":0.60196,"128":1.49811,_:"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 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 129 130 131 3.5 3.6"},D:{"39":0.00453,"47":0.00453,"49":0.00453,"54":0.00453,"55":0.00905,"65":0.00453,"69":0.01358,"76":0.00453,"79":0.00905,"80":0.04979,"81":0.00453,"83":0.00905,"84":0.00453,"85":0.00905,"87":0.00905,"88":0.04979,"89":0.00453,"93":0.00905,"94":0.00453,"95":0.01358,"96":0.00453,"97":0.00453,"98":0.00453,"103":1.92355,"104":0.00453,"107":0.00453,"108":0.00453,"109":0.77395,"110":0.00453,"111":0.00453,"112":0.00453,"113":0.01358,"114":0.01358,"115":0.00453,"116":0.04979,"117":0.00905,"118":0.00453,"119":0.02716,"120":0.01358,"121":0.06789,"122":0.06336,"123":0.12673,"124":0.08599,"125":0.4526,"126":22.71599,"127":2.02765,"128":0.00905,_:"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 40 41 42 43 44 45 46 48 50 51 52 53 56 57 58 59 60 61 62 63 64 66 67 68 70 71 72 73 74 75 77 78 86 90 91 92 99 100 101 102 105 106 129 130"},F:{"83":0.01358,"95":0.00905,"109":0.23083,"110":0.00453,"111":0.32135,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00453,"86":0.00453,"92":0.00453,"109":0.11768,"114":0.08147,"120":0.00905,"122":0.00453,"124":0.0181,"125":0.09957,"126":7.54032,"127":1.77872,_:"12 13 14 15 16 17 79 80 81 83 84 85 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 121 123"},E:{"13":0.00453,"14":0.00453,"15":0.00905,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3","13.1":0.02263,"14.1":0.11768,"15.4":0.00905,"15.5":0.06789,"15.6":0.18557,"16.0":0.00453,"16.1":0.2263,"16.2":0.00453,"16.3":0.03621,"16.4":0.02716,"16.5":0.04979,"16.6":0.11315,"17.0":0.2082,"17.1":0.0181,"17.2":0.00905,"17.3":0.06336,"17.4":0.04979,"17.5":1.6882,"17.6":0.00453,"18.0":0.00453},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00263,"5.0-5.1":0.00131,"6.0-6.1":0.00788,"7.0-7.1":0.00788,"8.1-8.4":0,"9.0-9.2":0.00657,"9.3":0.02628,"10.0-10.2":0.00526,"10.3":0.04599,"11.0-11.2":0.12089,"11.3-11.4":0.01314,"12.0-12.1":0.0092,"12.2-12.5":0.16951,"13.0-13.1":0.00263,"13.2":0.0276,"13.3":0.0092,"13.4-13.7":0.03942,"14.0-14.4":0.09067,"14.5-14.8":0.1025,"15.0-15.1":0.05125,"15.2-15.3":0.05519,"15.4":0.06308,"15.5":0.07622,"15.6-15.8":0.69908,"16.0":0.14061,"16.1":0.29829,"16.2":0.1498,"16.3":0.25099,"16.4":0.05913,"16.5":0.10644,"16.6-16.7":0.87254,"17.0":0.07884,"17.1":0.12746,"17.2":0.12352,"17.3":0.18528,"17.4":0.46387,"17.5":8.49413,"17.6":0.0657,"18.0":0.08673},P:{"4":0.0114,"20":0.0228,"21":0.057,"22":0.1368,"23":0.057,"24":0.1938,"25":3.70509,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 15.0 18.0","7.2-7.4":0.1482,"14.0":0.0228,"16.0":0.0114,"17.0":0.114,"19.0":0.0342},I:{"0":0.02727,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":0.17514,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":35.00589},R:{_:"0"},M:{"0":1.30257},Q:{_:"14.9"},O:{"0":0.07115},H:{"0":0}}; 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..bbe8f90 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BD.js @@ -0,0 +1 @@ +module.exports={C:{"40":0.00261,"47":0.00261,"49":0.00261,"51":0.00261,"52":0.00782,"56":0.00261,"72":0.00261,"81":0.00261,"87":0.00261,"88":0.03127,"99":0.00261,"102":0.00261,"103":0.00261,"105":0.01042,"106":0.00521,"107":0.01042,"108":0.00782,"109":0.00782,"110":0.00521,"111":0.00782,"112":0.00261,"113":0.00261,"115":0.54726,"116":0.00261,"117":0.00261,"119":0.00261,"121":0.00521,"122":0.00261,"123":0.00521,"124":0.00261,"125":0.00782,"126":0.01564,"127":0.79744,"128":1.10755,"129":0.05994,_:"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 41 42 43 44 45 46 48 50 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 82 83 84 85 86 89 90 91 92 93 94 95 96 97 98 100 101 104 114 118 120 130 131 3.5 3.6"},D:{"38":0.00261,"41":0.00261,"46":0.00261,"48":0.00261,"49":0.01042,"56":0.00782,"65":0.00782,"66":0.00261,"69":0.01564,"70":0.00521,"71":0.00261,"72":0.00261,"73":0.02085,"74":0.00782,"75":0.05733,"76":0.00261,"77":0.00521,"78":0.00521,"79":0.01042,"80":0.00521,"81":0.00782,"83":0.01042,"84":0.00261,"85":0.00521,"86":0.01042,"87":0.01303,"88":0.01303,"89":0.00521,"90":0.00521,"91":0.00521,"92":0.00261,"93":0.01303,"94":0.01564,"95":0.00521,"96":0.00521,"97":0.00521,"98":0.00521,"99":0.00521,"100":0.00261,"101":0.00782,"102":0.00521,"103":0.03648,"104":0.01824,"105":0.02345,"106":0.07036,"107":0.07297,"108":0.09903,"109":1.30821,"110":0.05212,"111":0.05733,"112":0.05733,"113":0.00521,"114":0.02085,"115":0.00782,"116":0.03127,"117":0.00782,"118":0.01303,"119":0.02867,"120":0.04951,"121":0.03909,"122":0.05733,"123":0.03909,"124":0.07818,"125":0.16939,"126":12.26905,"127":1.92844,"128":0.02606,"129":0.00261,_:"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 42 43 44 45 47 50 51 52 53 54 55 57 58 59 60 61 62 63 64 67 68 130"},F:{"46":0.00261,"79":0.00261,"83":0.03648,"84":0.00261,"85":0.00261,"91":0.00261,"93":0.00261,"94":0.00521,"95":0.03648,"96":0.00261,"97":0.00261,"106":0.01042,"107":0.01042,"109":0.086,"110":0.00261,"111":0.22151,_:"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 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 86 87 88 89 90 92 98 99 100 101 102 103 104 105 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00261,"13":0.00261,"14":0.00261,"16":0.00521,"17":0.00261,"18":0.01303,"84":0.00521,"89":0.00261,"90":0.00261,"92":0.03127,"100":0.00261,"103":0.00261,"105":0.00261,"106":0.00782,"107":0.01824,"108":0.01564,"109":0.02606,"110":0.00782,"111":0.01303,"112":0.00261,"113":0.00782,"114":0.00261,"117":0.01042,"118":0.02085,"119":0.00261,"120":0.01303,"121":0.01303,"122":0.00261,"123":0.00261,"124":0.00782,"125":0.02606,"126":0.89386,"127":0.16157,_:"15 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 104 115 116"},E:{_:"0 4 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 15.1 15.2-15.3","13.1":0.00261,"14.1":0.00521,"15.4":0.00261,"15.5":0.00261,"15.6":0.03127,"16.0":0.01303,"16.1":0.00521,"16.2":0.00261,"16.3":0.01042,"16.4":0.00261,"16.5":0.00521,"16.6":0.02606,"17.0":0.00261,"17.1":0.00782,"17.2":0.02606,"17.3":0.00521,"17.4":0.01564,"17.5":0.14594,"17.6":0.00261,"18.0":0.00261},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00055,"5.0-5.1":0.00028,"6.0-6.1":0.00165,"7.0-7.1":0.00165,"8.1-8.4":0,"9.0-9.2":0.00138,"9.3":0.00552,"10.0-10.2":0.0011,"10.3":0.00965,"11.0-11.2":0.02537,"11.3-11.4":0.00276,"12.0-12.1":0.00193,"12.2-12.5":0.03558,"13.0-13.1":0.00055,"13.2":0.00579,"13.3":0.00193,"13.4-13.7":0.00827,"14.0-14.4":0.01903,"14.5-14.8":0.02151,"15.0-15.1":0.01076,"15.2-15.3":0.01158,"15.4":0.01324,"15.5":0.016,"15.6-15.8":0.14672,"16.0":0.02951,"16.1":0.06261,"16.2":0.03144,"16.3":0.05268,"16.4":0.01241,"16.5":0.02234,"16.6-16.7":0.18313,"17.0":0.01655,"17.1":0.02675,"17.2":0.02592,"17.3":0.03889,"17.4":0.09736,"17.5":1.78275,"17.6":0.01379,"18.0":0.0182},P:{"4":0.10389,"20":0.01039,"21":0.01039,"22":0.03117,"23":0.03117,"24":0.03117,"25":0.35323,"5.0-5.4":0.01039,"6.2-6.4":0.02078,"7.2-7.4":0.07272,_:"8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 18.0 19.0","13.0":0.01039,"16.0":0.01039,"17.0":0.03117},I:{"0":0.09579,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00006,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00016},K:{"0":3.52348,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01425,"9":0.00285,"10":0.00285,"11":0.07126,_:"6 7 5.5"},S:{"2.5":0.00739,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":68.1331},R:{_:"0"},M:{"0":0.14049},Q:{"14.9":0.00739},O:{"0":2.07032},H:{"0":0.07}}; 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..c02c5bd --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BE.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00532,"52":0.02127,"55":0.01064,"68":0.00532,"78":0.07445,"83":0.01595,"87":0.00532,"91":0.00532,"101":0.00532,"102":0.00532,"103":0.00532,"105":0.00532,"108":0.00532,"110":0.00532,"111":0.01064,"113":0.00532,"115":0.62221,"118":0.02127,"120":0.00532,"121":0.00532,"122":0.00532,"123":0.01064,"124":0.01064,"125":0.02659,"126":0.10104,"127":1.27632,"128":2.11656,"129":0.02127,_:"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 53 54 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 88 89 90 92 93 94 95 96 97 98 99 100 104 106 107 109 112 114 116 117 119 130 131 3.5 3.6"},D:{"11":0.00532,"44":0.00532,"45":0.00532,"46":0.00532,"47":0.00532,"49":0.03723,"51":0.01064,"70":0.00532,"74":0.20208,"75":0.18613,"76":0.19145,"77":0.19145,"78":3.15889,"79":4.08954,"80":0.00532,"83":0.18081,"85":0.00532,"87":0.02659,"88":0.02127,"89":0.03723,"90":0.02127,"91":0.01595,"92":0.00532,"93":0.01064,"94":0.01064,"96":0.01064,"98":0.00532,"99":0.00532,"100":0.00532,"102":0.01064,"103":0.07977,"104":0.01595,"105":0.00532,"106":0.01595,"107":0.01064,"108":0.01595,"109":0.83493,"110":0.01064,"111":0.01064,"112":0.01064,"113":0.15422,"114":0.18081,"115":0.01064,"116":0.18613,"117":0.01064,"118":0.04786,"119":0.30844,"120":0.75516,"121":0.04254,"122":0.1489,"123":0.11168,"124":0.18613,"125":0.6807,"126":17.68235,"127":1.9783,"128":0.00532,_:"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 48 50 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 81 84 86 95 97 101 129 130"},F:{"83":0.01595,"95":0.02127,"102":0.01064,"109":0.6488,"110":0.01595,"111":0.3829,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"86":0.00532,"92":0.00532,"108":0.00532,"109":0.07445,"110":0.00532,"114":0.00532,"115":0.00532,"116":0.00532,"117":0.00532,"118":0.00532,"119":0.02127,"120":0.06913,"121":0.05318,"122":0.03191,"123":0.01595,"124":0.0585,"125":0.21804,"126":7.23248,"127":0.9466,_:"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 101 102 103 104 105 106 107 111 112 113"},E:{"9":0.01064,"13":0.00532,"14":0.02659,"15":0.00532,_:"0 4 5 6 7 8 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.02127,"13.1":0.10636,"14.1":0.11168,"15.1":0.01595,"15.2-15.3":0.01595,"15.4":0.02659,"15.5":0.03191,"15.6":0.61157,"16.0":0.04786,"16.1":0.09041,"16.2":0.06382,"16.3":0.10104,"16.4":0.04254,"16.5":0.06913,"16.6":0.54244,"17.0":0.03191,"17.1":0.08509,"17.2":0.09041,"17.3":0.07445,"17.4":0.22336,"17.5":3.11635,"17.6":0.02127,"18.0":0.01595},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00373,"5.0-5.1":0.00186,"6.0-6.1":0.01119,"7.0-7.1":0.01119,"8.1-8.4":0,"9.0-9.2":0.00932,"9.3":0.03729,"10.0-10.2":0.00746,"10.3":0.06525,"11.0-11.2":0.17152,"11.3-11.4":0.01864,"12.0-12.1":0.01305,"12.2-12.5":0.2405,"13.0-13.1":0.00373,"13.2":0.03915,"13.3":0.01305,"13.4-13.7":0.05593,"14.0-14.4":0.12864,"14.5-14.8":0.14542,"15.0-15.1":0.07271,"15.2-15.3":0.0783,"15.4":0.08949,"15.5":0.10813,"15.6-15.8":0.99185,"16.0":0.19949,"16.1":0.42321,"16.2":0.21254,"16.3":0.3561,"16.4":0.0839,"16.5":0.15101,"16.6-16.7":1.23794,"17.0":0.11186,"17.1":0.18084,"17.2":0.17525,"17.3":0.26288,"17.4":0.65812,"17.5":12.0513,"17.6":0.09322,"18.0":0.12305},P:{"4":0.04249,"20":0.01062,"21":0.03187,"22":0.03187,"23":0.05312,"24":0.05312,"25":2.82585,_:"5.0-5.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 18.0","6.2-6.4":0.02125,"13.0":0.01062,"17.0":0.01062,"19.0":0.01062},I:{"0":0.10264,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00006,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00018},K:{"0":0.21069,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.02127,"9":0.00532,"10":0.00532,"11":0.04786,_:"6 7 5.5"},S:{"2.5":0.00468,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":23.89192},R:{_:"0"},M:{"0":0.41202},Q:{"14.9":0.00468},O:{"0":0.04214},H:{"0":0}}; 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..62ecb14 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BF.js @@ -0,0 +1 @@ +module.exports={C:{"44":0.00243,"47":0.00486,"52":0.00728,"56":0.00243,"57":0.00243,"64":0.00243,"68":0.00243,"70":0.00243,"72":0.01457,"78":0.00971,"85":0.03399,"89":0.00243,"98":0.00243,"99":0.00486,"105":0.00486,"108":0.00243,"110":0.00243,"113":0.00243,"114":0.00243,"115":0.26465,"118":0.00243,"121":0.00243,"123":0.00486,"124":0.00728,"125":0.00971,"126":0.0437,"127":0.91536,"128":1.2747,"129":0.00971,"130":0.00486,_:"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 45 46 48 49 50 51 53 54 55 58 59 60 61 62 63 65 66 67 69 71 73 74 75 76 77 79 80 81 82 83 84 86 87 88 90 91 92 93 94 95 96 97 100 101 102 103 104 106 107 109 111 112 116 117 119 120 122 131 3.5 3.6"},D:{"11":0.00243,"38":0.00243,"39":0.00243,"43":0.00243,"44":0.00243,"46":0.00243,"48":0.00243,"49":0.00243,"50":0.00486,"57":0.00243,"58":0.00243,"59":0.00728,"64":0.00243,"65":0.00243,"68":0.00243,"69":0.01214,"70":0.02428,"73":0.00971,"74":0.00486,"75":0.01214,"76":0.03885,"79":0.02185,"80":0.00728,"81":0.00728,"83":0.01942,"86":0.00486,"87":0.03156,"88":0.00243,"91":0.01942,"92":0.00243,"93":0.04856,"94":0.00728,"95":0.02428,"97":0.00243,"98":0.00486,"99":0.14325,"101":0.00243,"102":0.00243,"103":0.04128,"104":0.00243,"105":0.02185,"106":0.017,"107":0.00486,"108":0.00486,"109":1.1533,"110":0.00243,"112":0.00243,"114":0.00971,"115":0.00486,"116":0.04856,"117":0.00243,"118":0.00728,"119":0.05342,"120":0.05342,"121":0.05584,"122":0.03156,"123":0.56572,"124":0.0777,"125":0.10926,"126":6.92223,"127":1.1533,_:"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 40 41 42 45 47 51 52 53 54 55 56 60 61 62 63 66 67 71 72 77 78 84 85 89 90 96 100 111 113 128 129 130"},F:{"64":0.00243,"71":0.01214,"79":0.00728,"83":0.017,"95":0.02185,"106":0.00728,"108":0.00243,"109":0.0437,"110":0.01942,"111":0.74054,_:"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 65 66 67 68 69 70 72 73 74 75 76 77 78 80 81 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00728,"13":0.00728,"16":0.00243,"17":0.00486,"18":0.03156,"84":0.00243,"85":0.00243,"89":0.00486,"90":0.00486,"92":0.0437,"98":0.00728,"100":0.03642,"103":0.00243,"109":0.01942,"111":0.00486,"112":0.00243,"114":0.00243,"115":0.00243,"117":0.01457,"119":0.00243,"120":0.00971,"121":0.01457,"122":0.00971,"123":0.03156,"124":0.03399,"125":0.09955,"126":3.46718,"127":0.34235,_:"14 15 79 80 81 83 86 87 88 91 93 94 95 96 97 99 101 102 104 105 106 107 108 110 113 116 118"},E:{"11":0.01942,_:"0 4 5 6 7 8 9 10 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 14.1 15.1 15.2-15.3 16.4 17.2","12.1":0.00243,"13.1":0.00971,"15.4":0.00243,"15.5":0.00243,"15.6":0.01214,"16.0":0.00243,"16.1":0.00243,"16.2":0.00971,"16.3":0.06313,"16.5":0.00971,"16.6":0.017,"17.0":0.00243,"17.1":0.00243,"17.3":0.00971,"17.4":0.00728,"17.5":0.07284,"17.6":0.00243,"18.0":0.00728},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00073,"5.0-5.1":0.00036,"6.0-6.1":0.00218,"7.0-7.1":0.00218,"8.1-8.4":0,"9.0-9.2":0.00181,"9.3":0.00725,"10.0-10.2":0.00145,"10.3":0.01269,"11.0-11.2":0.03337,"11.3-11.4":0.00363,"12.0-12.1":0.00254,"12.2-12.5":0.04679,"13.0-13.1":0.00073,"13.2":0.00762,"13.3":0.00254,"13.4-13.7":0.01088,"14.0-14.4":0.02503,"14.5-14.8":0.02829,"15.0-15.1":0.01415,"15.2-15.3":0.01523,"15.4":0.01741,"15.5":0.02104,"15.6-15.8":0.19296,"16.0":0.03881,"16.1":0.08233,"16.2":0.04135,"16.3":0.06928,"16.4":0.01632,"16.5":0.02938,"16.6-16.7":0.24083,"17.0":0.02176,"17.1":0.03518,"17.2":0.03409,"17.3":0.05114,"17.4":0.12803,"17.5":2.34449,"17.6":0.01813,"18.0":0.02394},P:{"4":0.03123,"21":0.01041,"22":0.03123,"23":0.05206,"24":0.08329,"25":0.48934,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 17.0 18.0","7.2-7.4":0.02082,"13.0":0.01041,"16.0":0.01041,"19.0":0.01041},I:{"0":0.04527,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":2.21777,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00243,"11":0.01214,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":72.58635},R:{_:"0"},M:{"0":0.20444},Q:{"14.9":0.08329},O:{"0":0.19687},H:{"0":0.44}}; 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..f8227ae --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BG.js @@ -0,0 +1 @@ +module.exports={C:{"45":0.6867,"48":0.00315,"52":0.0693,"63":0.00315,"65":0.00315,"66":0.00315,"68":0.00315,"72":0.00315,"78":0.02205,"80":0.00315,"83":0.00315,"84":0.0378,"85":0.00315,"88":0.00945,"89":0.00315,"90":0.0063,"91":0.0063,"96":0.01575,"97":0.00315,"98":0.00315,"99":0.0063,"100":0.00315,"102":0.0063,"103":0.0126,"104":0.01575,"105":0.0063,"106":0.00315,"107":0.00315,"108":0.00945,"109":0.0063,"110":0.00315,"112":0.0126,"113":0.0126,"114":0.0063,"115":0.88515,"116":0.00315,"117":0.0063,"118":0.00315,"119":0.00315,"120":0.0063,"121":0.0063,"122":0.01575,"123":0.00945,"124":0.0126,"125":0.01575,"126":0.05355,"127":1.13715,"128":1.73565,"129":0.0063,"130":0.00315,_:"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 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 64 67 69 70 71 73 74 75 76 77 79 81 82 86 87 92 93 94 95 101 111 131 3.5 3.6"},D:{"49":0.04725,"51":0.00315,"63":0.00315,"65":0.00315,"70":0.00315,"71":0.00315,"73":0.00315,"74":0.00315,"77":0.00315,"78":0.00315,"79":0.0252,"80":0.00315,"81":0.00315,"83":0.0126,"84":0.00315,"85":0.00315,"86":0.0063,"87":0.0189,"88":0.00945,"89":0.00315,"90":0.0063,"91":0.0063,"92":0.00315,"93":0.02835,"94":0.0063,"95":0.00315,"96":0.00315,"97":0.0063,"98":0.00315,"99":0.02205,"100":0.0063,"101":0.00315,"102":0.00945,"103":0.0252,"104":0.0378,"105":0.00315,"106":0.0126,"107":0.00945,"108":0.0189,"109":2.70585,"110":0.00945,"111":0.0252,"112":0.0126,"113":0.09135,"114":0.0945,"115":0.063,"116":0.0315,"117":0.03465,"118":0.02205,"119":0.2457,"120":0.03465,"121":0.0441,"122":0.0756,"123":0.06615,"124":0.0945,"125":0.2961,"126":14.33565,"127":1.7892,"128":0.00945,_:"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 52 53 54 55 56 57 58 59 60 61 62 64 66 67 68 69 72 75 76 129 130"},F:{"36":0.00315,"46":0.00315,"79":0.00315,"83":0.0252,"85":0.0063,"86":0.00315,"94":0.00315,"95":0.0819,"99":0.00945,"109":0.1953,"110":0.0189,"111":0.50715,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 80 81 82 84 87 88 89 90 91 92 93 96 97 98 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00315,"86":0.01575,"92":0.00315,"100":0.00315,"107":0.00315,"109":0.0693,"110":0.00315,"111":0.00315,"114":0.00315,"115":0.00315,"116":0.00315,"117":0.00315,"119":0.0063,"120":0.0063,"121":0.0063,"122":0.0063,"123":0.0063,"124":0.01575,"125":0.04095,"126":2.4885,"127":0.3024,_:"12 13 14 15 16 17 79 80 81 83 84 85 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 108 112 113 118"},E:{"9":0.00315,"14":0.0063,"15":0.00315,_:"0 4 5 6 7 8 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.2-15.3","12.1":0.00315,"13.1":0.0063,"14.1":0.0189,"15.1":0.00315,"15.4":0.0063,"15.5":0.00315,"15.6":0.05985,"16.0":0.00945,"16.1":0.00945,"16.2":0.0063,"16.3":0.01575,"16.4":0.0063,"16.5":0.00945,"16.6":0.05355,"17.0":0.00945,"17.1":0.01575,"17.2":0.00945,"17.3":0.0189,"17.4":0.02835,"17.5":0.32445,"17.6":0.00315,"18.0":0.0063},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00206,"5.0-5.1":0.00103,"6.0-6.1":0.00619,"7.0-7.1":0.00619,"8.1-8.4":0,"9.0-9.2":0.00516,"9.3":0.02063,"10.0-10.2":0.00413,"10.3":0.03611,"11.0-11.2":0.09491,"11.3-11.4":0.01032,"12.0-12.1":0.00722,"12.2-12.5":0.13308,"13.0-13.1":0.00206,"13.2":0.02166,"13.3":0.00722,"13.4-13.7":0.03095,"14.0-14.4":0.07118,"14.5-14.8":0.08047,"15.0-15.1":0.04023,"15.2-15.3":0.04333,"15.4":0.04952,"15.5":0.05983,"15.6-15.8":0.54882,"16.0":0.11038,"16.1":0.23418,"16.2":0.1176,"16.3":0.19704,"16.4":0.04642,"16.5":0.08356,"16.6-16.7":0.68499,"17.0":0.0619,"17.1":0.10007,"17.2":0.09697,"17.3":0.14546,"17.4":0.36416,"17.5":6.66833,"17.6":0.05158,"18.0":0.06809},P:{"4":0.04036,"20":0.02018,"21":0.04036,"22":0.07063,"23":0.10089,"24":0.07063,"25":2.44161,_:"5.0-5.4 8.2 10.1 12.0 15.0","6.2-6.4":0.02018,"7.2-7.4":0.02018,"9.2":0.01009,"11.1-11.2":0.01009,"13.0":0.01009,"14.0":0.01009,"16.0":0.01009,"17.0":0.01009,"18.0":0.01009,"19.0":0.02018},I:{"0":0.25939,"3":0,"4":0.00003,"2.1":0,"2.2":0.00005,"2.3":0,"4.1":0.00016,"4.2-4.3":0.0001,"4.4":0,"4.4.3-4.4.4":0.00044},K:{"0":0.30825,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00341,"11":0.03754,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":55.1177},R:{_:"0"},M:{"0":0.22605},Q:{_:"14.9"},O:{"0":0.0274},H:{"0":0}}; 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..7bea4d1 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BH.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.0183,"47":0.00686,"78":0.00229,"91":0.00686,"112":0.00229,"115":0.0526,"121":0.00229,"123":0.00229,"124":0.00457,"125":0.00229,"126":0.00457,"127":0.23785,"128":0.34534,_:"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 43 44 45 46 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 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 116 117 118 119 120 122 129 130 131 3.5 3.6"},D:{"11":0.00229,"38":0.00915,"47":0.00229,"49":0.00229,"56":0.00229,"57":0.00229,"58":0.07547,"59":0.00229,"62":0.00229,"65":0.01144,"66":0.00457,"68":0.01144,"69":0.00229,"70":0.00229,"72":0.00229,"73":0.01144,"75":0.01372,"76":0.00686,"78":0.00229,"79":0.09148,"81":0.00229,"83":0.00457,"85":0.00229,"86":0.00229,"87":0.05718,"88":0.01144,"89":0.00686,"90":0.00229,"91":0.00229,"92":0.00229,"93":0.01144,"94":0.00229,"95":0.00915,"97":0.00229,"98":0.00686,"99":0.01601,"100":0.00229,"101":0.01144,"102":0.00229,"103":0.04803,"104":0.00915,"105":0.00457,"106":0.00229,"107":0.00229,"108":0.01372,"109":0.57861,"110":0.00915,"111":0.00686,"112":0.04117,"113":0.20812,"114":0.24242,"115":0.00457,"116":0.06175,"117":0.01144,"118":0.01601,"119":0.05718,"120":0.03431,"121":0.02058,"122":0.10063,"123":0.04574,"124":0.05718,"125":0.24242,"126":11.07594,"127":1.16866,"128":0.00229,_:"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 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 60 61 63 64 67 71 74 77 80 84 96 129 130"},F:{"28":0.00229,"36":0.01372,"46":0.01372,"82":0.00229,"83":0.0183,"85":0.00229,"95":0.00229,"103":0.00229,"105":0.00457,"107":0.02516,"108":0.00915,"109":0.1052,"110":0.02973,"111":0.06861,_:"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 84 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 104 106 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00457,"16":0.00229,"18":0.00229,"92":0.01144,"100":0.00229,"107":0.00229,"109":0.00686,"110":0.00229,"114":0.00229,"115":0.00229,"117":0.00229,"119":0.00686,"120":0.01601,"121":0.00229,"122":0.00457,"123":0.00457,"124":0.08691,"125":0.06175,"126":2.83359,"127":0.4391,_:"12 13 14 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 108 111 112 113 116 118"},E:{"13":0.00229,"14":0.00686,"15":0.00229,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00229,"13.1":0.00915,"14.1":0.03888,"15.1":0.00229,"15.2-15.3":0.01372,"15.4":0.00686,"15.5":0.04345,"15.6":0.22184,"16.0":0.00686,"16.1":0.02058,"16.2":0.01372,"16.3":0.05946,"16.4":0.01601,"16.5":0.02744,"16.6":0.17839,"17.0":0.00915,"17.1":0.02287,"17.2":0.02516,"17.3":0.04345,"17.4":0.04803,"17.5":0.8805,"17.6":0.00229,"18.0":0.01144},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00385,"5.0-5.1":0.00193,"6.0-6.1":0.01155,"7.0-7.1":0.01155,"8.1-8.4":0,"9.0-9.2":0.00963,"9.3":0.0385,"10.0-10.2":0.0077,"10.3":0.06738,"11.0-11.2":0.17712,"11.3-11.4":0.01925,"12.0-12.1":0.01348,"12.2-12.5":0.24835,"13.0-13.1":0.00385,"13.2":0.04043,"13.3":0.01348,"13.4-13.7":0.05775,"14.0-14.4":0.13284,"14.5-14.8":0.15016,"15.0-15.1":0.07508,"15.2-15.3":0.08086,"15.4":0.09241,"15.5":0.11166,"15.6-15.8":1.02419,"16.0":0.20599,"16.1":0.43701,"16.2":0.21947,"16.3":0.36771,"16.4":0.08663,"16.5":0.15594,"16.6-16.7":1.27831,"17.0":0.11551,"17.1":0.18674,"17.2":0.18097,"17.3":0.27145,"17.4":0.67958,"17.5":12.44427,"17.6":0.09626,"18.0":0.12706},P:{"4":0.01034,"20":0.01034,"21":0.02067,"22":0.09302,"23":0.16538,"24":0.12403,"25":1.92248,_:"5.0-5.4 8.2 9.2 10.1 12.0 13.0 16.0 18.0","6.2-6.4":0.02067,"7.2-7.4":0.02067,"11.1-11.2":0.03101,"14.0":0.01034,"15.0":0.03101,"17.0":0.01034,"19.0":0.02067},I:{"0":0.03843,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00007},K:{"0":1.03126,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00229,"10":0.00229,"11":0.06175,_:"6 7 9 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":52.29383},R:{_:"0"},M:{"0":0.73274},Q:{_:"14.9"},O:{"0":2.50673},H:{"0":0.01}}; 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..c3ddb39 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BI.js @@ -0,0 +1 @@ +module.exports={C:{"40":0.02088,"51":0.00261,"52":0.01305,"54":0.00261,"57":0.00261,"66":0.00261,"69":0.00261,"71":0.00261,"72":0.00261,"82":0.00522,"89":0.01044,"92":0.00522,"97":0.00522,"99":0.00783,"100":0.00261,"101":0.00261,"102":0.01044,"103":0.00261,"105":0.01827,"108":0.00261,"109":0.00783,"112":0.01305,"113":0.00261,"114":0.00261,"115":0.28188,"116":0.00261,"117":0.00522,"118":0.00522,"119":0.00522,"121":0.01305,"123":0.0261,"124":0.00522,"125":0.00261,"126":0.02349,"127":0.49851,"128":0.81693,"129":0.01566,_:"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 41 42 43 44 45 46 47 48 49 50 53 55 56 58 59 60 61 62 63 64 65 67 68 70 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 98 104 106 107 110 111 120 122 130 131 3.5 3.6"},D:{"26":0.00783,"44":0.00261,"48":0.00261,"52":0.00261,"56":0.00783,"58":0.00522,"59":0.00522,"63":0.01566,"64":0.0261,"70":0.01305,"71":0.00783,"76":0.00522,"79":0.01827,"80":0.01044,"81":0.01305,"83":0.00522,"84":0.00783,"86":0.0261,"87":0.00261,"88":0.00261,"89":0.03132,"91":0.04437,"92":0.13572,"93":0.01827,"94":0.01044,"97":0.00261,"98":0.01044,"99":0.03393,"100":0.00783,"103":0.04698,"104":0.01566,"105":0.00261,"106":0.01305,"107":0.01305,"108":0.01305,"109":0.94743,"110":0.00261,"111":0.00522,"112":0.01305,"113":0.01305,"114":0.01566,"115":0.04176,"116":0.09657,"117":0.00522,"118":0.01305,"119":0.03132,"120":0.02349,"121":0.04176,"122":0.02349,"123":0.06525,"124":0.06525,"125":0.3132,"126":9.03321,"127":1.05705,"128":0.00261,_:"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 34 35 36 37 38 39 40 41 42 43 45 46 47 49 50 51 53 54 55 57 60 61 62 65 66 67 68 69 72 73 74 75 77 78 85 90 95 96 101 102 129 130"},F:{"45":0.00261,"53":0.00261,"69":0.00261,"78":0.01566,"79":0.01044,"83":0.0261,"87":0.00783,"95":0.02088,"104":0.00522,"107":0.00261,"108":0.00783,"109":0.04176,"110":0.01566,"111":0.59508,_:"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 46 47 48 49 50 51 52 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 80 81 82 84 85 86 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 105 106 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.02088,"13":0.01044,"14":0.00261,"17":0.00261,"18":0.07569,"84":0.02088,"88":0.00522,"89":0.00783,"90":0.01305,"92":0.11745,"100":0.04698,"103":0.00261,"104":0.00261,"107":0.00261,"109":0.01566,"110":0.00261,"111":0.00522,"113":0.00522,"118":0.00522,"119":0.04176,"120":0.00783,"121":0.00783,"122":0.00522,"123":0.01566,"124":0.0261,"125":0.09135,"126":2.89971,"127":0.38106,_:"15 16 79 80 81 83 85 86 87 91 93 94 95 96 97 98 99 101 102 105 106 108 112 114 115 116 117"},E:{"13":0.00261,"14":0.00522,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 15.2-15.3 15.4 16.0 16.2 16.4 17.0 17.1 17.2 17.3 17.4 17.6","5.1":0.00261,"12.1":0.00522,"13.1":0.21402,"14.1":0.00522,"15.1":0.00261,"15.5":0.00261,"15.6":0.01044,"16.1":0.00261,"16.3":0.00261,"16.5":0.00783,"16.6":0.09918,"17.5":0.03915,"18.0":0.00522},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00064,"5.0-5.1":0.00032,"6.0-6.1":0.00192,"7.0-7.1":0.00192,"8.1-8.4":0,"9.0-9.2":0.0016,"9.3":0.0064,"10.0-10.2":0.00128,"10.3":0.0112,"11.0-11.2":0.02944,"11.3-11.4":0.0032,"12.0-12.1":0.00224,"12.2-12.5":0.04128,"13.0-13.1":0.00064,"13.2":0.00672,"13.3":0.00224,"13.4-13.7":0.0096,"14.0-14.4":0.02208,"14.5-14.8":0.02496,"15.0-15.1":0.01248,"15.2-15.3":0.01344,"15.4":0.01536,"15.5":0.01856,"15.6-15.8":0.17023,"16.0":0.03424,"16.1":0.07264,"16.2":0.03648,"16.3":0.06112,"16.4":0.0144,"16.5":0.02592,"16.6-16.7":0.21247,"17.0":0.0192,"17.1":0.03104,"17.2":0.03008,"17.3":0.04512,"17.4":0.11296,"17.5":2.0684,"17.6":0.016,"18.0":0.02112},P:{"4":0.07498,"20":0.04285,"21":0.01071,"22":0.03213,"23":0.05356,"24":0.01071,"25":0.39632,"5.0-5.4":0.04285,"6.2-6.4":0.01071,"7.2-7.4":0.08569,_:"8.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 18.0","9.2":0.01071,"14.0":0.01071,"17.0":0.02142,"19.0":0.03213},I:{"0":0.05155,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00009},K:{"0":5.84431,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0522,_:"6 7 8 9 10 5.5"},S:{"2.5":0.2956,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":67.14261},R:{_:"0"},M:{"0":0.00739},Q:{_:"14.9"},O:{"0":0.1478},H:{"0":1.76}}; 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..00e813e --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BJ.js @@ -0,0 +1 @@ +module.exports={C:{"43":0.00229,"52":0.00687,"65":0.00229,"72":0.0206,"79":0.00229,"88":0.00229,"89":0.00687,"102":0.00229,"103":0.00229,"111":0.00229,"115":0.13505,"118":0.00229,"122":0.00229,"123":0.00916,"124":0.00916,"125":0.02747,"126":0.01373,"127":0.34335,"128":0.81031,"129":0.00687,_:"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 44 45 46 47 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 77 78 80 81 82 83 84 85 86 87 90 91 92 93 94 95 96 97 98 99 100 101 104 105 106 107 108 109 110 112 113 114 116 117 119 120 121 130 131 3.5 3.6"},D:{"43":0.00458,"44":0.00229,"47":0.00229,"49":0.00687,"50":0.00229,"51":0.00229,"58":0.00229,"59":0.00229,"61":0.00916,"63":0.00229,"64":0.00458,"68":0.00229,"70":0.02289,"72":0.00229,"73":0.00229,"74":0.02289,"75":0.00229,"76":0.00458,"77":0.00687,"78":0.01145,"79":0.01602,"80":0.00916,"81":0.00458,"83":0.00458,"84":0.00229,"85":0.00458,"86":0.00687,"87":0.00458,"88":0.03891,"91":0.00916,"93":0.04349,"94":0.00687,"95":0.0412,"96":0.00687,"97":0.02518,"99":0.00458,"101":0.00229,"102":0.01145,"103":0.02976,"104":0.00458,"105":0.02289,"106":0.21059,"107":0.00229,"108":0.01145,"109":1.44665,"110":0.01145,"111":0.04807,"112":0.00229,"113":0.00687,"114":0.03205,"115":0.00458,"116":0.05265,"117":0.00687,"118":0.03891,"119":0.05036,"120":0.0618,"121":0.02747,"122":0.02289,"123":0.23806,"124":0.09843,"125":0.21746,"126":9.37117,"127":0.8744,"128":0.00687,_:"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 45 46 48 52 53 54 55 56 57 60 62 65 66 67 69 71 89 90 92 98 100 129 130"},F:{"37":0.00687,"45":0.00229,"52":0.00458,"79":0.00916,"83":0.01373,"84":0.00229,"86":0.00229,"95":0.0412,"101":0.00229,"105":0.00458,"107":0.00229,"108":0.00229,"109":0.03205,"110":0.0206,"111":0.46925,_:"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 38 39 40 41 42 43 44 46 47 48 49 50 51 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 85 87 88 89 90 91 92 93 94 96 97 98 99 100 102 103 104 106 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00229,"14":0.00229,"17":0.00229,"18":0.01373,"84":0.00458,"85":0.00229,"89":0.00687,"90":0.00458,"92":0.03205,"99":0.00229,"100":0.01145,"105":0.00229,"107":0.00687,"109":0.02289,"110":0.00687,"112":0.00229,"113":0.00229,"114":0.00229,"115":0.00229,"117":0.00229,"118":0.00229,"119":0.00229,"120":0.00458,"121":0.00229,"122":0.03205,"123":0.00687,"124":0.01145,"125":0.0412,"126":1.78084,"127":0.23348,_:"13 15 16 79 80 81 83 86 87 88 91 93 94 95 96 97 98 101 102 103 104 106 108 111 116"},E:{"13":0.00229,"15":0.00458,_:"0 4 5 6 7 8 9 10 11 12 14 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.4","5.1":0.00229,"13.1":0.00458,"14.1":0.00458,"15.1":0.00229,"15.2-15.3":0.01373,"15.5":0.00229,"15.6":0.0412,"16.0":0.00229,"16.1":0.00916,"16.2":0.03434,"16.3":0.01602,"16.4":0.00916,"16.5":0.00687,"16.6":0.07554,"17.0":0.00458,"17.1":0.01831,"17.2":0.01373,"17.3":0.00687,"17.4":0.07554,"17.5":0.38684,"17.6":0.00229,"18.0":0.00229},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0013,"5.0-5.1":0.00065,"6.0-6.1":0.00391,"7.0-7.1":0.00391,"8.1-8.4":0,"9.0-9.2":0.00326,"9.3":0.01305,"10.0-10.2":0.00261,"10.3":0.02283,"11.0-11.2":0.06002,"11.3-11.4":0.00652,"12.0-12.1":0.00457,"12.2-12.5":0.08415,"13.0-13.1":0.0013,"13.2":0.0137,"13.3":0.00457,"13.4-13.7":0.01957,"14.0-14.4":0.04501,"14.5-14.8":0.05088,"15.0-15.1":0.02544,"15.2-15.3":0.0274,"15.4":0.03131,"15.5":0.03784,"15.6-15.8":0.34705,"16.0":0.0698,"16.1":0.14808,"16.2":0.07437,"16.3":0.1246,"16.4":0.02936,"16.5":0.05284,"16.6-16.7":0.43316,"17.0":0.03914,"17.1":0.06328,"17.2":0.06132,"17.3":0.09198,"17.4":0.23028,"17.5":4.21679,"17.6":0.03262,"18.0":0.04306},P:{"20":0.01102,"21":0.03305,"22":0.02203,"23":0.01102,"24":0.03305,"25":0.31946,_:"4 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 16.0 17.0 18.0 19.0","15.0":0.02203},I:{"0":0.02305,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":2.67129,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00229,_:"6 7 8 9 10 5.5"},S:{"2.5":0.03856,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":69.19332},R:{_:"0"},M:{"0":0.09253},Q:{"14.9":0.01542},O:{"0":0.29302},H:{"0":1.67}}; 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..f92da38 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BM.js @@ -0,0 +1 @@ +module.exports={C:{"127":0.00255,"128":0.00766,_:"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 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 129 130 131 3.5 3.6"},D:{"109":0.01021,"116":0.00255,"122":0.00255,"124":0.00255,"125":0.01277,"126":0.19658,"127":0.02042,_:"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 108 110 111 112 113 114 115 117 118 119 120 121 123 128 129 130"},F:{"109":0.00255,"111":0.00255,_:"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 99 100 101 102 103 104 105 106 107 108 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.00511,"125":0.00511,"126":0.10723,"127":0.01277,_:"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 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124"},E:{_:"0 4 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":0.00255,"14.1":0.01021,"15.1":0.0434,"15.2-15.3":0.01021,"15.4":0.05106,"15.5":0.13276,"15.6":1.62371,"16.0":0.05361,"16.1":0.23743,"16.2":0.31657,"16.3":0.75569,"16.4":0.1685,"16.5":0.30891,"16.6":2.82107,"17.0":0.08425,"17.1":0.27317,"17.2":0.2987,"17.3":0.27828,"17.4":0.89355,"17.5":16.30346,"17.6":0.07404,"18.0":0.03574},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.01483,"5.0-5.1":0.00741,"6.0-6.1":0.04448,"7.0-7.1":0.04448,"8.1-8.4":0,"9.0-9.2":0.03707,"9.3":0.14826,"10.0-10.2":0.02965,"10.3":0.25946,"11.0-11.2":0.68202,"11.3-11.4":0.07413,"12.0-12.1":0.05189,"12.2-12.5":0.95631,"13.0-13.1":0.01483,"13.2":0.15568,"13.3":0.05189,"13.4-13.7":0.2224,"14.0-14.4":0.51151,"14.5-14.8":0.57823,"15.0-15.1":0.28912,"15.2-15.3":0.31136,"15.4":0.35584,"15.5":0.42997,"15.6-15.8":3.94384,"16.0":0.79322,"16.1":1.6828,"16.2":0.84511,"16.3":1.41593,"16.4":0.3336,"16.5":0.60047,"16.6-16.7":4.92239,"17.0":0.44479,"17.1":0.71908,"17.2":0.69684,"17.3":1.04527,"17.4":2.61687,"17.5":47.91917,"17.6":0.37066,"18.0":0.48927},P:{"25":0.04765,_:"4 20 21 22 23 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.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":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":0.24593},R:{_:"0"},M:{"0":0.00745},Q:{_:"14.9"},O:{_:"0"},H:{"0":0}}; 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..2765e93 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BN.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.00377,"34":0.00377,"40":0.00377,"52":0.00377,"78":0.00377,"98":0.00377,"104":0.00377,"105":0.00377,"107":0.00377,"115":0.36917,"117":0.00377,"120":0.02637,"121":0.00377,"124":0.00753,"125":0.00377,"126":0.0113,"127":0.7421,"128":1.19791,"129":0.0113,_:"2 3 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 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 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 99 100 101 102 103 106 108 109 110 111 112 113 114 116 118 119 122 123 130 131 3.5","3.6":0.00377},D:{"37":0.01507,"38":0.0452,"39":0.00377,"41":0.00377,"42":0.00377,"43":0.00753,"44":0.0113,"45":0.00753,"46":0.01507,"47":0.0113,"49":0.00377,"51":0.01507,"55":0.0113,"56":0.00377,"58":0.0113,"65":0.00753,"68":0.00377,"69":0.00753,"70":0.03014,"73":0.0113,"75":0.00377,"79":0.13938,"81":0.02637,"83":0.00753,"87":0.03767,"88":0.01884,"89":0.00377,"91":0.0113,"93":0.00377,"95":0.00377,"97":0.00377,"98":0.0113,"99":0.00753,"100":0.00377,"101":0.00377,"102":0.00377,"103":0.24109,"105":0.02637,"106":0.07534,"107":0.0113,"108":0.02637,"109":2.02288,"110":0.00377,"111":0.00377,"112":0.02637,"114":0.00753,"115":0.00753,"116":0.07157,"117":0.01507,"118":0.01884,"119":0.04897,"120":0.0452,"121":0.01507,"122":0.15445,"123":0.09418,"124":0.16198,"125":0.41437,"126":16.232,"127":2.06432,"128":0.00753,_:"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 40 48 50 52 53 54 57 59 60 61 62 63 64 66 67 71 72 74 76 77 78 80 84 85 86 90 92 94 96 104 113 129 130"},F:{"31":0.00377,"46":0.00377,"83":0.12431,"95":0.07911,"109":0.54622,"110":0.00377,"111":0.29006,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 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 71 72 73 74 75 76 77 78 79 80 81 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00377,"15":0.00377,"18":0.00377,"92":0.00377,"98":0.00377,"99":0.00377,"100":0.00377,"106":0.0226,"107":0.03014,"108":0.02637,"109":0.02637,"113":0.25616,"114":0.00377,"117":0.01884,"118":0.00377,"119":0.0113,"120":0.01507,"121":0.00753,"122":0.01884,"123":0.00753,"124":0.0113,"125":0.0339,"126":3.52215,"127":0.34656,_:"13 14 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 101 102 103 104 105 110 111 112 115 116"},E:{"8":0.00377,"9":0.03767,"12":0.00753,"13":0.00753,"14":0.05274,"15":0.01884,_:"0 4 5 6 7 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.0113,"14.1":0.09418,"15.1":0.01507,"15.2-15.3":0.00753,"15.4":0.01507,"15.5":0.02637,"15.6":0.44451,"16.0":0.03014,"16.1":0.04897,"16.2":0.0452,"16.3":0.07534,"16.4":0.0226,"16.5":0.05274,"16.6":0.30889,"17.0":0.04897,"17.1":0.04144,"17.2":0.07534,"17.3":0.09418,"17.4":0.14691,"17.5":3.0136,"17.6":0.0113,"18.0":0.00753},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00366,"5.0-5.1":0.00183,"6.0-6.1":0.01098,"7.0-7.1":0.01098,"8.1-8.4":0,"9.0-9.2":0.00915,"9.3":0.03659,"10.0-10.2":0.00732,"10.3":0.06403,"11.0-11.2":0.1683,"11.3-11.4":0.01829,"12.0-12.1":0.01281,"12.2-12.5":0.23599,"13.0-13.1":0.00366,"13.2":0.03842,"13.3":0.01281,"13.4-13.7":0.05488,"14.0-14.4":0.12623,"14.5-14.8":0.14269,"15.0-15.1":0.07135,"15.2-15.3":0.07683,"15.4":0.08781,"15.5":0.1061,"15.6-15.8":0.97323,"16.0":0.19574,"16.1":0.41527,"16.2":0.20855,"16.3":0.34941,"16.4":0.08232,"16.5":0.14818,"16.6-16.7":1.21471,"17.0":0.10976,"17.1":0.17745,"17.2":0.17196,"17.3":0.25794,"17.4":0.64577,"17.5":11.82515,"17.6":0.09147,"18.0":0.12074},P:{"4":0.4251,"20":0.0109,"21":0.0218,"22":0.0218,"23":0.0218,"24":0.0327,"25":1.17721,"5.0-5.4":0.0436,"6.2-6.4":0.0109,"7.2-7.4":0.0763,_:"8.2 9.2 10.1 12.0 14.0 15.0 17.0 18.0 19.0","11.1-11.2":0.0109,"13.0":0.0218,"16.0":0.0109},I:{"0":0.14907,"3":0,"4":0.00001,"2.1":0,"2.2":0.00003,"2.3":0,"4.1":0.00009,"4.2-4.3":0.00006,"4.4":0,"4.4.3-4.4.4":0.00025},K:{"0":3.0217,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.00471,"7":0.00471,"8":0.08005,"9":0.01884,"10":0.01884,"11":0.03767,_:"5.5"},S:{"2.5":0.00623,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":38.55401},R:{_:"0"},M:{"0":0.17452},Q:{_:"14.9"},O:{"0":1.75147},H:{"0":0.02}}; 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..0d97a44 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BO.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.01506,"58":0.01883,"78":0.01883,"81":0.00377,"100":0.00377,"108":0.00377,"115":0.44051,"119":0.00377,"120":0.00377,"121":0.00377,"122":0.00377,"123":0.00377,"124":0.00377,"125":0.01506,"126":0.01883,"127":0.54216,"128":0.89984,"129":0.00377,_:"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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103 104 105 106 107 109 110 111 112 113 114 116 117 118 130 131 3.5 3.6"},D:{"38":0.0113,"43":0.00377,"44":0.00377,"45":0.00377,"46":0.00377,"47":0.00377,"49":0.00377,"51":0.00377,"60":0.00377,"62":0.00377,"65":0.00377,"67":0.00377,"69":0.01506,"70":0.02259,"71":0.00377,"72":0.00377,"73":0.00377,"74":0.00377,"75":0.00753,"77":0.00753,"78":0.00377,"79":0.05648,"80":0.00377,"81":0.00753,"83":0.0113,"84":0.00377,"85":0.00377,"86":0.01506,"87":0.04518,"88":0.02636,"89":0.00377,"90":0.00753,"91":0.83207,"92":0.0113,"93":0.00377,"94":0.0113,"95":0.0113,"96":0.00753,"97":0.0113,"98":0.00377,"99":0.0113,"100":0.00377,"101":0.00377,"102":0.00377,"103":0.06024,"104":0.00753,"105":0.03765,"106":0.0113,"107":0.00377,"108":0.02259,"109":5.9487,"110":0.07907,"111":0.00753,"112":0.0113,"113":0.00753,"114":0.02259,"115":0.00753,"116":0.12425,"117":0.00753,"118":0.01883,"119":0.04518,"120":0.11672,"121":0.07907,"122":0.11295,"123":0.06777,"124":0.13554,"125":0.53463,"126":16.06149,"127":2.02934,_:"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 48 50 52 53 54 55 56 57 58 59 61 63 64 66 68 76 128 129 130"},F:{"29":0.00377,"79":0.00377,"83":0.01883,"95":0.0753,"102":0.00377,"107":0.00377,"108":0.00377,"109":1.03538,"110":0.02636,"111":0.6777,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00377,"17":0.00377,"18":0.00377,"92":0.01883,"100":0.00377,"108":0.00377,"109":0.04518,"114":0.00377,"118":0.00377,"120":0.05271,"121":0.00753,"122":0.0113,"123":0.00753,"124":0.01883,"125":0.03765,"126":2.43596,"127":0.38027,_:"12 13 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 110 111 112 113 115 116 117 119"},E:{"9":0.00753,_:"0 4 5 6 7 8 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 17.6","5.1":0.0113,"13.1":0.01883,"14.1":0.01883,"15.6":0.03389,"16.0":0.00377,"16.1":0.00377,"16.2":0.0113,"16.3":0.00377,"16.4":0.00377,"16.5":0.00377,"16.6":0.04518,"17.0":0.00377,"17.1":0.0113,"17.2":0.18449,"17.3":0.00753,"17.4":0.03012,"17.5":0.21837,"18.0":0.00377},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00051,"5.0-5.1":0.00025,"6.0-6.1":0.00152,"7.0-7.1":0.00152,"8.1-8.4":0,"9.0-9.2":0.00127,"9.3":0.00506,"10.0-10.2":0.00101,"10.3":0.00886,"11.0-11.2":0.02329,"11.3-11.4":0.00253,"12.0-12.1":0.00177,"12.2-12.5":0.03266,"13.0-13.1":0.00051,"13.2":0.00532,"13.3":0.00177,"13.4-13.7":0.00759,"14.0-14.4":0.01747,"14.5-14.8":0.01974,"15.0-15.1":0.00987,"15.2-15.3":0.01063,"15.4":0.01215,"15.5":0.01468,"15.6-15.8":0.13467,"16.0":0.02709,"16.1":0.05746,"16.2":0.02886,"16.3":0.04835,"16.4":0.01139,"16.5":0.0205,"16.6-16.7":0.16809,"17.0":0.01519,"17.1":0.02455,"17.2":0.0238,"17.3":0.03569,"17.4":0.08936,"17.5":1.6363,"17.6":0.01266,"18.0":0.01671},P:{"4":0.12462,"20":0.02077,"21":0.07269,"22":0.11423,"23":0.10385,"24":0.08308,"25":1.67195,_:"5.0-5.4 8.2 9.2 10.1 12.0","6.2-6.4":0.01038,"7.2-7.4":0.3427,"11.1-11.2":0.02077,"13.0":0.04154,"14.0":0.01038,"15.0":0.01038,"16.0":0.02077,"17.0":0.06231,"18.0":0.01038,"19.0":0.03115},I:{"0":0.0932,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00006,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00016},K:{"0":0.56739,_:"10 11 12 11.1 11.5 12.1"},A:{"7":0.00377,"8":0.01506,"9":0.00377,"10":0.00377,"11":0.01883,_:"6 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":58.35585},R:{_:"0"},M:{"0":0.15588},Q:{_:"14.9"},O:{"0":0.23693},H:{"0":0}}; 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..3922c9b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BR.js @@ -0,0 +1 @@ +module.exports={C:{"3":0.0049,"11":0.0049,"52":0.0049,"59":0.02452,"78":0.0049,"81":0.0049,"88":0.00981,"91":0.00981,"102":0.00981,"105":0.0049,"108":0.0049,"109":0.0049,"110":0.0049,"111":0.0049,"113":0.0049,"114":0.00981,"115":0.26967,"116":0.0049,"118":0.0049,"119":0.0049,"120":0.0049,"121":0.00981,"122":0.0049,"123":0.0049,"124":0.0049,"125":0.01471,"126":0.04413,"127":0.56385,"128":0.89235,"129":0.00981,_:"2 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 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 82 83 84 85 86 87 89 90 92 93 94 95 96 97 98 99 100 101 103 104 106 107 112 117 130 131 3.5 3.6"},D:{"47":0.0049,"49":0.0049,"51":0.01471,"55":0.00981,"63":0.0049,"65":0.0049,"66":0.09316,"67":0.01961,"71":0.00981,"75":0.01961,"78":0.0049,"79":0.03432,"80":0.0049,"81":0.00981,"83":0.0049,"84":0.0049,"85":0.0049,"86":0.00981,"87":0.03922,"88":0.00981,"89":0.0049,"90":0.00981,"91":0.50011,"92":0.00981,"93":0.07845,"94":0.01471,"96":0.03432,"97":0.00981,"98":0.01471,"99":0.0049,"100":0.00981,"101":0.0049,"102":0.01471,"103":0.05393,"104":0.01471,"105":0.02452,"106":0.02942,"107":0.03432,"108":0.03432,"109":5.01087,"110":0.01961,"111":0.02452,"112":0.02942,"113":0.01471,"114":0.06864,"115":0.01961,"116":0.07845,"117":0.01471,"118":0.01961,"119":0.06864,"120":0.12258,"121":0.04903,"122":0.18141,"123":0.10787,"124":0.23534,"125":0.55894,"126":25.09846,"127":3.2605,"128":0.01471,_:"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 48 50 52 53 54 56 57 58 59 60 61 62 64 68 69 70 72 73 74 76 77 95 129 130"},F:{"36":0.0049,"83":0.01471,"87":0.0049,"95":0.03922,"102":0.0049,"107":0.0049,"109":1.68173,"110":0.00981,"111":0.86783,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 84 85 86 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.03432,"17":0.00981,"18":0.0049,"92":0.01961,"100":0.0049,"106":0.0049,"107":0.0049,"108":0.0049,"109":0.04903,"110":0.0049,"111":0.0049,"114":0.0049,"117":0.0049,"118":0.0049,"119":0.0049,"120":0.00981,"121":0.0049,"122":0.00981,"123":0.00981,"124":0.02942,"125":0.10787,"126":4.49115,"127":0.59326,_:"12 13 14 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 112 113 115 116"},E:{"4":0.0049,"14":0.0049,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.2-15.3 15.4","5.1":0.01471,"11.1":0.02452,"13.1":0.00981,"14.1":0.01471,"15.1":0.0049,"15.5":0.0049,"15.6":0.04413,"16.0":0.0049,"16.1":0.0049,"16.2":0.0049,"16.3":0.01471,"16.4":0.0049,"16.5":0.00981,"16.6":0.05393,"17.0":0.0049,"17.1":0.01471,"17.2":0.00981,"17.3":0.01471,"17.4":0.03432,"17.5":0.43637,"17.6":0.0049,"18.0":0.00981},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00135,"5.0-5.1":0.00067,"6.0-6.1":0.00405,"7.0-7.1":0.00405,"8.1-8.4":0,"9.0-9.2":0.00337,"9.3":0.0135,"10.0-10.2":0.0027,"10.3":0.02362,"11.0-11.2":0.0621,"11.3-11.4":0.00675,"12.0-12.1":0.00472,"12.2-12.5":0.08707,"13.0-13.1":0.00135,"13.2":0.01417,"13.3":0.00472,"13.4-13.7":0.02025,"14.0-14.4":0.04657,"14.5-14.8":0.05265,"15.0-15.1":0.02632,"15.2-15.3":0.02835,"15.4":0.0324,"15.5":0.03915,"15.6-15.8":0.35909,"16.0":0.07222,"16.1":0.15322,"16.2":0.07695,"16.3":0.12892,"16.4":0.03037,"16.5":0.05467,"16.6-16.7":0.44818,"17.0":0.0405,"17.1":0.06547,"17.2":0.06345,"17.3":0.09517,"17.4":0.23827,"17.5":4.36304,"17.6":0.03375,"18.0":0.04455},P:{"4":0.04132,"20":0.01033,"21":0.03099,"22":0.04132,"23":0.05164,"24":0.05164,"25":1.64231,_:"5.0-5.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 18.0","6.2-6.4":0.01033,"7.2-7.4":0.12395,"11.1-11.2":0.01033,"17.0":0.02066,"19.0":0.01033},I:{"0":0.02032,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.37215,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01581,"9":0.00527,"10":0.00527,"11":0.67477,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":42.02853},R:{_:"0"},M:{"0":0.13255},Q:{_:"14.9"},O:{"0":0.05098},H:{"0":0}}; 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..ea435fd --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BS.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00525,"95":0.00262,"113":0.00262,"114":0.00262,"115":0.02885,"124":0.00262,"126":0.00525,"127":0.07869,"128":0.11017,"129":0.00262,_:"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 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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 116 117 118 119 120 121 122 123 125 130 131 3.5 3.6"},D:{"51":0.00262,"57":0.00262,"71":0.00262,"75":0.00262,"76":0.00787,"83":0.00262,"87":0.00262,"88":0.00262,"90":0.01312,"91":0.00525,"93":0.01312,"94":0.00262,"97":0.00262,"98":0.00262,"103":0.05246,"104":0.00262,"106":0.00262,"107":0.00262,"108":0.00262,"109":0.16525,"110":0.00262,"111":0.00262,"112":0.00262,"114":0.00262,"116":0.0682,"118":0.00525,"119":0.00787,"120":0.01049,"121":0.00525,"122":0.01836,"123":0.01574,"124":0.04459,"125":0.10492,"126":2.99284,"127":0.29378,"128":0.00262,_:"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 52 53 54 55 56 58 59 60 61 62 63 64 65 66 67 68 69 70 72 73 74 77 78 79 80 81 84 85 86 89 92 95 96 99 100 101 102 105 113 115 117 129 130"},F:{"109":0.03148,"110":0.00262,"111":0.04721,_:"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 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00262,"84":0.00262,"92":0.00262,"107":0.00262,"109":0.01312,"115":0.01574,"122":0.00262,"123":0.00262,"124":0.00787,"125":0.02361,"126":1.41117,"127":0.15213,_:"13 14 15 16 17 18 79 80 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 108 110 111 112 113 114 116 117 118 119 120 121"},E:{"9":0.00525,"14":0.00787,"15":0.00262,_:"0 4 5 6 7 8 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00262,"13.1":0.08394,"14.1":0.02885,"15.1":0.02623,"15.2-15.3":0.04197,"15.4":0.19148,"15.5":0.14951,"15.6":1.29052,"16.0":0.01574,"16.1":0.18886,"16.2":0.1705,"16.3":0.44591,"16.4":0.08131,"16.5":0.16787,"16.6":2.04856,"17.0":0.04984,"17.1":0.22033,"17.2":0.1941,"17.3":0.23869,"17.4":0.67936,"17.5":13.21205,"17.6":0.07869,"18.0":0.04197},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.01344,"5.0-5.1":0.00672,"6.0-6.1":0.04031,"7.0-7.1":0.04031,"8.1-8.4":0,"9.0-9.2":0.0336,"9.3":0.13438,"10.0-10.2":0.02688,"10.3":0.23517,"11.0-11.2":0.61816,"11.3-11.4":0.06719,"12.0-12.1":0.04703,"12.2-12.5":0.86677,"13.0-13.1":0.01344,"13.2":0.1411,"13.3":0.04703,"13.4-13.7":0.20157,"14.0-14.4":0.46362,"14.5-14.8":0.52409,"15.0-15.1":0.26205,"15.2-15.3":0.2822,"15.4":0.32252,"15.5":0.38971,"15.6-15.8":3.57458,"16.0":0.71895,"16.1":1.52525,"16.2":0.76598,"16.3":1.28336,"16.4":0.30236,"16.5":0.54425,"16.6-16.7":4.46151,"17.0":0.40315,"17.1":0.65176,"17.2":0.6316,"17.3":0.9474,"17.4":2.37186,"17.5":43.43255,"17.6":0.33596,"18.0":0.44346},P:{"21":0.01035,"22":0.01035,"23":0.01035,"24":0.01035,"25":0.64146,_:"4 20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 17.0 18.0 19.0","7.2-7.4":0.01035,"11.1-11.2":0.01035,"16.0":0.01035},I:{"0":0.0147,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.02213,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00525,"11":0.00525,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":5.94023},R:{_:"0"},M:{"0":0.03689},Q:{_:"14.9"},O:{"0":0.00738},H:{"0":0}}; 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..11b386f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BT.js @@ -0,0 +1 @@ +module.exports={C:{"2":0.0084,"3":0.0028,"4":0.0084,"5":0.0056,"6":0.0028,"8":0.0028,"9":0.0028,"11":0.0028,"12":0.0056,"13":0.0028,"14":0.0028,"15":0.0056,"16":0.0028,"17":0.0028,"19":0.0028,"20":0.0056,"21":0.0028,"24":0.0056,"29":0.0028,"31":0.0056,"32":0.0028,"33":0.0056,"34":0.0028,"35":0.0056,"36":0.0056,"37":0.0056,"38":0.0084,"39":0.0084,"40":0.01961,"41":0.0084,"46":0.0028,"68":0.0028,"100":0.0028,"104":0.0028,"107":0.0028,"115":0.16526,"126":0.0028,"127":0.2801,"128":0.70865,_:"7 10 18 22 23 25 26 27 28 30 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 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 101 102 103 105 106 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 124 125 129 130 131","3.5":0.0028,"3.6":0.02521},D:{"6":0.0056,"7":0.0028,"16":0.0028,"17":0.0028,"19":0.0028,"21":0.0028,"25":0.0028,"26":0.0028,"28":0.0056,"29":0.0028,"30":0.0056,"31":0.0084,"32":0.0028,"34":0.0028,"35":0.0056,"36":0.0056,"37":0.0084,"38":0.01401,"39":0.0084,"40":0.0084,"41":0.01681,"42":0.01681,"43":0.02801,"44":0.05322,"45":0.03081,"46":0.05042,"47":0.01681,"51":0.07283,"67":0.0028,"69":0.0028,"70":0.03361,"74":0.0056,"76":0.0028,"79":0.0084,"87":0.03361,"89":0.0028,"90":0.0028,"91":0.0028,"94":0.01401,"96":0.0028,"97":0.0028,"98":0.04202,"99":0.01401,"100":0.0028,"102":0.01681,"103":0.07283,"104":0.0028,"105":0.0084,"106":0.03081,"107":0.0028,"108":0.0028,"109":1.30807,"110":0.0028,"111":0.0028,"113":0.0028,"114":0.0028,"115":0.0056,"116":0.07283,"117":0.0112,"118":0.0084,"119":0.0084,"120":0.02241,"121":0.0112,"122":0.02801,"123":0.11764,"124":0.06162,"125":0.25769,"126":13.07507,"127":2.21559,"128":0.0084,_:"4 5 8 9 10 11 12 13 14 15 18 20 22 23 24 27 33 48 49 50 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 71 72 73 75 77 78 80 81 83 84 85 86 88 92 93 95 101 112 129 130"},F:{"20":0.0028,"23":0.0028,"26":0.0028,"31":0.01401,"32":0.0056,"33":0.0028,"83":0.0112,"95":0.0056,"108":0.0028,"109":0.04482,"110":0.0084,"111":0.07843,_:"9 11 12 15 16 17 18 19 21 22 24 25 27 28 29 30 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.6","11.1":0.0028,"11.5":0.0028,"12.1":0.0084},B:{"12":0.0084,"13":0.0028,"14":0.0056,"18":0.0112,"90":0.0028,"92":0.0112,"96":0.0028,"98":0.0028,"99":0.0028,"100":0.0056,"101":0.0056,"106":0.0028,"107":0.0084,"109":0.02241,"110":0.0028,"111":0.0084,"112":0.0084,"113":0.0084,"114":0.0028,"115":0.01401,"116":0.0112,"117":0.0084,"118":0.0056,"119":0.01681,"120":0.0028,"121":0.01961,"122":0.01681,"123":0.04762,"124":0.08123,"125":0.06722,"126":3.10911,"127":0.66104,_:"15 16 17 79 80 81 83 84 85 86 87 88 89 91 93 94 95 97 102 103 104 105 108"},E:{"5":0.0056,"6":0.0028,"7":0.0028,"8":0.0028,"9":0.13445,_:"0 4 10 11 12 13 14 15 3.1 3.2 7.1 9.1 10.1 11.1 15.4 16.2 17.6 18.0","5.1":0.0028,"6.1":0.0056,"12.1":0.0056,"13.1":0.0056,"14.1":0.08403,"15.1":0.0028,"15.2-15.3":0.07003,"15.5":0.0028,"15.6":0.07843,"16.0":0.05042,"16.1":0.01961,"16.3":0.02801,"16.4":0.0028,"16.5":0.0028,"16.6":0.05322,"17.0":0.0028,"17.1":0.02801,"17.2":0.04762,"17.3":0.10364,"17.4":0.01961,"17.5":0.5686},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0012,"5.0-5.1":0.0006,"6.0-6.1":0.00361,"7.0-7.1":0.00361,"8.1-8.4":0,"9.0-9.2":0.00301,"9.3":0.01204,"10.0-10.2":0.00241,"10.3":0.02106,"11.0-11.2":0.05537,"11.3-11.4":0.00602,"12.0-12.1":0.00421,"12.2-12.5":0.07764,"13.0-13.1":0.0012,"13.2":0.01264,"13.3":0.00421,"13.4-13.7":0.01806,"14.0-14.4":0.04153,"14.5-14.8":0.04694,"15.0-15.1":0.02347,"15.2-15.3":0.02528,"15.4":0.02889,"15.5":0.03491,"15.6-15.8":0.32018,"16.0":0.0644,"16.1":0.13662,"16.2":0.06861,"16.3":0.11495,"16.4":0.02708,"16.5":0.04875,"16.6-16.7":0.39962,"17.0":0.03611,"17.1":0.05838,"17.2":0.05657,"17.3":0.08486,"17.4":0.21245,"17.5":3.89027,"17.6":0.03009,"18.0":0.03972},P:{"4":0.13489,"20":0.01038,"21":0.13489,"22":0.04151,"23":0.09339,"24":0.10376,"25":0.50845,_:"5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 15.0 16.0","6.2-6.4":0.06226,"7.2-7.4":0.20753,"13.0":0.01038,"14.0":0.03113,"17.0":0.01038,"18.0":0.01038,"19.0":0.06226},I:{"0":0.55238,"3":0,"4":0.00006,"2.1":0,"2.2":0.00011,"2.3":0,"4.1":0.00033,"4.2-4.3":0.00022,"4.4":0,"4.4.3-4.4.4":0.00094},K:{"0":0.67671,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.00845,"7":0.01409,"8":0.21419,"9":0.04791,"10":0.03664,"11":0.11273,"5.5":0.00845},S:{"2.5":0.0216,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":63.36471},R:{_:"0"},M:{"0":0.0144},Q:{_:"14.9"},O:{"0":1.78535},H:{"0":0}}; 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..f63d666 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BW.js @@ -0,0 +1 @@ +module.exports={C:{"30":0.00336,"34":0.0336,"47":0.00336,"49":0.0168,"52":0.01344,"65":0.00336,"78":0.00672,"88":0.00336,"95":0.00336,"110":0.00336,"114":0.00336,"115":0.15792,"119":0.00336,"124":0.00336,"125":0.00672,"126":0.02688,"127":0.48048,"128":0.6552,"129":0.0168,_:"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 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 111 112 113 116 117 118 120 121 122 123 130 131 3.5 3.6"},D:{"11":0.00672,"47":0.00336,"49":0.00336,"63":0.00336,"64":0.00672,"65":0.00672,"66":0.00336,"67":0.00336,"69":0.00672,"70":0.00336,"71":0.00336,"72":0.08736,"73":0.00336,"74":0.00336,"75":0.03696,"77":0.0168,"78":0.00336,"79":0.01344,"81":0.03024,"83":0.02016,"84":0.00336,"86":0.01008,"87":0.01344,"88":0.10752,"90":0.00336,"91":0.01008,"92":0.01344,"93":0.01008,"94":0.01344,"95":0.01008,"96":0.00336,"97":0.00336,"98":0.02352,"99":0.05712,"100":0.01008,"101":0.00336,"102":0.00672,"103":0.0504,"104":0.03696,"105":0.00336,"106":0.00336,"108":0.01008,"109":1.50528,"110":0.00672,"111":0.01008,"112":0.00336,"113":0.00336,"114":0.02688,"115":0.01008,"116":0.10752,"117":0.00672,"118":0.01344,"119":0.04032,"120":0.06384,"121":0.756,"122":0.14112,"123":0.09072,"124":0.1344,"125":0.27888,"126":14.18256,"127":1.85808,"128":0.00336,_:"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 48 50 51 52 53 54 55 56 57 58 59 60 61 62 68 76 80 85 89 107 129 130"},F:{"79":0.00336,"83":0.01008,"84":0.00336,"95":0.0168,"102":0.03696,"106":0.00336,"109":0.10416,"110":0.00672,"111":0.27888,_:"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 80 81 82 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.0168,"13":0.0336,"14":0.0168,"15":0.00336,"16":0.01008,"18":0.03024,"80":0.00672,"84":0.00672,"89":0.00336,"90":0.00672,"92":0.2016,"98":0.00672,"99":0.00336,"100":0.04032,"102":0.00336,"103":0.01008,"107":0.00336,"108":0.00336,"109":0.11088,"112":0.03024,"113":0.00336,"114":0.00336,"115":0.00672,"116":0.00672,"117":0.04704,"118":0.01344,"119":0.0672,"120":0.0168,"121":0.02352,"122":0.03696,"123":0.0336,"124":0.12768,"125":0.1344,"126":4.81824,"127":0.65856,_:"17 79 81 83 85 86 87 88 91 93 94 95 96 97 101 104 105 106 110 111"},E:{_:"0 4 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 15.1 15.2-15.3 15.4 16.2 18.0","13.1":0.02688,"14.1":0.0336,"15.5":0.01344,"15.6":0.09072,"16.0":0.02016,"16.1":0.01344,"16.3":0.02016,"16.4":0.00336,"16.5":0.02352,"16.6":0.0336,"17.0":0.00336,"17.1":0.00672,"17.2":0.02016,"17.3":0.00336,"17.4":0.03696,"17.5":0.44016,"17.6":0.00672},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00109,"5.0-5.1":0.00055,"6.0-6.1":0.00328,"7.0-7.1":0.00328,"8.1-8.4":0,"9.0-9.2":0.00273,"9.3":0.01093,"10.0-10.2":0.00219,"10.3":0.01913,"11.0-11.2":0.05028,"11.3-11.4":0.00546,"12.0-12.1":0.00383,"12.2-12.5":0.07049,"13.0-13.1":0.00109,"13.2":0.01148,"13.3":0.00383,"13.4-13.7":0.01639,"14.0-14.4":0.03771,"14.5-14.8":0.04262,"15.0-15.1":0.02131,"15.2-15.3":0.02295,"15.4":0.02623,"15.5":0.0317,"15.6-15.8":0.29072,"16.0":0.05847,"16.1":0.12405,"16.2":0.0623,"16.3":0.10438,"16.4":0.02459,"16.5":0.04426,"16.6-16.7":0.36286,"17.0":0.03279,"17.1":0.05301,"17.2":0.05137,"17.3":0.07705,"17.4":0.1929,"17.5":3.5324,"17.6":0.02732,"18.0":0.03607},P:{"4":0.22412,"20":0.04075,"21":0.02037,"22":0.13243,"23":0.06112,"24":0.07131,"25":1.8948,_:"5.0-5.4 8.2 9.2 10.1 14.0 15.0 18.0","6.2-6.4":0.02037,"7.2-7.4":0.20374,"11.1-11.2":0.01019,"12.0":0.07131,"13.0":0.01019,"16.0":0.01019,"17.0":0.03056,"19.0":0.07131},I:{"0":0.03308,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":1.1684,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.02016,_:"6 7 8 9 10 5.5"},S:{"2.5":0.12616,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":59.60008},R:{_:"0"},M:{"0":0.11288},Q:{_:"14.9"},O:{"0":0.53784},H:{"0":0.06}}; 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..0154f7f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BY.js @@ -0,0 +1 @@ +module.exports={C:{"43":0.00406,"52":0.38976,"60":0.00406,"72":0.00406,"78":0.00812,"88":0.00406,"91":0.00406,"96":0.06496,"105":0.0203,"106":0.00406,"110":0.00812,"111":0.00812,"113":0.00812,"115":0.66178,"119":0.00406,"120":0.00406,"121":0.00406,"122":0.00406,"123":0.01624,"124":0.06496,"125":0.0203,"126":0.02842,"127":0.4466,"128":0.77546,"129":0.00812,_:"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 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 92 93 94 95 97 98 99 100 101 102 103 104 107 108 109 112 114 116 117 118 130 131 3.5 3.6"},D:{"18":0.00406,"38":0.00406,"39":0.00406,"42":0.00406,"49":0.02436,"53":0.00406,"55":0.00406,"58":0.05278,"59":0.00406,"64":0.00406,"70":0.00406,"72":0.00406,"74":0.00406,"76":0.00406,"77":0.00812,"79":0.07308,"80":0.00406,"81":0.00406,"83":0.00406,"84":0.00406,"85":0.00406,"86":0.01218,"87":0.02842,"88":0.00812,"89":0.01624,"90":0.0203,"91":0.00406,"92":0.01218,"93":0.47908,"94":0.00812,"95":0.01218,"96":0.00406,"97":0.00812,"98":0.01218,"99":0.0203,"100":0.01218,"101":0.00406,"102":0.03248,"103":0.0203,"104":0.00812,"105":0.00812,"106":0.10962,"107":0.01218,"108":0.0609,"109":3.15056,"110":0.01218,"111":0.03248,"112":0.01624,"113":0.00812,"114":0.0203,"115":0.00812,"116":0.05684,"117":0.00812,"118":0.03654,"119":0.07308,"120":0.08526,"121":0.0609,"122":0.03654,"123":0.09338,"124":0.13804,"125":0.41006,"126":12.11098,"127":1.6037,"128":0.01624,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 40 41 43 44 45 46 47 48 50 51 52 54 56 57 60 61 62 63 65 66 67 68 69 71 73 75 78 129 130"},F:{"36":0.01218,"56":0.02436,"57":0.00406,"72":0.00406,"73":0.00406,"77":0.00406,"79":0.07714,"80":0.00406,"81":0.01218,"82":0.01624,"83":0.02842,"84":0.01218,"85":0.06902,"86":0.02436,"87":0.00812,"89":0.00812,"95":0.76734,"101":0.00406,"102":0.00406,"105":0.00406,"106":0.00406,"107":0.00406,"108":0.00812,"109":0.71456,"110":0.05278,"111":2.36292,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 58 60 62 63 64 65 66 67 68 69 70 71 74 75 76 78 88 90 91 92 93 94 96 97 98 99 100 103 104 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.00406},B:{"18":0.00406,"92":0.00812,"100":0.00406,"107":0.00406,"108":0.01218,"109":0.02842,"110":0.00812,"111":0.00406,"120":0.00406,"121":0.00406,"122":0.00406,"123":0.01218,"124":0.00812,"125":0.0406,"126":1.89196,"127":0.32074,_:"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 101 102 103 104 105 106 112 113 114 115 116 117 118 119"},E:{"14":0.00406,"15":0.00406,_:"0 4 5 6 7 8 9 10 11 12 13 3.1 3.2 6.1 7.1 10.1 11.1","5.1":0.00406,"9.1":0.00406,"12.1":0.00406,"13.1":0.02436,"14.1":0.03248,"15.1":0.00406,"15.2-15.3":0.00406,"15.4":0.01624,"15.5":0.02842,"15.6":0.22736,"16.0":0.00406,"16.1":0.03654,"16.2":0.15428,"16.3":0.10962,"16.4":0.01624,"16.5":0.03654,"16.6":0.49126,"17.0":0.02436,"17.1":0.05684,"17.2":0.06496,"17.3":0.06496,"17.4":0.22736,"17.5":2.1721,"17.6":0.00812,"18.0":0.01624},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00367,"5.0-5.1":0.00183,"6.0-6.1":0.01101,"7.0-7.1":0.01101,"8.1-8.4":0,"9.0-9.2":0.00917,"9.3":0.0367,"10.0-10.2":0.00734,"10.3":0.06422,"11.0-11.2":0.16881,"11.3-11.4":0.01835,"12.0-12.1":0.01284,"12.2-12.5":0.2367,"13.0-13.1":0.00367,"13.2":0.03853,"13.3":0.01284,"13.4-13.7":0.05505,"14.0-14.4":0.12661,"14.5-14.8":0.14312,"15.0-15.1":0.07156,"15.2-15.3":0.07706,"15.4":0.08807,"15.5":0.10642,"15.6-15.8":0.97615,"16.0":0.19633,"16.1":0.41651,"16.2":0.20917,"16.3":0.35046,"16.4":0.08257,"16.5":0.14862,"16.6-16.7":1.21835,"17.0":0.11009,"17.1":0.17798,"17.2":0.17248,"17.3":0.25872,"17.4":0.64771,"17.5":11.86057,"17.6":0.09174,"18.0":0.1211},P:{"4":0.04138,"21":0.02069,"22":0.01035,"23":0.06207,"24":0.02069,"25":0.74488,_:"20 5.0-5.4 8.2 9.2 10.1 12.0 13.0 14.0 16.0 17.0 18.0 19.0","6.2-6.4":0.19656,"7.2-7.4":0.01035,"11.1-11.2":0.01035,"15.0":0.01035},I:{"0":0.02368,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":1.3462,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.03451,"11":0.10353,_:"6 7 9 10 5.5"},S:{"2.5":0.01188,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":37.25684},R:{_:"0"},M:{"0":0.13068},Q:{_:"14.9"},O:{"0":0.05346},H:{"0":0.02}}; 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..a0b1484 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BZ.js @@ -0,0 +1 @@ +module.exports={C:{"3":0.00337,"4":0.00337,"28":0.00337,"35":0.00337,"36":0.00337,"38":0.00674,"40":0.00674,"78":0.00337,"112":0.00337,"114":0.00674,"115":0.04043,"116":0.00337,"117":0.00674,"118":0.00337,"125":0.00674,"126":0.03706,"127":0.25604,"128":0.47503,_:"2 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 37 39 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 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 119 120 121 122 123 124 129 130 131 3.5","3.6":0.00674},D:{"11":0.00337,"21":0.00337,"37":0.00337,"38":0.00337,"39":0.01011,"40":0.00337,"41":0.00674,"42":0.00337,"43":0.01348,"44":0.01685,"45":0.01348,"46":0.01348,"47":0.01011,"51":0.03032,"65":0.00337,"70":0.01011,"73":0.00337,"74":0.01348,"75":0.00674,"76":0.02358,"79":0.00674,"81":0.00674,"83":0.00337,"87":0.00674,"91":0.00674,"92":0.01011,"93":0.02695,"96":0.00337,"97":0.19877,"99":0.00337,"103":0.10107,"105":0.01011,"109":0.35711,"110":0.01685,"112":0.00337,"113":0.00337,"114":0.01685,"116":0.13813,"117":0.01011,"118":0.00337,"119":0.01348,"120":0.01011,"121":0.01348,"122":0.05054,"123":0.06738,"124":0.35375,"125":0.28637,"126":14.41595,"127":2.32124,"128":0.03032,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 48 49 50 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 71 72 77 78 80 84 85 86 88 89 90 94 95 98 100 101 102 104 106 107 108 111 115 129 130"},F:{"31":0.00337,"79":0.00337,"83":0.00674,"95":0.01011,"109":0.14824,"110":0.00674,"111":0.10107,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.00337},B:{"12":0.00337,"18":0.00337,"92":0.00337,"109":0.10781,"113":0.00337,"122":0.00337,"123":0.00337,"124":0.02358,"125":0.05054,"126":1.56659,"127":0.22235,_:"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 108 110 111 112 114 115 116 117 118 119 120 121"},E:{"4":0.00337,"5":0.00337,"8":0.00337,"9":0.05054,_:"0 6 7 10 11 12 13 14 15 3.1 3.2 6.1 9.1 10.1 12.1","5.1":0.00337,"7.1":0.00337,"11.1":0.00337,"13.1":0.00337,"14.1":0.01348,"15.1":0.04717,"15.2-15.3":0.09433,"15.4":0.37396,"15.5":0.0438,"15.6":0.53567,"16.0":0.00674,"16.1":0.03032,"16.2":0.06401,"16.3":0.12128,"16.4":0.06401,"16.5":0.12802,"16.6":0.36385,"17.0":0.05054,"17.1":0.08423,"17.2":0.06401,"17.3":0.0977,"17.4":0.37059,"17.5":6.66051,"17.6":0.04717,"18.0":0.02695},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00913,"5.0-5.1":0.00456,"6.0-6.1":0.02739,"7.0-7.1":0.02739,"8.1-8.4":0,"9.0-9.2":0.02282,"9.3":0.0913,"10.0-10.2":0.01826,"10.3":0.15977,"11.0-11.2":0.41996,"11.3-11.4":0.04565,"12.0-12.1":0.03195,"12.2-12.5":0.58886,"13.0-13.1":0.00913,"13.2":0.09586,"13.3":0.03195,"13.4-13.7":0.13694,"14.0-14.4":0.31497,"14.5-14.8":0.35605,"15.0-15.1":0.17803,"15.2-15.3":0.19172,"15.4":0.21911,"15.5":0.26476,"15.6-15.8":2.42846,"16.0":0.48843,"16.1":1.03621,"16.2":0.52038,"16.3":0.87187,"16.4":0.20542,"16.5":0.36975,"16.6-16.7":3.03101,"17.0":0.27389,"17.1":0.44278,"17.2":0.42909,"17.3":0.64363,"17.4":1.61137,"17.5":29.50674,"17.6":0.22824,"18.0":0.30128},P:{"4":0.04318,"21":0.01079,"22":0.02159,"23":0.02159,"24":0.03238,"25":0.90675,_:"20 5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 17.0 18.0 19.0","6.2-6.4":0.02159,"7.2-7.4":0.05397,"13.0":0.01079,"16.0":0.01079},I:{"0":0.23127,"3":0,"4":0.00002,"2.1":0,"2.2":0.00005,"2.3":0,"4.1":0.00014,"4.2-4.3":0.00009,"4.4":0,"4.4.3-4.4.4":0.00039},K:{"0":0.12599,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.00473,"7":0.00946,"8":0.12297,"9":0.01892,"10":0.01892,"11":0.06148,_:"5.5"},S:{"2.5":0.01326,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":20.15702},R:{_:"0"},M:{"0":0.30503},Q:{_:"14.9"},O:{"0":0.05968},H:{"0":0}}; 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..2babdd9 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CA.js @@ -0,0 +1 @@ +module.exports={C:{"38":0.03974,"43":0.02484,"44":0.07947,"45":0.02484,"47":0.00497,"48":0.00497,"52":0.0149,"57":0.0149,"59":0.00497,"70":0.00497,"77":0.00497,"78":0.02484,"83":0.00993,"88":0.01987,"91":0.00497,"100":0.00497,"102":0.00497,"103":0.0149,"104":0.00497,"105":0.00497,"107":0.00497,"108":0.00497,"110":0.00993,"111":0.00497,"113":0.01987,"114":0.00497,"115":0.31292,"116":0.00497,"118":0.00497,"120":0.00497,"121":0.00497,"122":0.03477,"123":0.03974,"124":0.0149,"125":0.03974,"126":0.07451,"127":0.87419,"128":1.45533,"129":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 39 40 41 42 46 49 50 51 53 54 55 56 58 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 79 80 81 82 84 85 86 87 89 90 92 93 94 95 96 97 98 99 101 106 109 112 117 119 130 131 3.5 3.6"},D:{"25":0.01987,"38":0.00497,"39":0.00497,"40":0.00497,"41":0.00497,"42":0.00497,"43":0.00497,"44":0.00993,"45":0.00497,"46":0.00497,"47":0.02484,"48":0.28312,"49":0.08941,"50":0.00497,"51":0.00497,"52":0.00497,"53":0.00497,"54":0.00497,"55":0.00497,"56":0.00497,"57":0.00497,"58":0.00497,"59":0.00497,"60":0.00497,"65":0.00497,"66":0.0149,"67":0.00497,"70":0.00497,"74":0.00497,"75":0.00497,"76":0.0298,"77":0.00497,"79":0.0298,"80":0.00993,"81":0.02484,"83":0.09934,"84":0.00993,"85":0.00497,"86":0.00993,"87":0.04967,"88":0.15894,"89":0.00497,"90":0.00497,"91":0.03477,"92":0.00497,"93":0.05464,"94":0.00993,"95":0.02484,"96":0.00497,"97":0.00497,"98":0.00993,"99":0.02484,"100":0.00497,"101":0.00497,"102":0.01987,"103":0.28312,"104":0.06457,"105":0.02484,"106":0.0149,"107":0.01987,"108":0.15398,"109":0.93876,"110":0.01987,"111":0.03477,"112":0.02484,"113":0.12914,"114":0.14901,"115":0.11921,"116":0.26822,"117":0.0298,"118":0.0447,"119":0.04967,"120":0.08444,"121":0.06954,"122":0.22848,"123":0.18378,"124":0.53644,"125":1.32619,"126":20.43424,"127":2.0315,"128":0.01987,"129":0.00497,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 36 37 61 62 63 64 68 69 71 72 73 78 130"},F:{"83":0.00993,"89":0.00497,"95":0.03974,"102":0.00497,"109":0.35266,"110":0.0149,"111":0.27319,_:"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 84 85 86 87 88 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00497,"13":0.00497,"18":0.00497,"85":0.00497,"92":0.00497,"103":0.00497,"106":0.00497,"107":0.00497,"108":0.00497,"109":0.09437,"110":0.00497,"111":0.00497,"112":0.0149,"113":0.00497,"114":0.00497,"115":0.00497,"116":0.00497,"117":0.00497,"118":0.00497,"119":0.00497,"120":0.0149,"121":0.00993,"122":0.06457,"123":0.0149,"124":0.0298,"125":0.17881,"126":6.19385,"127":0.79969,_:"14 15 16 17 79 80 81 83 84 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 104 105"},E:{"8":0.00993,"9":0.03974,"13":0.00497,"14":0.04967,"15":0.03477,_:"0 4 5 6 7 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00497,"12.1":0.01987,"13.1":0.13908,"14.1":0.14901,"15.1":0.01987,"15.2-15.3":0.01987,"15.4":0.0447,"15.5":0.06457,"15.6":0.62088,"16.0":0.0596,"16.1":0.08941,"16.2":0.07451,"16.3":0.18378,"16.4":0.07451,"16.5":0.09437,"16.6":0.83446,"17.0":0.03477,"17.1":0.09437,"17.2":0.08941,"17.3":0.10927,"17.4":0.34769,"17.5":5.00674,"17.6":0.02484,"18.0":0.0298},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00506,"5.0-5.1":0.00253,"6.0-6.1":0.01519,"7.0-7.1":0.01519,"8.1-8.4":0,"9.0-9.2":0.01266,"9.3":0.05063,"10.0-10.2":0.01013,"10.3":0.08861,"11.0-11.2":0.23291,"11.3-11.4":0.02532,"12.0-12.1":0.01772,"12.2-12.5":0.32658,"13.0-13.1":0.00506,"13.2":0.05316,"13.3":0.01772,"13.4-13.7":0.07595,"14.0-14.4":0.17468,"14.5-14.8":0.19746,"15.0-15.1":0.09873,"15.2-15.3":0.10633,"15.4":0.12152,"15.5":0.14683,"15.6-15.8":1.34681,"16.0":0.27088,"16.1":0.57467,"16.2":0.2886,"16.3":0.48354,"16.4":0.11392,"16.5":0.20506,"16.6-16.7":1.68098,"17.0":0.1519,"17.1":0.24557,"17.2":0.23797,"17.3":0.35696,"17.4":0.89365,"17.5":16.36426,"17.6":0.12658,"18.0":0.16709},P:{"4":0.08749,"20":0.01094,"21":0.06562,"22":0.02187,"23":0.02187,"24":0.03281,"25":1.36706,"5.0-5.4":0.01094,"6.2-6.4":0.01094,_:"7.2-7.4 8.2 9.2 11.1-11.2 12.0 14.0 15.0 18.0","10.1":0.01094,"13.0":0.01094,"16.0":0.01094,"17.0":0.01094,"19.0":0.01094},I:{"0":0.03009,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":0.19122,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01053,"9":0.03686,"11":0.21587,_:"6 7 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":21.87049},R:{_:"0"},M:{"0":0.49817},Q:{"14.9":0.00503},O:{"0":0.07548},H:{"0":0}}; 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..4464d6d --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CD.js @@ -0,0 +1 @@ +module.exports={C:{"47":0.00162,"52":0.00162,"57":0.48468,"72":0.00324,"78":0.00162,"99":0.00162,"110":0.00324,"115":1.22548,"116":0.00486,"121":0.00162,"123":0.00162,"124":0.00324,"125":0.00648,"126":0.00648,"127":0.17507,"128":0.25774,"129":0.00486,_:"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 48 49 50 51 53 54 55 56 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 87 88 89 90 91 92 93 94 95 96 97 98 100 101 102 103 104 105 106 107 108 109 111 112 113 114 117 118 119 120 122 130 131 3.5 3.6"},D:{"11":0.01135,"37":0.00162,"43":0.00162,"49":0.00162,"59":0.00162,"63":0.00162,"64":0.00648,"68":0.00324,"69":0.00324,"70":0.00486,"74":0.00162,"75":0.00162,"76":0.00324,"79":0.00486,"80":0.00162,"81":0.00324,"83":0.00324,"84":0.00162,"86":0.00324,"87":0.04053,"88":0.00648,"90":0.00162,"91":0.00162,"93":0.00486,"94":0.00324,"95":0.00324,"97":0.00486,"98":0.00162,"99":0.00648,"100":0.00162,"102":0.00162,"103":0.00486,"104":0.00162,"105":0.00486,"106":0.00162,"108":0.00162,"109":0.42957,"110":0.00162,"111":0.00486,"112":0.00162,"113":0.00162,"114":0.00648,"115":0.00324,"116":0.00973,"117":0.00324,"118":0.00324,"119":0.01945,"120":0.01297,"121":0.01459,"122":0.01459,"123":0.01297,"124":0.02594,"125":0.05674,"126":1.84308,"127":0.2318,_:"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 38 39 40 41 42 44 45 46 47 48 50 51 52 53 54 55 56 57 58 60 61 62 65 66 67 71 72 73 77 78 85 89 92 96 101 107 128 129 130"},F:{"37":0.00162,"42":0.00162,"46":0.00162,"64":0.00162,"75":0.02594,"79":0.01135,"82":0.00162,"83":0.03566,"84":0.00162,"90":0.00162,"95":0.01621,"101":0.00162,"102":0.00162,"106":0.00162,"108":0.00324,"109":0.00973,"110":0.02432,"111":0.24639,_:"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 38 39 40 41 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 72 73 74 76 77 78 80 81 85 86 87 88 89 91 92 93 94 96 97 98 99 100 103 104 105 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00811,"13":0.00162,"14":0.00486,"15":0.00162,"16":0.00162,"17":0.00486,"18":0.02107,"84":0.00486,"85":0.00162,"89":0.00486,"90":0.00648,"92":0.02594,"100":0.00486,"105":0.00162,"109":0.00648,"113":0.00162,"114":0.00162,"115":0.00162,"116":0.00162,"117":0.00324,"118":0.00162,"119":0.00324,"120":0.00486,"121":0.00486,"122":0.00648,"123":0.00648,"124":0.01297,"125":0.04215,"126":0.73269,"127":0.08105,_:"79 80 81 83 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 106 107 108 110 111 112"},E:{"15":0.00162,_:"0 4 5 6 7 8 9 10 11 12 13 14 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3 16.0 16.2 16.4 17.6","13.1":0.00811,"14.1":0.00486,"15.1":0.00162,"15.4":0.00162,"15.5":0.00162,"15.6":0.01297,"16.1":0.00162,"16.3":0.00162,"16.5":0.00324,"16.6":0.00811,"17.0":0.00162,"17.1":0.00162,"17.2":0.00162,"17.3":0.00324,"17.4":0.00811,"17.5":0.04377,"18.0":0.00324},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00117,"5.0-5.1":0.00059,"6.0-6.1":0.00352,"7.0-7.1":0.00352,"8.1-8.4":0,"9.0-9.2":0.00293,"9.3":0.01173,"10.0-10.2":0.00235,"10.3":0.02053,"11.0-11.2":0.05396,"11.3-11.4":0.00587,"12.0-12.1":0.00411,"12.2-12.5":0.07566,"13.0-13.1":0.00117,"13.2":0.01232,"13.3":0.00411,"13.4-13.7":0.0176,"14.0-14.4":0.04047,"14.5-14.8":0.04575,"15.0-15.1":0.02287,"15.2-15.3":0.02463,"15.4":0.02815,"15.5":0.03402,"15.6-15.8":0.31203,"16.0":0.06276,"16.1":0.13314,"16.2":0.06686,"16.3":0.11203,"16.4":0.02639,"16.5":0.04751,"16.6-16.7":0.38946,"17.0":0.03519,"17.1":0.05689,"17.2":0.05513,"17.3":0.0827,"17.4":0.20705,"17.5":3.79133,"17.6":0.02933,"18.0":0.03871},P:{"4":0.06126,"20":0.01021,"21":0.02042,"22":0.08168,"23":0.05105,"24":0.02042,"25":0.37776,"5.0-5.4":0.01021,_:"6.2-6.4 8.2 10.1 12.0 17.0","7.2-7.4":0.09189,"9.2":0.03063,"11.1-11.2":0.02042,"13.0":0.01021,"14.0":0.01021,"15.0":0.11231,"16.0":0.03063,"18.0":0.14294,"19.0":0.07147},I:{"0":0.0668,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00011},K:{"0":8.52265,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.02756,_:"6 7 8 9 10 5.5"},S:{"2.5":0.00838,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":74.94777},R:{_:"0"},M:{"0":0.06703},Q:{"14.9":0.01676},O:{"0":0.22623},H:{"0":1.75}}; 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..7b27913 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CF.js @@ -0,0 +1 @@ +module.exports={C:{"58":0.00554,"61":0.00139,"63":0.00554,"66":0.00693,"69":0.01386,"87":0.00554,"96":0.00693,"99":0.00139,"102":0.00139,"104":0.00139,"108":0.00139,"109":0.00139,"115":0.06514,"119":0.00139,"123":0.00554,"124":0.00554,"125":0.01247,"126":0.01247,"127":0.3465,"128":0.13721,_:"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 59 60 62 64 65 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 88 89 90 91 92 93 94 95 97 98 100 101 103 105 106 107 110 111 112 113 114 116 117 118 120 121 122 129 130 131 3.5 3.6"},D:{"11":0.03188,"34":0.00139,"52":0.00277,"60":0.08455,"64":0.00139,"70":0.00277,"87":0.00139,"89":0.01525,"92":0.00554,"93":0.03188,"99":0.00139,"100":0.0097,"102":0.01386,"103":0.01386,"105":0.0097,"107":0.00277,"108":0.1982,"109":0.08593,"112":0.00139,"114":0.00554,"117":0.0499,"118":0.00554,"119":0.00554,"120":0.00554,"121":0.00832,"122":0.00277,"123":0.01386,"124":0.0194,"125":0.02218,"126":1.49549,"127":0.07484,_:"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 48 49 50 51 53 54 55 56 57 58 59 61 62 63 65 66 67 68 69 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 88 90 91 94 95 96 97 98 101 104 106 110 111 113 115 116 128 129 130"},F:{"37":0.01247,"39":0.0097,"42":0.00832,"79":0.00139,"101":0.00554,"105":0.00139,"106":0.00554,"110":0.00554,"111":0.09702,_:"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 38 40 41 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 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 102 103 104 107 108 109 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00139,"13":0.00139,"15":0.00554,"18":0.03881,"85":0.00139,"89":0.01247,"90":0.0596,"92":0.13028,"100":0.00277,"103":0.00693,"107":0.00277,"114":0.00277,"119":0.00554,"120":0.01525,"122":0.02633,"124":0.01386,"125":0.03604,"126":0.59598,"127":0.04851,_:"14 16 17 79 80 81 83 84 86 87 88 91 93 94 95 96 97 98 99 101 102 104 105 106 108 109 110 111 112 113 115 116 117 118 121 123"},E:{_:"0 4 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.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.6 18.0","15.1":0.0097,"15.2-15.3":0.00693,"17.5":0.0194},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00044,"5.0-5.1":0.00022,"6.0-6.1":0.00132,"7.0-7.1":0.00132,"8.1-8.4":0,"9.0-9.2":0.0011,"9.3":0.00439,"10.0-10.2":0.00088,"10.3":0.00769,"11.0-11.2":0.02021,"11.3-11.4":0.0022,"12.0-12.1":0.00154,"12.2-12.5":0.02834,"13.0-13.1":0.00044,"13.2":0.00461,"13.3":0.00154,"13.4-13.7":0.00659,"14.0-14.4":0.01516,"14.5-14.8":0.01713,"15.0-15.1":0.00857,"15.2-15.3":0.00923,"15.4":0.01054,"15.5":0.01274,"15.6-15.8":0.11686,"16.0":0.0235,"16.1":0.04986,"16.2":0.02504,"16.3":0.04195,"16.4":0.00988,"16.5":0.01779,"16.6-16.7":0.14585,"17.0":0.01318,"17.1":0.02131,"17.2":0.02065,"17.3":0.03097,"17.4":0.07754,"17.5":1.41986,"17.6":0.01098,"18.0":0.0145},P:{"4":0.04006,"21":0.01001,"22":0.14019,"23":0.02003,"24":0.03004,"25":0.23032,_:"20 6.2-6.4 8.2 10.1 12.0 13.0 14.0 15.0 17.0","5.0-5.4":0.01001,"7.2-7.4":0.15021,"9.2":0.01001,"11.1-11.2":0.01001,"16.0":0.02003,"18.0":0.01001,"19.0":0.11015},I:{"0":0.02575,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":2.28606,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{"2.5":0.04307,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":84.74905},R:{_:"0"},M:{"0":0.15505},Q:{"14.9":0.02584},O:{"0":0.08614},H:{"0":5.01}}; 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..23f9151 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CG.js @@ -0,0 +1 @@ +module.exports={C:{"78":0.00318,"113":0.00318,"115":0.21928,"121":0.00318,"123":0.00318,"125":0.00318,"126":0.00318,"127":0.52119,"128":0.74683,"129":0.00318,_:"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 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 112 114 116 117 118 119 120 122 124 130 131 3.5 3.6"},D:{"11":0.01589,"55":0.00318,"63":0.00318,"64":0.00318,"66":0.00318,"69":0.00953,"70":0.00636,"73":0.03178,"74":0.00318,"75":0.00636,"76":0.00318,"78":0.00318,"79":0.0286,"81":0.01589,"83":0.0572,"84":0.0286,"85":0.00318,"86":0.03814,"87":0.09534,"88":0.00636,"89":0.03178,"92":0.00318,"93":0.00636,"94":0.00318,"95":0.03814,"98":0.06674,"99":0.00318,"102":0.03178,"103":0.00953,"106":0.00318,"108":0.00318,"109":0.59746,"110":0.00953,"111":0.01589,"114":0.00636,"115":0.00318,"116":0.02542,"117":0.00318,"118":0.00636,"119":0.04767,"120":0.07627,"121":0.03496,"122":0.06674,"123":0.01907,"124":0.03178,"125":0.07945,"126":5.35493,"127":0.69598,_:"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 49 50 51 52 53 54 56 57 58 59 60 61 62 65 67 68 71 72 77 80 90 91 96 97 100 101 104 105 107 112 113 128 129 130"},F:{"46":0.00318,"79":0.00636,"83":0.00318,"85":0.00636,"95":0.06674,"102":0.00318,"105":0.02225,"109":0.01271,"110":0.03178,"111":0.75636,_:"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 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 84 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00318,"14":0.00953,"16":0.00318,"17":0.01907,"18":0.00636,"81":0.00318,"84":0.00318,"89":0.00318,"92":0.04449,"100":0.00318,"109":0.04131,"115":0.04449,"116":0.00318,"118":0.00318,"119":0.00318,"120":0.00318,"121":0.00636,"122":0.00636,"123":0.00636,"124":0.19386,"125":0.42903,"126":7.93229,"127":1.48095,_:"13 15 79 80 83 85 86 87 88 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 117"},E:{_:"0 4 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 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 17.0 17.1 17.2 18.0","12.1":0.00318,"13.1":0.00636,"15.6":0.0286,"16.5":0.00318,"16.6":0.00636,"17.3":0.00636,"17.4":0.00318,"17.5":0.08581,"17.6":0.00318},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0018,"5.0-5.1":0.0009,"6.0-6.1":0.00541,"7.0-7.1":0.00541,"8.1-8.4":0,"9.0-9.2":0.00451,"9.3":0.01802,"10.0-10.2":0.0036,"10.3":0.03154,"11.0-11.2":0.08291,"11.3-11.4":0.00901,"12.0-12.1":0.00631,"12.2-12.5":0.11625,"13.0-13.1":0.0018,"13.2":0.01892,"13.3":0.00631,"13.4-13.7":0.02704,"14.0-14.4":0.06218,"14.5-14.8":0.07029,"15.0-15.1":0.03515,"15.2-15.3":0.03785,"15.4":0.04326,"15.5":0.05227,"15.6-15.8":0.47943,"16.0":0.09643,"16.1":0.20457,"16.2":0.10274,"16.3":0.17213,"16.4":0.04055,"16.5":0.073,"16.6-16.7":0.59839,"17.0":0.05407,"17.1":0.08742,"17.2":0.08471,"17.3":0.12707,"17.4":0.31812,"17.5":5.82527,"17.6":0.04506,"18.0":0.05948},P:{"4":0.06416,"22":0.04278,"23":0.02139,"24":0.01069,"25":0.1818,_:"20 21 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","5.0-5.4":0.02139,"7.2-7.4":0.01069,"17.0":0.01069},I:{"0":0.02039,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.37894,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{"2.5":0.07504,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":67.94055},R:{_:"0"},M:{"0":0.04775},Q:{_:"14.9"},O:{"0":0.12962},H:{"0":0.16}}; 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..09c69f9 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CH.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00687,"52":0.02748,"78":0.04122,"84":0.00687,"95":0.00687,"99":0.00687,"102":0.00687,"103":0.00687,"108":0.01374,"110":0.00687,"113":0.2748,"114":0.00687,"115":0.71448,"118":0.02748,"120":0.00687,"121":0.02061,"122":0.00687,"123":0.01374,"124":0.02061,"125":0.02748,"126":0.0687,"127":1.58697,"128":3.14646,"129":0.00687,_:"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 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 79 80 81 82 83 85 86 87 88 89 90 91 92 93 94 96 97 98 100 101 104 105 106 107 109 111 112 116 117 119 130 131 3.5 3.6"},D:{"49":0.02748,"52":0.2061,"66":0.02061,"72":0.00687,"78":0.00687,"79":0.01374,"80":0.00687,"81":0.00687,"84":0.00687,"85":0.00687,"87":0.04809,"90":0.00687,"94":0.00687,"97":0.00687,"98":0.00687,"99":0.00687,"100":0.00687,"101":0.01374,"102":0.04809,"103":0.14427,"104":0.02061,"105":0.00687,"106":0.00687,"107":0.01374,"108":0.01374,"109":1.12668,"110":0.00687,"111":0.02061,"112":0.00687,"113":0.30915,"114":0.37098,"115":0.01374,"116":0.5496,"117":0.00687,"118":0.04122,"119":0.05496,"120":0.45342,"121":0.06183,"122":0.23358,"123":0.23358,"124":0.43968,"125":1.62819,"126":28.16013,"127":2.63808,"128":0.01374,"129":0.00687,_:"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 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 73 74 75 76 77 83 86 88 89 91 92 93 95 96 130"},F:{"46":0.00687,"83":0.01374,"85":0.01374,"95":0.03435,"109":0.26106,"110":0.01374,"111":0.3435,_:"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 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 84 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"91":0.04122,"92":0.02061,"99":0.00687,"103":0.00687,"107":0.00687,"109":0.32289,"110":0.00687,"112":0.00687,"113":0.03435,"114":0.01374,"115":0.00687,"116":0.01374,"117":0.00687,"118":0.01374,"119":0.04122,"120":0.05496,"121":0.03435,"122":0.02748,"123":0.02061,"124":0.14427,"125":0.4122,"126":14.7018,"127":1.7175,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 93 94 95 96 97 98 100 101 102 104 105 106 108 111"},E:{"8":0.00687,"13":0.00687,"14":0.02061,"15":0.00687,_:"0 4 5 6 7 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00687,"12.1":0.02061,"13.1":0.10305,"14.1":0.08244,"15.1":0.01374,"15.2-15.3":0.01374,"15.4":0.02748,"15.5":0.02061,"15.6":0.37098,"16.0":0.06183,"16.1":0.04122,"16.2":0.04122,"16.3":0.08244,"16.4":0.03435,"16.5":0.05496,"16.6":0.42594,"17.0":0.02748,"17.1":0.08244,"17.2":0.07557,"17.3":0.08931,"17.4":0.24732,"17.5":2.96784,"17.6":0.02061,"18.0":0.01374},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00274,"5.0-5.1":0.00137,"6.0-6.1":0.00822,"7.0-7.1":0.00822,"8.1-8.4":0,"9.0-9.2":0.00685,"9.3":0.02741,"10.0-10.2":0.00548,"10.3":0.04796,"11.0-11.2":0.12607,"11.3-11.4":0.0137,"12.0-12.1":0.00959,"12.2-12.5":0.17677,"13.0-13.1":0.00274,"13.2":0.02878,"13.3":0.00959,"13.4-13.7":0.04111,"14.0-14.4":0.09455,"14.5-14.8":0.10688,"15.0-15.1":0.05344,"15.2-15.3":0.05755,"15.4":0.06578,"15.5":0.07948,"15.6-15.8":0.72901,"16.0":0.14662,"16.1":0.31106,"16.2":0.15622,"16.3":0.26173,"16.4":0.06166,"16.5":0.111,"16.6-16.7":0.90989,"17.0":0.08222,"17.1":0.13292,"17.2":0.12881,"17.3":0.19321,"17.4":0.48372,"17.5":8.85771,"17.6":0.06852,"18.0":0.09044},P:{"4":0.04273,"20":0.01068,"21":0.03205,"22":0.02136,"23":0.07478,"24":0.06409,"25":2.1151,_:"5.0-5.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 18.0","6.2-6.4":0.01068,"13.0":0.01068,"17.0":0.01068,"19.0":0.01068},I:{"0":0.02495,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.25979,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00687,"11":0.05496,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":15.04512},R:{_:"0"},M:{"0":0.63852},Q:{"14.9":0.00939},O:{"0":0.05321},H:{"0":0}}; 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..c627229 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CI.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00228,"52":0.00228,"54":0.00228,"68":0.00228,"72":0.00456,"78":0.00456,"86":0.00228,"101":0.00228,"102":0.00228,"106":0.00228,"107":0.00228,"110":0.00456,"115":0.2281,"118":0.00228,"119":0.00228,"120":0.00228,"121":0.00228,"122":0.00228,"123":0.00228,"124":0.00456,"125":0.00684,"126":0.02053,"127":0.48129,"128":0.66149,"129":0.00456,"130":0.00228,_:"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 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 73 74 75 76 77 79 80 81 82 83 84 85 87 88 89 90 91 92 93 94 95 96 97 98 99 100 103 104 105 108 109 111 112 113 114 116 117 131 3.5 3.6"},D:{"37":0.00228,"46":0.00228,"47":0.00456,"49":0.00456,"50":0.00456,"56":0.00456,"58":0.00912,"59":0.00228,"64":0.01597,"65":0.01369,"66":0.00456,"67":0.00456,"68":0.00684,"69":0.00228,"70":0.00684,"71":0.00228,"72":0.00456,"73":0.00684,"74":0.00912,"75":0.00228,"76":0.01825,"77":0.00228,"78":0.00228,"79":0.02509,"80":0.00684,"81":0.01825,"83":0.01141,"84":0.00228,"85":0.00684,"86":0.00456,"87":0.24863,"88":0.04334,"89":0.02281,"90":0.00228,"91":0.00684,"92":0.00228,"93":0.01141,"94":0.00684,"95":0.02965,"96":0.00456,"97":0.00228,"98":0.00912,"99":0.03422,"100":0.00456,"101":0.00456,"102":0.00456,"103":0.03193,"104":0.01141,"105":0.00912,"106":0.01141,"107":0.00228,"108":0.01369,"109":1.75637,"110":0.00684,"111":0.00456,"112":0.00684,"113":0.00912,"114":0.01597,"115":0.01369,"116":0.05018,"117":0.00456,"118":0.01825,"119":0.10721,"120":0.1916,"121":0.04106,"122":0.06159,"123":0.05703,"124":0.07071,"125":0.15511,"126":8.78413,"127":1.25227,"128":0.02053,_:"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 38 39 40 41 42 43 44 45 48 51 52 53 54 55 57 60 61 62 63 129 130"},F:{"46":0.00228,"79":0.00228,"83":0.00228,"95":0.07755,"102":0.00228,"104":0.00912,"109":0.04106,"110":0.01141,"111":0.4083,_:"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 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00228,"14":0.00228,"16":0.00228,"17":0.00228,"18":0.01369,"84":0.00228,"85":0.00228,"89":0.00228,"90":0.00456,"92":0.0365,"96":0.00912,"100":0.00684,"105":0.00228,"107":0.00228,"109":0.02053,"110":0.00228,"112":0.00228,"113":0.00228,"114":0.00456,"117":0.00228,"118":0.00228,"119":0.00684,"120":0.01597,"121":0.00684,"122":0.00912,"123":0.00684,"124":0.01597,"125":0.06615,"126":2.17607,"127":0.32162,_:"13 15 79 80 81 83 86 87 88 91 93 94 95 97 98 99 101 102 103 104 106 108 111 115 116"},E:{"14":0.00228,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.1 15.4 16.2 16.4","11.1":0.00228,"13.1":0.00684,"14.1":0.01369,"15.2-15.3":0.00228,"15.5":0.00684,"15.6":0.06387,"16.0":0.00228,"16.1":0.00456,"16.3":0.00456,"16.5":0.00228,"16.6":0.01597,"17.0":0.00228,"17.1":0.00456,"17.2":0.00912,"17.3":0.00684,"17.4":0.01597,"17.5":0.22354,"17.6":0.00228,"18.0":0.01141},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00276,"5.0-5.1":0.00138,"6.0-6.1":0.00829,"7.0-7.1":0.00829,"8.1-8.4":0,"9.0-9.2":0.00691,"9.3":0.02763,"10.0-10.2":0.00553,"10.3":0.04836,"11.0-11.2":0.12712,"11.3-11.4":0.01382,"12.0-12.1":0.00967,"12.2-12.5":0.17824,"13.0-13.1":0.00276,"13.2":0.02902,"13.3":0.00967,"13.4-13.7":0.04145,"14.0-14.4":0.09534,"14.5-14.8":0.10777,"15.0-15.1":0.05389,"15.2-15.3":0.05803,"15.4":0.06632,"15.5":0.08014,"15.6-15.8":0.73506,"16.0":0.14784,"16.1":0.31365,"16.2":0.15751,"16.3":0.2639,"16.4":0.06218,"16.5":0.11192,"16.6-16.7":0.91745,"17.0":0.0829,"17.1":0.13402,"17.2":0.12988,"17.3":0.19482,"17.4":0.48774,"17.5":8.93132,"17.6":0.06909,"18.0":0.09119},P:{"4":0.01031,"20":0.01031,"21":0.04124,"22":0.15464,"23":0.07216,"24":0.08247,"25":0.71134,"5.0-5.4":0.02062,_:"6.2-6.4 8.2 10.1 11.1-11.2 12.0 13.0 15.0 18.0","7.2-7.4":0.14433,"9.2":0.02062,"14.0":0.01031,"16.0":0.02062,"17.0":0.02062,"19.0":0.05155},I:{"0":0.01538,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.6619,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00684,_:"6 7 8 9 10 5.5"},S:{"2.5":0.00772,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":64.47152},R:{_:"0"},M:{"0":0.13122},Q:{"14.9":0.00772},O:{"0":0.13122},H:{"0":0.11}}; 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..3ca1a6d --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CK.js @@ -0,0 +1 @@ +module.exports={C:{"84":0.00378,"112":0.00378,"114":0.00755,"115":0.13975,"122":0.02266,"124":0.01133,"127":0.26061,"128":0.59299,_:"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 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 116 117 118 119 120 121 123 125 126 129 130 131 3.5 3.6"},D:{"46":0.00378,"77":0.01511,"94":0.06799,"103":0.07932,"109":1.0349,"115":0.00378,"116":0.03399,"117":0.00755,"119":0.00378,"121":0.04155,"122":0.11709,"123":0.10953,"124":0.10576,"125":0.72896,"126":25.95554,"127":3.00649,_:"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 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 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 101 102 104 105 106 107 108 110 111 112 113 114 118 120 128 129 130"},F:{"111":0.00755,_:"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 99 100 101 102 103 104 105 106 107 108 109 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00755,"114":0.02266,"116":0.02266,"121":0.05288,"124":0.00755,"125":0.11709,"126":2.68167,"127":0.27194,_:"12 13 14 15 16 17 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 108 109 110 111 112 113 115 117 118 119 120 122 123"},E:{"14":0.04155,_:"0 4 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 15.1 15.2-15.3 15.4 16.2 17.6 18.0","12.1":0.00378,"13.1":0.00378,"14.1":0.06799,"15.5":0.00755,"15.6":0.1473,"16.0":0.02266,"16.1":0.01889,"16.3":0.03777,"16.4":0.01511,"16.5":0.06421,"16.6":0.15863,"17.0":0.00378,"17.1":0.01511,"17.2":0.03399,"17.3":0.01889,"17.4":0.0982,"17.5":0.9858},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00494,"5.0-5.1":0.00247,"6.0-6.1":0.01481,"7.0-7.1":0.01481,"8.1-8.4":0,"9.0-9.2":0.01234,"9.3":0.04936,"10.0-10.2":0.00987,"10.3":0.08638,"11.0-11.2":0.22706,"11.3-11.4":0.02468,"12.0-12.1":0.01728,"12.2-12.5":0.31838,"13.0-13.1":0.00494,"13.2":0.05183,"13.3":0.01728,"13.4-13.7":0.07404,"14.0-14.4":0.17029,"14.5-14.8":0.19251,"15.0-15.1":0.09625,"15.2-15.3":0.10366,"15.4":0.11847,"15.5":0.14315,"15.6-15.8":1.313,"16.0":0.26408,"16.1":0.56025,"16.2":0.28136,"16.3":0.4714,"16.4":0.11106,"16.5":0.19991,"16.6-16.7":1.63878,"17.0":0.14808,"17.1":0.2394,"17.2":0.232,"17.3":0.34799,"17.4":0.87122,"17.5":15.95342,"17.6":0.1234,"18.0":0.16289},P:{"20":0.11201,"21":0.09165,"22":0.17311,"23":0.11201,"24":0.24439,"25":3.63536,_:"4 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0 18.0","13.0":0.01018,"19.0":0.09165},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":0.08712,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.07554,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":32.28014},R:{_:"0"},M:{"0":0.22403},Q:{_:"14.9"},O:{"0":0.13691},H:{"0":0}}; 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..911dfb2 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CL.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.04846,"52":0.00606,"65":0.01817,"78":0.01211,"86":0.00606,"103":0.00606,"105":0.00606,"115":0.13325,"119":0.00606,"120":0.02423,"124":0.00606,"125":0.01211,"126":0.01211,"127":1.93218,"128":0.63599,"129":0.00606,_:"2 3 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 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 106 107 108 109 110 111 112 113 114 116 117 118 121 122 123 130 131 3.5 3.6"},D:{"38":0.01211,"47":0.00606,"48":0.00606,"49":0.00606,"56":0.02423,"65":0.01211,"74":0.00606,"77":0.00606,"79":0.05451,"80":0.01817,"81":0.00606,"85":0.00606,"87":0.04846,"88":0.00606,"89":0.01817,"91":0.00606,"92":0.03634,"93":0.00606,"94":0.01211,"96":0.00606,"97":0.00606,"99":0.01211,"100":0.00606,"102":0.01817,"103":0.06663,"104":0.01817,"105":0.00606,"106":0.00606,"107":0.02423,"108":0.02423,"109":1.56271,"110":0.01817,"111":0.01817,"112":0.01211,"113":0.0424,"114":0.05451,"115":0.00606,"116":0.1272,"117":0.01211,"118":0.00606,"119":0.03029,"120":0.04846,"121":0.03634,"122":0.11508,"123":0.07268,"124":0.15748,"125":0.38765,"126":24.09475,"127":2.05332,"128":0.00606,_:"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 53 54 55 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 75 76 78 83 84 86 90 95 98 101 129 130"},F:{"30":0.00606,"76":0.01211,"83":0.00606,"95":0.01817,"102":0.00606,"109":1.78682,"110":0.01211,"111":0.79952,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 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 77 78 79 80 81 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"90":0.01817,"92":0.01211,"109":0.03029,"114":0.00606,"117":0.00606,"120":0.01211,"121":0.00606,"122":0.01817,"123":0.01211,"124":0.07268,"125":0.07874,"126":3.1133,"127":0.38765,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 118 119"},E:{"9":0.00606,"14":0.00606,_:"0 4 5 6 7 8 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.2-15.3 16.0","12.1":0.00606,"13.1":0.03029,"14.1":0.03634,"15.1":0.00606,"15.4":0.00606,"15.5":0.01211,"15.6":0.07874,"16.1":0.01817,"16.2":0.00606,"16.3":0.03029,"16.4":0.00606,"16.5":0.01817,"16.6":0.07268,"17.0":0.00606,"17.1":0.01211,"17.2":0.01817,"17.3":0.01211,"17.4":0.06663,"17.5":0.53302,"17.6":0.01211,"18.0":0.00606},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00125,"5.0-5.1":0.00063,"6.0-6.1":0.00376,"7.0-7.1":0.00376,"8.1-8.4":0,"9.0-9.2":0.00313,"9.3":0.01253,"10.0-10.2":0.00251,"10.3":0.02193,"11.0-11.2":0.05766,"11.3-11.4":0.00627,"12.0-12.1":0.00439,"12.2-12.5":0.08084,"13.0-13.1":0.00125,"13.2":0.01316,"13.3":0.00439,"13.4-13.7":0.0188,"14.0-14.4":0.04324,"14.5-14.8":0.04888,"15.0-15.1":0.02444,"15.2-15.3":0.02632,"15.4":0.03008,"15.5":0.03635,"15.6-15.8":0.33341,"16.0":0.06706,"16.1":0.14226,"16.2":0.07144,"16.3":0.1197,"16.4":0.0282,"16.5":0.05076,"16.6-16.7":0.41613,"17.0":0.0376,"17.1":0.06079,"17.2":0.05891,"17.3":0.08836,"17.4":0.22123,"17.5":4.051,"17.6":0.03134,"18.0":0.04136},P:{"4":0.08421,"20":0.01053,"21":0.02105,"22":0.04211,"23":0.03158,"24":0.06316,"25":1.02106,_:"5.0-5.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 18.0","6.2-6.4":0.01053,"7.2-7.4":0.01053,"11.1-11.2":0.01053,"16.0":0.01053,"17.0":0.01053,"19.0":0.01053},I:{"0":0.04716,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":0.18114,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.02077,"9":0.00692,"10":0.00692,"11":0.0623,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":31.85825},R:{_:"0"},M:{"0":0.18931},Q:{"14.9":0.00394},O:{"0":0.07888},H:{"0":0.02}}; 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..8fda4ff --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CM.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.0031,"43":0.00155,"45":0.00155,"47":0.00155,"49":0.00155,"50":0.00464,"51":0.00619,"52":0.02786,"56":0.0031,"58":0.00155,"59":0.00155,"60":0.00155,"68":0.00155,"72":0.00619,"78":0.02167,"80":0.0031,"81":0.00155,"82":0.00155,"84":0.00155,"93":0.00155,"99":0.0418,"102":0.00155,"106":0.00155,"108":0.00155,"109":0.00155,"110":0.00155,"111":0.00155,"113":0.00155,"114":0.07121,"115":0.29102,"116":0.00155,"117":0.00155,"118":0.00155,"119":0.00155,"120":0.00619,"121":0.0031,"122":0.00155,"123":0.00774,"124":0.01393,"125":0.01084,"126":0.0387,"127":0.41641,"128":0.50774,"129":0.00619,"130":0.00155,_:"2 3 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 44 46 48 53 54 55 57 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 83 85 86 87 88 89 90 91 92 94 95 96 97 98 100 101 103 104 105 107 112 131 3.5 3.6"},D:{"11":0.00155,"38":0.00619,"39":0.00155,"40":0.00155,"41":0.00155,"48":0.00155,"49":0.00155,"50":0.0031,"54":0.00155,"55":0.00155,"56":0.03406,"57":0.0031,"58":0.00619,"64":0.00155,"65":0.00155,"67":0.00155,"68":0.0774,"69":0.00619,"70":0.00619,"71":0.00155,"72":0.0031,"73":0.00155,"74":0.00464,"75":0.0031,"76":0.0031,"77":0.00155,"79":0.0031,"80":0.00464,"81":0.00929,"83":0.00155,"84":0.00155,"85":0.00774,"86":0.00464,"87":0.01084,"88":0.00464,"89":0.00619,"90":0.00464,"91":0.0031,"92":0.00155,"93":0.00619,"94":0.0031,"95":0.00774,"96":0.00155,"97":0.0031,"99":0.0031,"100":0.00155,"101":0.0031,"102":0.00155,"103":0.02786,"104":0.00464,"105":0.00464,"106":0.00619,"107":0.00155,"108":0.01393,"109":0.86998,"110":0.0031,"111":0.02322,"112":0.00155,"113":0.00155,"114":0.00619,"115":0.00464,"116":0.0356,"117":0.01238,"118":0.02167,"119":0.05728,"120":0.02786,"121":0.03715,"122":0.05418,"123":0.03096,"124":0.08514,"125":0.18576,"126":4.23378,"127":0.52942,"128":0.00619,_:"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 42 43 44 45 46 47 51 52 53 59 60 61 62 63 66 78 98 129 130"},F:{"29":0.00155,"36":0.00155,"40":0.00155,"44":0.0031,"45":0.00155,"46":0.00155,"49":0.00155,"79":0.01084,"82":0.0031,"83":0.01084,"85":0.00155,"86":0.00155,"90":0.00155,"95":0.03251,"100":0.00155,"102":0.00155,"106":0.00155,"107":0.0031,"108":0.0031,"109":0.02941,"110":0.02322,"111":0.32198,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 37 38 39 41 42 43 47 48 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 84 87 88 89 91 92 93 94 96 97 98 99 101 103 104 105 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.01084,"13":0.00155,"14":0.01548,"15":0.0031,"16":0.00464,"17":0.00464,"18":0.02167,"84":0.00464,"89":0.05573,"90":0.00774,"92":0.04489,"100":0.01858,"107":0.0031,"108":0.00155,"109":0.01238,"112":0.00155,"113":0.00155,"114":0.00155,"115":0.0031,"116":0.00155,"117":0.00464,"118":0.00619,"119":0.0031,"120":0.01393,"121":0.00929,"122":0.00774,"123":0.02012,"124":0.02632,"125":0.0774,"126":1.34366,"127":0.16409,_:"79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 110 111"},E:{"10":0.00619,"14":0.01084,_:"0 4 5 6 7 8 9 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1 15.2-15.3 15.4 16.1 16.2 17.6 18.0","11.1":0.00155,"12.1":0.00155,"13.1":0.00619,"14.1":0.02012,"15.5":0.00155,"15.6":0.01858,"16.0":0.00155,"16.3":0.00155,"16.4":0.00155,"16.5":0.0031,"16.6":0.00774,"17.0":0.00619,"17.1":0.00155,"17.2":0.00464,"17.3":0.00619,"17.4":0.00774,"17.5":0.0387},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00216,"5.0-5.1":0.00108,"6.0-6.1":0.00649,"7.0-7.1":0.00649,"8.1-8.4":0,"9.0-9.2":0.00541,"9.3":0.02164,"10.0-10.2":0.00433,"10.3":0.03786,"11.0-11.2":0.09953,"11.3-11.4":0.01082,"12.0-12.1":0.00757,"12.2-12.5":0.13956,"13.0-13.1":0.00216,"13.2":0.02272,"13.3":0.00757,"13.4-13.7":0.03246,"14.0-14.4":0.07465,"14.5-14.8":0.08438,"15.0-15.1":0.04219,"15.2-15.3":0.04544,"15.4":0.05193,"15.5":0.06275,"15.6-15.8":0.57555,"16.0":0.11576,"16.1":0.24558,"16.2":0.12333,"16.3":0.20663,"16.4":0.04868,"16.5":0.08763,"16.6-16.7":0.71835,"17.0":0.06491,"17.1":0.10494,"17.2":0.10169,"17.3":0.15254,"17.4":0.3819,"17.5":6.99312,"17.6":0.05409,"18.0":0.0714},P:{"4":0.04141,"20":0.01035,"21":0.03106,"22":0.08283,"23":0.07248,"24":0.04141,"25":0.2692,"5.0-5.4":0.03106,_:"6.2-6.4 8.2 10.1 12.0 15.0","7.2-7.4":0.08283,"9.2":0.02071,"11.1-11.2":0.01035,"13.0":0.01035,"14.0":0.01035,"16.0":0.02071,"17.0":0.01035,"18.0":0.01035,"19.0":0.02071},I:{"0":0.02527,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":1.88832,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00464,"11":0.0774,_:"6 7 9 10 5.5"},S:{"2.5":0.06762,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":73.8386},R:{_:"0"},M:{"0":0.11833},Q:{_:"14.9"},O:{"0":0.24511},H:{"0":0.96}}; 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..8730271 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CN.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00942,"43":0.07853,"52":0.00628,"78":0.00314,"88":0.00314,"98":0.00314,"102":0.00314,"103":0.00314,"104":0.00314,"106":0.00314,"107":0.00314,"108":0.00628,"109":0.00628,"110":0.00628,"111":0.00628,"112":0.00314,"113":0.00314,"114":0.00314,"115":0.11936,"116":0.00942,"118":0.02199,"119":0.00314,"121":0.00628,"122":0.00314,"123":0.00314,"124":0.00314,"125":0.00628,"126":0.13192,"127":0.15705,"128":0.23558,_:"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 47 48 49 50 51 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 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 99 100 101 105 117 120 129 130 131 3.5 3.6"},D:{"11":0.00628,"25":0.00314,"31":0.00314,"39":0.00314,"41":0.00314,"43":0.00314,"45":0.00628,"47":0.00628,"48":0.04083,"49":0.05026,"50":0.23243,"53":0.01885,"55":0.01256,"56":0.00628,"57":0.01885,"58":0.00314,"59":0.00628,"60":0.00314,"61":0.00942,"62":0.00314,"63":0.01256,"65":0.00628,"66":0.00314,"67":0.00942,"69":0.18846,"70":0.08795,"71":0.00942,"72":0.00628,"73":0.15077,"74":0.01571,"75":0.01885,"76":0.00314,"77":0.05026,"78":0.0691,"79":0.14763,"80":0.05026,"81":0.01885,"83":0.08167,"84":0.04083,"85":0.01256,"86":0.27327,"87":0.07224,"88":0.00628,"89":0.03769,"90":0.10051,"91":0.02827,"92":0.12564,"93":0.00628,"94":0.01256,"95":0.04397,"96":0.01571,"97":0.15077,"98":0.6125,"99":0.14763,"100":0.08795,"101":0.13192,"102":0.02199,"103":0.09109,"104":0.01571,"105":0.01885,"106":0.02199,"107":0.04712,"108":0.08795,"109":1.37262,"110":0.03141,"111":0.0691,"112":0.24814,"113":0.02199,"114":0.18532,"115":0.02199,"116":0.05026,"117":0.01885,"118":0.06282,"119":0.07224,"120":0.16647,"121":0.11622,"122":0.10051,"123":0.44602,"124":0.10679,"125":0.23558,"126":1.7087,"127":0.17904,"128":0.03769,"129":0.00314,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 32 33 34 35 36 37 38 40 42 44 46 51 52 54 64 68 130"},F:{"95":0.00314,"111":0.01256,_:"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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00628,"17":0.00314,"18":0.02199,"84":0.00314,"88":0.00628,"89":0.00314,"92":0.06282,"96":0.00314,"99":0.00314,"100":0.00942,"101":0.00314,"102":0.00628,"103":0.00314,"104":0.00314,"105":0.00314,"106":0.01256,"107":0.01571,"108":0.05968,"109":0.15077,"110":0.0534,"111":0.0534,"112":0.03769,"113":0.1382,"114":0.10365,"115":0.07224,"116":0.05026,"117":0.05026,"118":0.05968,"119":0.08481,"120":0.30154,"121":0.10994,"122":0.21359,"123":0.1382,"124":0.1759,"125":0.32352,"126":5.75117,"127":0.76326,_:"12 13 14 15 79 80 81 83 85 86 87 90 91 93 94 95 97 98"},E:{"4":0.00314,"5":0.00314,"9":0.00314,"13":0.01571,"14":0.06282,"15":0.01256,_:"0 6 7 8 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00628,"13.1":0.0691,"14.1":0.08481,"15.1":0.01885,"15.2-15.3":0.01571,"15.4":0.03455,"15.5":0.04712,"15.6":0.19474,"16.0":0.01885,"16.1":0.0534,"16.2":0.04712,"16.3":0.07853,"16.4":0.02199,"16.5":0.03455,"16.6":0.1759,"17.0":0.01256,"17.1":0.02199,"17.2":0.02513,"17.3":0.03455,"17.4":0.05654,"17.5":0.66589,"17.6":0.00314,"18.0":0.00942},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00248,"5.0-5.1":0.00124,"6.0-6.1":0.00743,"7.0-7.1":0.00743,"8.1-8.4":0,"9.0-9.2":0.00619,"9.3":0.02476,"10.0-10.2":0.00495,"10.3":0.04333,"11.0-11.2":0.11388,"11.3-11.4":0.01238,"12.0-12.1":0.00867,"12.2-12.5":0.15969,"13.0-13.1":0.00248,"13.2":0.026,"13.3":0.00867,"13.4-13.7":0.03714,"14.0-14.4":0.08541,"14.5-14.8":0.09655,"15.0-15.1":0.04828,"15.2-15.3":0.05199,"15.4":0.05942,"15.5":0.0718,"15.6-15.8":0.65855,"16.0":0.13245,"16.1":0.281,"16.2":0.14112,"16.3":0.23643,"16.4":0.0557,"16.5":0.10027,"16.6-16.7":0.82195,"17.0":0.07427,"17.1":0.12007,"17.2":0.11636,"17.3":0.17454,"17.4":0.43697,"17.5":8.00159,"17.6":0.06189,"18.0":0.0817},P:{"20":0.01086,"21":0.01086,"22":0.01086,"23":0.01086,"24":0.02172,"25":0.04343,_:"4 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0","17.0":0.01086,"19.0":0.01086},I:{"0":1.0661,"3":0,"4":0.00011,"2.1":0,"2.2":0.00021,"2.3":0,"4.1":0.00064,"4.2-4.3":0.00043,"4.4":0,"4.4.3-4.4.4":0.00182},K:{"0":0.04115,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.06774,"7":0.06774,"8":0.54194,"9":0.67743,"10":0.20323,"11":5.48718,_:"5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":40.01333},R:{_:"0"},M:{"0":0.16459},Q:{"14.9":4.92404},O:{"0":8.5725},H:{"0":0}}; 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..e3db419 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CO.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.09573,"52":0.0033,"78":0.0066,"80":0.0033,"101":0.0099,"102":0.0033,"103":0.0033,"113":0.0033,"115":0.07262,"120":0.01981,"121":0.0033,"122":0.0033,"123":0.0066,"124":0.0033,"125":0.0066,"126":0.0099,"127":0.28059,"128":0.44564,"129":0.0099,_:"2 3 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 67 68 69 70 71 72 73 74 75 76 77 79 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 104 105 106 107 108 109 110 111 112 114 116 117 118 119 130 131 3.5 3.6"},D:{"38":0.0066,"47":0.0099,"49":0.0033,"51":0.0033,"56":0.0033,"63":0.0033,"65":0.0033,"67":0.0033,"70":0.0033,"72":0.0033,"73":0.0033,"75":0.0033,"76":0.0033,"77":0.0033,"79":0.06932,"80":0.0033,"81":0.0066,"83":0.0066,"85":0.0033,"86":0.0033,"87":0.05282,"88":0.0132,"89":0.0132,"91":0.0099,"92":0.0033,"93":0.0066,"94":0.0132,"95":0.0033,"96":0.0099,"97":0.0099,"98":0.0066,"99":0.01651,"100":0.0066,"101":0.0066,"102":0.0033,"103":0.04621,"104":0.0099,"105":0.0066,"106":0.01651,"107":0.0132,"108":0.01981,"109":1.25768,"110":0.02311,"111":0.0099,"112":0.02311,"113":0.0099,"114":0.06932,"115":0.0132,"116":0.10893,"117":0.0132,"118":0.03961,"119":0.02641,"120":0.07262,"121":0.07262,"122":0.17825,"123":0.08913,"124":0.15515,"125":0.42913,"126":18.53842,"127":2.52196,"128":0.0033,_:"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 53 54 55 57 58 59 60 61 62 64 66 68 69 71 74 78 84 90 129 130"},F:{"83":0.0099,"95":0.02311,"102":0.0033,"107":0.0033,"109":0.87477,"110":0.0066,"111":0.49515,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0033,"92":0.01651,"100":0.0033,"109":0.02641,"114":0.0033,"115":0.0033,"117":0.0033,"118":0.0033,"119":0.0066,"120":0.0099,"121":0.0099,"122":0.0099,"123":0.0099,"124":0.02641,"125":0.09903,"126":2.94449,"127":0.41923,_:"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 101 102 103 104 105 106 107 108 110 111 112 113 116"},E:{"9":0.0033,"14":0.0066,_:"0 4 5 6 7 8 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 15.2-15.3","5.1":0.0066,"12.1":0.0033,"13.1":0.0132,"14.1":0.02311,"15.1":0.0033,"15.4":0.0033,"15.5":0.0033,"15.6":0.05282,"16.0":0.0066,"16.1":0.0066,"16.2":0.0066,"16.3":0.01651,"16.4":0.0066,"16.5":0.0099,"16.6":0.05282,"17.0":0.0066,"17.1":0.0132,"17.2":0.01981,"17.3":0.0132,"17.4":0.03301,"17.5":0.42253,"17.6":0.0033,"18.0":0.0066},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00241,"5.0-5.1":0.00121,"6.0-6.1":0.00724,"7.0-7.1":0.00724,"8.1-8.4":0,"9.0-9.2":0.00603,"9.3":0.02413,"10.0-10.2":0.00483,"10.3":0.04223,"11.0-11.2":0.111,"11.3-11.4":0.01206,"12.0-12.1":0.00845,"12.2-12.5":0.15564,"13.0-13.1":0.00241,"13.2":0.02534,"13.3":0.00845,"13.4-13.7":0.03619,"14.0-14.4":0.08325,"14.5-14.8":0.09411,"15.0-15.1":0.04705,"15.2-15.3":0.05067,"15.4":0.05791,"15.5":0.06998,"15.6-15.8":0.64185,"16.0":0.12909,"16.1":0.27387,"16.2":0.13754,"16.3":0.23044,"16.4":0.05429,"16.5":0.09773,"16.6-16.7":0.80111,"17.0":0.07239,"17.1":0.11703,"17.2":0.11341,"17.3":0.17012,"17.4":0.42589,"17.5":7.79875,"17.6":0.06032,"18.0":0.07963},P:{"4":0.08226,"20":0.01028,"21":0.02056,"22":0.04113,"23":0.03085,"24":0.03085,"25":0.81229,"5.0-5.4":0.02056,"6.2-6.4":0.01028,"7.2-7.4":0.05141,_:"8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 18.0","16.0":0.01028,"17.0":0.01028,"19.0":0.01028},I:{"0":0.04673,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":0.13398,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00782,"11":0.09781,_:"6 7 9 10 5.5"},S:{"2.5":0.0067,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":54.7594},R:{_:"0"},M:{"0":0.16078},Q:{_:"14.9"},O:{"0":0.0201},H:{"0":0}}; 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..8d59676 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CR.js @@ -0,0 +1 @@ +module.exports={C:{"40":0.00406,"52":0.00406,"78":0.00811,"91":0.00406,"101":0.04461,"102":0.00406,"110":0.02433,"115":0.36495,"118":0.00406,"119":0.00406,"120":0.02433,"121":0.00811,"123":0.00406,"124":0.00811,"125":0.01217,"126":0.13382,"127":0.85155,"128":1.22867,"129":0.00406,_:"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 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 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 103 104 105 106 107 108 109 111 112 113 114 116 117 122 130 131 3.5","3.6":0.00406},D:{"41":0.00406,"42":0.00406,"43":0.00406,"44":0.00811,"45":0.00406,"46":0.00811,"47":0.02839,"49":0.00811,"51":0.00811,"69":0.00406,"70":0.00406,"73":0.01217,"76":0.00406,"79":0.0365,"80":0.01217,"81":0.05677,"83":0.04461,"86":0.05272,"87":0.0365,"88":0.00811,"89":0.00406,"90":0.00406,"91":0.00406,"92":0.00406,"93":0.00406,"94":0.00811,"97":0.00811,"98":0.00811,"99":0.00811,"100":0.00406,"101":0.00811,"102":0.00406,"103":0.09327,"104":0.00406,"105":0.04866,"106":0.01622,"107":0.00406,"108":0.01217,"109":0.61231,"110":0.02433,"111":0.00406,"112":0.02028,"113":0.01217,"114":0.0365,"115":0.02433,"116":0.1622,"117":0.01217,"118":0.01217,"119":0.04055,"120":0.06083,"121":0.05272,"122":0.17842,"123":0.06894,"124":0.3609,"125":0.45011,"126":19.65053,"127":2.40056,"128":0.00406,_:"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 48 50 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 71 72 74 75 77 78 84 85 95 96 129 130"},F:{"83":0.01217,"95":0.00811,"102":0.00811,"107":0.00406,"109":1.24489,"110":0.00811,"111":0.56365,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00406,"18":0.00406,"92":0.01622,"100":0.00406,"109":0.02028,"114":0.00406,"117":0.00406,"118":0.00811,"119":0.00811,"120":0.01217,"121":0.00811,"122":0.02839,"123":0.00811,"124":0.01217,"125":0.08921,"126":4.44834,"127":0.69746,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116"},E:{"9":0.01622,"14":0.00811,_:"0 4 5 6 7 8 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.00406,"12.1":0.00406,"13.1":0.03244,"14.1":0.02839,"15.1":0.00406,"15.2-15.3":0.00406,"15.4":0.01217,"15.5":0.01217,"15.6":0.12165,"16.0":0.02839,"16.1":0.02433,"16.2":0.02433,"16.3":0.04461,"16.4":0.01217,"16.5":0.04461,"16.6":0.15409,"17.0":0.02433,"17.1":0.0365,"17.2":0.02839,"17.3":0.06488,"17.4":0.14598,"17.5":2.48166,"17.6":0.02839,"18.0":0.03244},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00245,"5.0-5.1":0.00123,"6.0-6.1":0.00736,"7.0-7.1":0.00736,"8.1-8.4":0,"9.0-9.2":0.00614,"9.3":0.02455,"10.0-10.2":0.00491,"10.3":0.04296,"11.0-11.2":0.11292,"11.3-11.4":0.01227,"12.0-12.1":0.00859,"12.2-12.5":0.15834,"13.0-13.1":0.00245,"13.2":0.02578,"13.3":0.00859,"13.4-13.7":0.03682,"14.0-14.4":0.08469,"14.5-14.8":0.09574,"15.0-15.1":0.04787,"15.2-15.3":0.05155,"15.4":0.05892,"15.5":0.07119,"15.6-15.8":0.653,"16.0":0.13134,"16.1":0.27863,"16.2":0.13993,"16.3":0.23444,"16.4":0.05523,"16.5":0.09942,"16.6-16.7":0.81502,"17.0":0.07365,"17.1":0.11906,"17.2":0.11538,"17.3":0.17307,"17.4":0.43328,"17.5":7.93415,"17.6":0.06137,"18.0":0.08101},P:{"4":0.03118,"20":0.01039,"21":0.03118,"22":0.10392,"23":0.07274,"24":0.05196,"25":2.13031,_:"5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 16.0","6.2-6.4":0.02078,"7.2-7.4":0.06235,"15.0":0.02078,"17.0":0.02078,"18.0":0.01039,"19.0":0.02078},I:{"0":0.10069,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00006,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00017},K:{"0":0.33475,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.00406,"7":0.00406,"8":0.02839,"9":0.00406,"10":0.00811,"11":0.0365,_:"5.5"},S:{"2.5":0.00594,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":44.71882},R:{_:"0"},M:{"0":0.45769},Q:{"14.9":0.00594},O:{"0":0.08916},H:{"0":0.01}}; 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..91f3ee6 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CU.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.56623,"34":0.00227,"45":0.00227,"47":0.00227,"48":0.00227,"49":0.00227,"50":0.0091,"52":0.05685,"53":0.00455,"54":0.09096,"56":0.00682,"57":0.01592,"58":0.00227,"59":0.00227,"60":0.00682,"61":0.00682,"62":0.00227,"63":0.00455,"64":0.01819,"65":0.00455,"66":0.00227,"67":0.0091,"68":0.01364,"69":0.00455,"70":0.06595,"71":0.00682,"72":0.0523,"74":0.00227,"75":0.00455,"76":0.00227,"77":0.00455,"78":0.01137,"79":0.00227,"80":0.00227,"81":0.00455,"82":0.00682,"83":0.00455,"84":0.01137,"85":0.00455,"86":0.00682,"87":0.00455,"88":0.01137,"89":0.01819,"90":0.00682,"91":0.0091,"92":0.0091,"93":0.01592,"94":0.01137,"95":0.0091,"96":0.04093,"97":0.01592,"98":0.01137,"99":0.01819,"100":0.02956,"101":0.1046,"102":0.02274,"103":0.00455,"104":0.00455,"105":0.00455,"106":0.03184,"107":0.0091,"108":0.01364,"109":0.01819,"110":0.01592,"111":0.02047,"112":0.02501,"113":0.06595,"114":0.01819,"115":0.98464,"116":0.03411,"117":0.03184,"118":0.02047,"119":0.02047,"120":0.02274,"121":0.04321,"122":0.06595,"123":0.04775,"124":0.08186,"125":0.07732,"126":0.14781,"127":2.03296,"128":2.35814,"129":0.04093,_:"2 3 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 43 44 46 51 55 73 130 131 3.5 3.6"},D:{"26":0.00227,"33":0.00227,"36":0.00227,"47":0.00227,"49":0.00455,"54":0.00227,"58":0.0091,"59":0.00227,"64":0.00227,"65":0.00227,"66":0.00455,"67":0.00227,"68":0.00455,"69":0.00227,"70":0.02047,"71":0.00455,"72":0.01137,"74":0.00682,"75":0.00227,"76":0.00227,"77":0.00455,"78":0.00455,"79":0.0091,"80":0.00682,"81":0.01819,"83":0.00682,"84":0.00227,"85":0.00227,"86":0.01364,"87":0.01364,"88":0.09323,"89":0.03411,"90":0.05912,"91":0.03638,"92":0.00682,"93":0.00227,"94":0.11597,"95":0.0091,"96":0.0091,"97":0.03638,"98":0.0091,"99":0.01137,"100":0.0091,"101":0.0091,"102":0.02047,"103":0.02729,"104":0.00455,"105":0.01819,"106":0.01137,"107":0.00455,"108":0.02047,"109":0.52529,"110":0.02047,"111":0.02274,"112":0.01592,"113":0.00682,"114":0.02501,"115":0.00682,"116":0.01819,"117":0.03184,"118":0.04321,"119":0.05685,"120":0.09551,"121":0.07504,"122":0.04775,"123":0.08869,"124":0.14326,"125":0.30017,"126":4.1978,"127":0.39113,"128":0.00227,"129":0.00227,_:"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 34 35 37 38 39 40 41 42 43 44 45 46 48 50 51 52 53 55 56 57 60 61 62 63 73 130"},F:{"34":0.0091,"35":0.00227,"36":0.01137,"42":0.00455,"43":0.00227,"46":0.00227,"48":0.00227,"60":0.00227,"64":0.00227,"77":0.00227,"79":0.04775,"83":0.02047,"84":0.00227,"87":0.00227,"92":0.00682,"94":0.00227,"95":0.08414,"99":0.00227,"100":0.00227,"101":0.00227,"102":0.00682,"103":0.00227,"104":0.00227,"105":0.0091,"106":0.00227,"107":0.02047,"108":0.01364,"109":0.25696,"110":0.02501,"111":0.59806,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 37 38 39 40 41 44 45 47 49 50 51 52 53 54 55 56 57 58 62 63 65 66 67 68 69 70 71 72 73 74 75 76 78 80 81 82 85 86 88 89 90 91 93 96 97 98 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00227,"13":0.0091,"14":0.01364,"15":0.00455,"16":0.01592,"17":0.0091,"18":0.04548,"83":0.00227,"84":0.01364,"88":0.00455,"89":0.00682,"90":0.01819,"92":0.1046,"100":0.07277,"105":0.00227,"107":0.00227,"108":0.00455,"109":0.01819,"110":0.00227,"111":0.00455,"114":0.01364,"115":0.00455,"116":0.00227,"117":0.00455,"118":0.02501,"119":0.02047,"120":0.03184,"121":0.02047,"122":0.03866,"123":0.02274,"124":0.04321,"125":0.14554,"126":1.36667,"127":0.14554,_:"79 80 81 85 86 87 91 93 94 95 96 97 98 99 101 102 103 104 106 112 113"},E:{"14":0.00227,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.2-15.3 15.4 15.5 16.0 16.5 17.0 17.1 17.6 18.0","5.1":0.0091,"11.1":0.00227,"13.1":0.00455,"14.1":0.00227,"15.1":0.00455,"15.6":0.02047,"16.1":0.00227,"16.2":0.00227,"16.3":0.00227,"16.4":0.00227,"16.6":0.01364,"17.2":0.00227,"17.3":0.01137,"17.4":0.01364,"17.5":0.06822},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00102,"5.0-5.1":0.00051,"6.0-6.1":0.00306,"7.0-7.1":0.00306,"8.1-8.4":0,"9.0-9.2":0.00255,"9.3":0.01018,"10.0-10.2":0.00204,"10.3":0.01782,"11.0-11.2":0.04685,"11.3-11.4":0.00509,"12.0-12.1":0.00356,"12.2-12.5":0.06569,"13.0-13.1":0.00102,"13.2":0.01069,"13.3":0.00356,"13.4-13.7":0.01528,"14.0-14.4":0.03514,"14.5-14.8":0.03972,"15.0-15.1":0.01986,"15.2-15.3":0.02139,"15.4":0.02444,"15.5":0.02953,"15.6-15.8":0.2709,"16.0":0.05449,"16.1":0.11559,"16.2":0.05805,"16.3":0.09726,"16.4":0.02291,"16.5":0.04125,"16.6-16.7":0.33811,"17.0":0.03055,"17.1":0.04939,"17.2":0.04787,"17.3":0.0718,"17.4":0.17975,"17.5":3.29153,"17.6":0.02546,"18.0":0.03361},P:{"4":0.12184,"20":0.04061,"21":0.18276,"22":0.36552,"23":0.18276,"24":0.21322,"25":0.96456,"5.0-5.4":0.02031,"6.2-6.4":0.03046,"7.2-7.4":0.27414,"8.2":0.01015,"9.2":0.05077,_:"10.1 12.0","11.1-11.2":0.04061,"13.0":0.03046,"14.0":0.03046,"15.0":0.01015,"16.0":0.09138,"17.0":0.08123,"18.0":0.02031,"19.0":0.09138},I:{"0":0.077,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00013},K:{"0":0.84406,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00227,"9":0.00227,"11":0.02274,_:"6 7 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":71.94784},R:{_:"0"},M:{"0":0.44044},Q:{"14.9":0.00773},O:{"0":0.07727},H:{"0":0.06}}; 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..a0649ba --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CV.js @@ -0,0 +1 @@ +module.exports={C:{"61":0.00263,"78":0.00263,"91":0.00263,"115":0.02896,"122":0.00263,"125":0.01053,"126":0.02106,"127":0.26593,"128":0.41075,"129":0.00527,_:"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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 123 124 130 131 3.5 3.6"},D:{"11":0.01053,"39":0.00263,"65":0.0079,"66":0.01053,"68":0.00263,"70":0.00263,"74":0.00263,"75":0.01317,"76":0.01053,"79":0.05266,"81":0.00527,"83":0.02106,"84":0.00527,"87":0.02896,"88":0.00263,"90":0.02106,"91":0.0079,"92":0.00263,"93":0.00527,"94":0.0079,"95":0.0079,"96":0.00263,"99":0.0079,"101":0.00263,"102":0.0079,"103":0.05266,"104":0.07899,"105":0.00263,"106":0.00527,"107":0.00527,"108":0.01317,"109":0.7741,"111":0.01843,"112":0.00527,"113":0.12112,"114":0.00263,"115":0.00263,"116":0.10532,"117":0.0079,"119":0.14218,"120":0.0158,"121":0.04739,"122":0.02106,"123":1.06637,"124":0.04213,"125":0.21854,"126":11.91169,"127":1.3402,_:"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 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 67 69 71 72 73 77 78 80 85 86 89 97 98 100 110 118 128 129 130"},F:{"79":0.0079,"95":0.08426,"99":0.00263,"102":0.00527,"108":0.00263,"109":0.14482,"110":0.0079,"111":0.17115,_:"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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 100 101 103 104 105 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.0079,"92":0.02106,"100":0.00263,"101":0.0079,"103":0.00527,"109":0.03423,"110":0.01053,"112":0.00263,"114":0.00527,"115":0.01843,"117":0.00263,"119":0.13165,"120":0.0079,"121":0.00263,"122":0.07109,"123":0.02896,"124":0.08162,"125":0.06846,"126":4.03902,"127":0.64245,_:"12 13 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 102 104 105 106 107 108 111 113 116 118"},E:{"15":0.00263,_:"0 4 5 6 7 8 9 10 11 12 13 14 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 15.5 16.0 16.4 17.0 17.2 17.6","13.1":0.01053,"14.1":0.06583,"15.6":0.08952,"16.1":0.0079,"16.2":0.00527,"16.3":0.0079,"16.5":0.0079,"16.6":0.02633,"17.1":0.00527,"17.3":0.00263,"17.4":0.09479,"17.5":0.20011,"18.0":0.0237},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00214,"5.0-5.1":0.00107,"6.0-6.1":0.00642,"7.0-7.1":0.00642,"8.1-8.4":0,"9.0-9.2":0.00535,"9.3":0.02139,"10.0-10.2":0.00428,"10.3":0.03744,"11.0-11.2":0.09841,"11.3-11.4":0.0107,"12.0-12.1":0.00749,"12.2-12.5":0.13799,"13.0-13.1":0.00214,"13.2":0.02246,"13.3":0.00749,"13.4-13.7":0.03209,"14.0-14.4":0.07381,"14.5-14.8":0.08344,"15.0-15.1":0.04172,"15.2-15.3":0.04493,"15.4":0.05135,"15.5":0.06204,"15.6-15.8":0.56907,"16.0":0.11446,"16.1":0.24282,"16.2":0.12194,"16.3":0.20431,"16.4":0.04814,"16.5":0.08664,"16.6-16.7":0.71027,"17.0":0.06418,"17.1":0.10376,"17.2":0.10055,"17.3":0.15083,"17.4":0.3776,"17.5":6.91447,"17.6":0.05348,"18.0":0.0706},P:{"4":0.23746,"20":0.02065,"21":0.07227,"22":0.12389,"23":0.12389,"24":0.11357,"25":1.09436,"5.0-5.4":0.05162,_:"6.2-6.4 8.2 10.1 12.0","7.2-7.4":0.21681,"9.2":0.02065,"11.1-11.2":0.10324,"13.0":0.02065,"14.0":0.01032,"15.0":0.17551,"16.0":0.06195,"17.0":0.01032,"18.0":0.01032,"19.0":0.22713},I:{"0":0.11746,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00007,"4.2-4.3":0.00005,"4.4":0,"4.4.3-4.4.4":0.0002},K:{"0":0.19628,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00263,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":61.89342},R:{_:"0"},M:{"0":0.34625},Q:{_:"14.9"},O:{"0":0.10314},H:{"0":0.01}}; 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..b07035f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CX.js @@ -0,0 +1 @@ +module.exports={C:{_:"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 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 3.5 3.6"},D:{"127":42.858,_:"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 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 128 129 130"},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 99 100 101 102 103 104 105 106 107 108 109 110 111 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{_:"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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127"},E:{_:"0 4 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.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.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-15.8":0,"16.0":0,"16.1":0,"16.2":0,"16.3":0,"16.4":0,"16.5":0,"16.6-16.7":0,"17.0":0,"17.1":0,"17.2":0,"17.3":0,"17.4":0,"17.5":0,"17.6":0,"18.0":0},P:{_:"4 20 21 22 23 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.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":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":57.142},R:{_:"0"},M:{_:"0"},Q:{_:"14.9"},O:{_:"0"},H:{"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..6c81712 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CY.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00456,"53":0.00456,"68":0.00456,"80":0.00456,"92":0.00456,"105":0.00456,"108":0.00456,"109":0.00456,"111":0.00456,"115":0.30981,"119":0.00456,"122":0.28703,"123":0.37815,"124":0.00456,"125":0.01367,"126":0.02278,"127":0.64695,"128":0.90209,"129":0.00456,_:"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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 106 107 110 112 113 114 116 117 118 120 121 130 131 3.5 3.6"},D:{"38":0.00456,"43":0.00456,"44":0.00456,"46":0.00456,"47":0.00456,"51":0.00456,"56":0.00911,"58":0.00456,"69":0.00456,"70":0.00456,"78":0.00456,"79":0.03189,"81":0.00456,"83":0.00456,"86":0.00456,"87":0.0729,"88":0.04556,"91":0.03645,"93":0.28247,"94":0.00456,"95":0.02734,"98":0.05923,"99":0.00456,"101":0.00456,"102":0.00456,"103":0.03189,"105":0.00911,"106":0.00456,"107":0.01367,"108":0.02278,"109":0.99321,"110":0.01367,"111":0.00456,"112":0.01822,"113":0.00456,"114":0.00456,"115":0.00456,"116":0.15035,"117":0.01367,"118":0.01367,"119":0.03645,"120":0.10934,"121":0.09112,"122":0.17313,"123":0.17768,"124":0.13212,"125":0.32348,"126":24.34726,"127":2.98874,_:"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 45 48 49 50 52 53 54 55 57 59 60 61 62 63 64 65 66 67 68 71 72 73 74 75 76 77 80 84 85 89 90 92 96 97 100 104 128 129 130"},F:{"78":0.00911,"83":0.02278,"86":0.00456,"91":0.00456,"94":0.00456,"95":0.00911,"106":0.00456,"109":0.23236,"110":0.00911,"111":0.35537,_:"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 79 80 81 82 84 85 87 88 89 90 92 93 96 97 98 99 100 101 102 103 104 105 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00456,"90":0.00456,"99":0.00456,"108":0.00456,"109":0.03189,"114":0.02278,"118":0.00456,"120":0.00911,"121":0.01367,"122":0.00456,"123":0.01367,"124":0.00456,"125":0.0729,"126":6.85678,"127":0.87475,_:"13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 91 92 93 94 95 96 97 98 100 101 102 103 104 105 106 107 110 111 112 113 115 116 117 119"},E:{"8":0.00456,"9":0.00911,"13":0.00456,"14":0.01822,"15":0.00456,_:"0 4 5 6 7 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.27336,"14.1":0.07745,"15.1":0.1549,"15.2-15.3":0.00456,"15.4":0.00456,"15.5":0.01822,"15.6":0.15946,"16.0":0.01822,"16.1":0.01367,"16.2":0.01367,"16.3":0.03645,"16.4":0.01367,"16.5":0.01367,"16.6":0.14124,"17.0":0.02734,"17.1":0.03189,"17.2":0.04556,"17.3":0.03645,"17.4":0.07745,"17.5":1.08888,"17.6":0.00456,"18.0":0.01367},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00249,"5.0-5.1":0.00125,"6.0-6.1":0.00747,"7.0-7.1":0.00747,"8.1-8.4":0,"9.0-9.2":0.00623,"9.3":0.0249,"10.0-10.2":0.00498,"10.3":0.04358,"11.0-11.2":0.11454,"11.3-11.4":0.01245,"12.0-12.1":0.00872,"12.2-12.5":0.16061,"13.0-13.1":0.00249,"13.2":0.02615,"13.3":0.00872,"13.4-13.7":0.03735,"14.0-14.4":0.08591,"14.5-14.8":0.09711,"15.0-15.1":0.04856,"15.2-15.3":0.05229,"15.4":0.05976,"15.5":0.07221,"15.6-15.8":0.66236,"16.0":0.13322,"16.1":0.28262,"16.2":0.14193,"16.3":0.2378,"16.4":0.05603,"16.5":0.10085,"16.6-16.7":0.82671,"17.0":0.0747,"17.1":0.12077,"17.2":0.11703,"17.3":0.17555,"17.4":0.4395,"17.5":8.04796,"17.6":0.06225,"18.0":0.08217},P:{"4":0.05206,"20":0.01041,"21":0.03123,"22":0.08329,"23":0.10412,"24":0.06247,"25":3.91478,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 15.0 18.0","13.0":0.01041,"14.0":0.01041,"16.0":0.01041,"17.0":0.01041,"19.0":0.01041},I:{"0":0.07595,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00013},K:{"0":0.47363,_:"10 11 12 11.1 11.5 12.1"},A:{"7":0.00456,"8":0.02734,"9":0.00911,"10":0.00456,"11":0.07745,_:"6 5.5"},S:{"2.5":0.05444,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":36.49311},R:{_:"0"},M:{"0":0.17421},Q:{_:"14.9"},O:{"0":0.17421},H:{"0":0}}; 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..c12a808 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CZ.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.108,"56":0.009,"60":0.0045,"63":0.0045,"68":0.0045,"75":0.0045,"78":0.036,"81":0.0045,"83":0.0135,"88":0.009,"91":0.0045,"95":0.0045,"96":0.0045,"97":0.0045,"100":0.018,"102":0.0135,"103":0.018,"105":0.009,"106":0.0135,"108":0.009,"109":0.0045,"110":0.0045,"111":0.0045,"112":0.0045,"113":0.0135,"114":0.0045,"115":0.7515,"116":0.0045,"117":0.0045,"118":0.009,"119":0.0045,"120":0.0135,"121":0.0135,"122":0.0135,"123":0.027,"124":0.018,"125":0.036,"126":0.0945,"127":2.0925,"128":3.3525,"129":0.0045,_:"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 57 58 59 61 62 64 65 66 67 69 70 71 72 73 74 76 77 79 80 82 84 85 86 87 89 90 92 93 94 98 99 101 104 107 130 131 3.5 3.6"},D:{"41":0.0045,"49":0.0135,"68":0.0045,"70":0.0045,"71":0.0045,"74":0.0045,"79":0.045,"80":0.0045,"81":0.009,"83":0.0045,"84":0.0045,"85":0.0135,"87":0.0315,"88":0.0045,"89":0.009,"90":0.0045,"91":0.009,"93":0.0045,"94":0.0315,"95":0.0045,"96":0.0045,"97":0.0045,"98":0.018,"99":0.0045,"100":0.0045,"101":0.0045,"102":0.234,"103":0.0405,"104":0.036,"105":0.0045,"106":0.0135,"107":0.009,"108":0.144,"109":1.2465,"110":0.009,"111":0.0135,"112":0.0135,"113":0.1215,"114":0.1485,"115":0.009,"116":0.063,"117":0.0135,"118":0.0225,"119":0.045,"120":0.693,"121":0.036,"122":0.1305,"123":0.108,"124":0.189,"125":0.531,"126":17.982,"127":1.9935,"128":0.0045,_:"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 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 72 73 75 76 77 78 86 92 129 130"},F:{"46":0.009,"69":0.0045,"75":0.009,"79":0.0045,"83":0.045,"84":0.009,"85":0.018,"95":0.1035,"99":0.0045,"102":0.0045,"109":0.639,"110":0.0225,"111":1.098,_:"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 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 76 77 78 80 81 82 86 87 88 89 90 91 92 93 94 96 97 98 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.0045},B:{"18":0.0045,"92":0.0045,"105":0.0045,"106":0.0045,"107":0.0045,"108":0.0045,"109":0.09,"110":0.0045,"111":0.0045,"112":0.0045,"113":0.0135,"114":0.0225,"115":0.009,"116":0.0045,"117":0.0045,"118":0.2205,"119":0.009,"120":0.0225,"121":0.009,"122":0.018,"123":0.054,"124":0.0675,"125":0.1305,"126":6.2235,"127":0.7785,_:"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"},E:{"9":0.0045,"13":0.0045,"14":0.009,_:"0 4 5 6 7 8 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.0225,"14.1":0.0315,"15.1":0.0045,"15.2-15.3":0.0045,"15.4":0.009,"15.5":0.018,"15.6":0.117,"16.0":0.0225,"16.1":0.0225,"16.2":0.018,"16.3":0.036,"16.4":0.009,"16.5":0.0315,"16.6":0.153,"17.0":0.018,"17.1":0.036,"17.2":0.036,"17.3":0.036,"17.4":0.126,"17.5":1.0935,"17.6":0.009,"18.0":0.0135},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00204,"5.0-5.1":0.00102,"6.0-6.1":0.00611,"7.0-7.1":0.00611,"8.1-8.4":0,"9.0-9.2":0.00509,"9.3":0.02035,"10.0-10.2":0.00407,"10.3":0.03561,"11.0-11.2":0.09361,"11.3-11.4":0.01018,"12.0-12.1":0.00712,"12.2-12.5":0.13126,"13.0-13.1":0.00204,"13.2":0.02137,"13.3":0.00712,"13.4-13.7":0.03053,"14.0-14.4":0.07021,"14.5-14.8":0.07937,"15.0-15.1":0.03968,"15.2-15.3":0.04274,"15.4":0.04884,"15.5":0.05902,"15.6-15.8":0.54131,"16.0":0.10887,"16.1":0.23097,"16.2":0.116,"16.3":0.19434,"16.4":0.04579,"16.5":0.08242,"16.6-16.7":0.67562,"17.0":0.06105,"17.1":0.0987,"17.2":0.09565,"17.3":0.14347,"17.4":0.35918,"17.5":6.57712,"17.6":0.05088,"18.0":0.06716},P:{"4":0.0413,"20":0.02065,"21":0.0413,"22":0.0413,"23":0.0826,"24":0.06195,"25":2.58129,_:"5.0-5.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0","6.2-6.4":0.01033,"13.0":0.01033,"17.0":0.01033,"18.0":0.01033,"19.0":0.01033},I:{"0":0.12606,"3":0,"4":0.00001,"2.1":0,"2.2":0.00003,"2.3":0,"4.1":0.00008,"4.2-4.3":0.00005,"4.4":0,"4.4.3-4.4.4":0.00022},K:{"0":0.6215,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01029,"10":0.03086,"11":0.03086,_:"6 7 9 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":41.252},R:{_:"0"},M:{"0":0.528},Q:{"14.9":0.0055},O:{"0":0.11},H:{"0":0}}; 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..5c3ba29 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/DE.js @@ -0,0 +1 @@ +module.exports={C:{"38":0.014,"40":0.00467,"47":0.00933,"48":0.01866,"50":0.06999,"52":0.09332,"53":0.06532,"56":0.03266,"59":0.014,"66":0.00933,"68":0.00467,"72":0.00467,"75":0.00467,"77":0.014,"78":0.03733,"82":0.00467,"83":0.00933,"84":0.00467,"87":0.00467,"88":0.014,"89":0.00467,"91":0.014,"92":0.00467,"94":0.00467,"98":0.00933,"99":0.00467,"100":0.00467,"101":0.00467,"102":0.028,"103":0.01866,"104":0.00467,"105":0.00933,"106":0.00933,"107":0.00933,"108":0.014,"109":0.00933,"110":0.00933,"111":0.014,"112":0.00467,"113":0.014,"114":0.00467,"115":1.20849,"116":0.00933,"117":0.014,"118":0.04666,"119":0.02333,"120":0.02333,"121":0.03266,"122":0.04666,"123":0.028,"124":0.03733,"125":0.04666,"126":0.16798,"127":2.92558,"128":4.88064,"129":0.05599,_:"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 39 41 42 43 44 45 46 49 51 54 55 57 58 60 61 62 63 64 65 67 69 70 71 73 74 76 79 80 81 85 86 90 93 95 96 97 130 131 3.5 3.6"},D:{"41":0.00467,"43":0.05133,"49":0.02333,"52":0.00933,"56":0.00467,"58":0.00467,"63":0.00467,"66":0.06066,"70":0.00467,"74":0.00467,"76":0.02333,"77":0.028,"78":0.00467,"79":0.03266,"80":0.03733,"81":0.028,"83":0.00933,"84":0.00933,"85":0.00933,"86":0.014,"87":0.04199,"88":0.028,"89":0.03266,"90":0.014,"91":0.10265,"92":0.00467,"93":0.05599,"94":0.07466,"95":0.00467,"96":0.12598,"97":0.03733,"98":0.014,"99":0.04199,"100":0.00467,"101":0.00467,"102":0.014,"103":0.16798,"104":0.04666,"105":0.014,"106":0.18664,"107":0.04666,"108":0.07466,"109":0.81655,"110":0.03733,"111":0.05133,"112":0.04666,"113":0.15864,"114":0.10265,"115":0.05133,"116":0.12132,"117":0.03266,"118":0.10265,"119":0.06532,"120":0.12132,"121":0.53192,"122":0.14465,"123":0.23797,"124":0.50393,"125":0.67657,"126":13.37276,"127":1.27382,"128":0.00933,_:"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 42 44 45 46 47 48 50 51 53 54 55 57 59 60 61 62 64 65 67 68 69 71 72 73 75 129 130"},F:{"36":0.00467,"46":0.01866,"70":0.00467,"83":0.04666,"86":0.00467,"89":0.00467,"91":0.00467,"94":0.00467,"95":0.11198,"102":0.00467,"106":0.00467,"107":0.00467,"108":0.00467,"109":0.62991,"110":0.02333,"111":0.97986,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 71 72 73 74 75 76 77 78 79 80 81 82 84 85 87 88 90 92 93 96 97 98 99 100 101 103 104 105 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.00933},B:{"17":0.00933,"18":0.00467,"92":0.00933,"97":0.00467,"100":0.00467,"101":0.00467,"103":0.00467,"105":0.00467,"106":0.00467,"107":0.014,"108":0.00933,"109":0.13531,"110":0.00933,"111":0.05133,"112":0.00467,"113":0.00467,"114":0.00933,"115":0.00933,"116":0.00467,"117":0.00933,"118":0.00933,"119":0.014,"120":0.03266,"121":0.028,"122":0.028,"123":0.028,"124":0.07466,"125":0.16798,"126":6.85435,"127":0.81188,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 98 99 102 104"},E:{"7":0.01866,"8":0.00467,"13":0.00467,"14":0.01866,"15":0.00467,_:"0 4 5 6 9 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.00467,"11.1":0.014,"12.1":0.014,"13.1":0.06066,"14.1":0.07466,"15.1":0.00933,"15.2-15.3":0.00933,"15.4":0.014,"15.5":0.028,"15.6":0.28929,"16.0":0.08399,"16.1":0.04199,"16.2":0.04199,"16.3":0.08399,"16.4":0.01866,"16.5":0.03733,"16.6":0.32195,"17.0":0.028,"17.1":0.05133,"17.2":0.05599,"17.3":0.05599,"17.4":0.13998,"17.5":2.32833,"17.6":0.01866,"18.0":0.014},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00261,"5.0-5.1":0.00131,"6.0-6.1":0.00784,"7.0-7.1":0.00784,"8.1-8.4":0,"9.0-9.2":0.00653,"9.3":0.02613,"10.0-10.2":0.00523,"10.3":0.04572,"11.0-11.2":0.12018,"11.3-11.4":0.01306,"12.0-12.1":0.00914,"12.2-12.5":0.16851,"13.0-13.1":0.00261,"13.2":0.02743,"13.3":0.00914,"13.4-13.7":0.03919,"14.0-14.4":0.09013,"14.5-14.8":0.10189,"15.0-15.1":0.05095,"15.2-15.3":0.05486,"15.4":0.0627,"15.5":0.07577,"15.6-15.8":0.69495,"16.0":0.13977,"16.1":0.29653,"16.2":0.14892,"16.3":0.2495,"16.4":0.05878,"16.5":0.10581,"16.6-16.7":0.86738,"17.0":0.07838,"17.1":0.12671,"17.2":0.12279,"17.3":0.18419,"17.4":0.46112,"17.5":8.4439,"17.6":0.06531,"18.0":0.08622},P:{"4":0.1154,"20":0.04196,"21":0.09442,"22":0.08393,"23":0.1154,"24":0.12589,"25":3.50397,"5.0-5.4":0.01049,"6.2-6.4":0.01049,"7.2-7.4":0.02098,_:"8.2 9.2 10.1 12.0","11.1-11.2":0.01049,"13.0":0.02098,"14.0":0.02098,"15.0":0.01049,"16.0":0.02098,"17.0":0.03147,"18.0":0.02098,"19.0":0.03147},I:{"0":0.05315,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00009},K:{"0":0.94412,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01011,"9":0.00505,"10":0.00505,"11":0.1011,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":33.41579},R:{_:"0"},M:{"0":1.20548},Q:{"14.9":0.016},O:{"0":0.2347},H:{"0":0}}; 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..121c6ee --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/DJ.js @@ -0,0 +1 @@ +module.exports={C:{"49":0.00147,"72":0.00294,"95":0.01174,"115":0.07927,"118":0.00147,"120":0.00147,"121":0.00147,"122":0.00294,"124":0.00294,"126":0.00147,"127":0.34645,"128":0.50059,_:"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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 119 123 125 129 130 131 3.5 3.6"},D:{"5":0.00147,"43":0.00147,"49":0.00587,"53":0.0044,"54":0.00294,"56":0.00147,"58":0.08955,"66":0.00147,"67":0.00587,"68":0.01615,"70":0.01321,"72":0.00587,"73":0.00147,"78":0.02349,"79":0.02055,"81":0.00587,"83":0.01028,"87":0.02642,"88":0.00147,"89":0.00294,"92":0.33324,"94":0.00147,"95":0.00294,"98":0.01321,"99":0.00147,"100":0.00294,"101":0.00147,"102":0.00147,"103":0.00881,"104":0.00734,"105":0.00147,"107":0.00294,"108":0.00294,"109":0.77804,"110":0.00147,"112":0.00147,"115":0.00147,"116":0.0044,"119":0.0044,"120":0.02496,"121":0.01615,"122":0.01468,"123":0.04257,"124":0.03376,"125":0.11157,"126":6.75574,"127":0.85878,"128":0.00734,"129":0.00294,_:"4 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 44 45 46 47 48 50 51 52 55 57 59 60 61 62 63 64 65 69 71 74 75 76 77 80 84 85 86 90 91 93 96 97 106 111 113 114 117 118 130"},F:{"46":0.00294,"83":0.08808,"95":0.06166,"101":0.00147,"105":0.00147,"107":0.00294,"109":0.00294,"110":0.75162,"111":0.14093,_:"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 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 102 103 104 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00147,"16":0.00294,"17":0.00147,"18":0.00147,"88":0.00294,"89":0.00294,"92":0.02349,"100":0.00294,"109":0.17616,"110":0.00147,"114":0.00147,"116":0.00587,"118":0.00147,"119":0.00294,"120":0.00294,"121":0.00587,"122":0.00734,"123":0.00294,"124":0.01028,"125":0.09102,"126":1.41075,"127":0.24809,_:"13 14 15 79 80 81 83 84 85 86 87 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 111 112 113 115 117"},E:{_:"0 4 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 15.2-15.3 15.4 16.1 16.5 17.0 17.6 18.0","13.1":0.00587,"14.1":0.04991,"15.1":0.03523,"15.5":0.00147,"15.6":0.00734,"16.0":0.00294,"16.2":0.00147,"16.3":0.00294,"16.4":0.00147,"16.6":0.01321,"17.1":0.00147,"17.2":0.01908,"17.3":0.00587,"17.4":0.18937,"17.5":0.07927},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00113,"5.0-5.1":0.00057,"6.0-6.1":0.0034,"7.0-7.1":0.0034,"8.1-8.4":0,"9.0-9.2":0.00284,"9.3":0.01135,"10.0-10.2":0.00227,"10.3":0.01986,"11.0-11.2":0.0522,"11.3-11.4":0.00567,"12.0-12.1":0.00397,"12.2-12.5":0.07319,"13.0-13.1":0.00113,"13.2":0.01191,"13.3":0.00397,"13.4-13.7":0.01702,"14.0-14.4":0.03915,"14.5-14.8":0.04426,"15.0-15.1":0.02213,"15.2-15.3":0.02383,"15.4":0.02723,"15.5":0.03291,"15.6-15.8":0.30185,"16.0":0.06071,"16.1":0.12879,"16.2":0.06468,"16.3":0.10837,"16.4":0.02553,"16.5":0.04596,"16.6-16.7":0.37674,"17.0":0.03404,"17.1":0.05504,"17.2":0.05333,"17.3":0.08,"17.4":0.20028,"17.5":3.66753,"17.6":0.02837,"18.0":0.03745},P:{"4":0.0305,"20":0.02033,"21":0.24397,"22":0.65058,"23":0.14232,"24":0.41678,"25":1.83993,"5.0-5.4":0.01017,"6.2-6.4":0.01017,"7.2-7.4":0.48794,_:"8.2 10.1 12.0","9.2":0.02033,"11.1-11.2":0.01017,"13.0":0.01017,"14.0":0.02033,"15.0":0.01017,"16.0":0.04066,"17.0":0.0305,"18.0":0.01017,"19.0":0.16265},I:{"0":0.07652,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00013},K:{"0":1.38218,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0044,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":73.52931},R:{_:"0"},M:{"0":0.07679},Q:{"14.9":0.04266},O:{"0":0.76788},H:{"0":0}}; 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..3fd0d4a --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/DK.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.04903,"61":0.00613,"78":0.0429,"88":0.0429,"97":0.00613,"101":0.01226,"102":0.00613,"103":0.00613,"106":0.00613,"115":0.19613,"121":0.00613,"122":0.00613,"123":0.00613,"124":0.00613,"125":0.02452,"126":0.0429,"127":0.82129,"128":1.51386,_:"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 62 63 64 65 66 67 68 69 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 98 99 100 104 105 107 108 109 110 111 112 113 114 116 117 118 119 120 129 130 131 3.5 3.6"},D:{"38":0.00613,"44":0.01226,"49":0.01226,"52":0.06742,"66":0.00613,"79":0.01226,"81":0.00613,"87":0.02452,"88":0.00613,"89":0.03065,"93":0.18387,"94":0.00613,"95":0.01226,"98":0.00613,"99":0.00613,"102":0.01839,"103":0.30032,"104":0.01226,"105":0.01226,"106":0.00613,"107":0.01226,"108":0.01226,"109":0.71709,"110":0.01839,"111":0.04903,"112":0.03677,"113":0.39839,"114":0.45355,"115":0.0429,"116":0.31258,"117":0.18387,"118":0.03065,"119":0.03065,"120":0.07968,"121":0.14097,"122":0.2329,"123":0.23903,"124":0.47806,"125":1.69773,"126":32.77789,"127":3.49966,"128":0.00613,_:"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 45 46 47 48 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 78 80 83 84 85 86 90 91 92 96 97 100 101 129 130"},F:{"46":0.00613,"83":0.01839,"95":0.02452,"102":0.01839,"107":0.00613,"109":0.56387,"110":0.01226,"111":0.39226,_:"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 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"86":0.00613,"92":0.01226,"94":0.00613,"108":0.00613,"109":0.08581,"110":0.00613,"112":0.00613,"113":0.00613,"114":0.01839,"115":0.01226,"116":0.01226,"117":0.00613,"118":0.01226,"119":0.01226,"120":0.03677,"121":0.02452,"122":0.03065,"123":0.01839,"124":0.05516,"125":0.20226,"126":8.23125,"127":1.12161,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 87 88 89 90 91 93 95 96 97 98 99 100 101 102 103 104 105 106 107 111"},E:{"13":0.00613,"14":0.01839,"15":0.00613,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00613,"13.1":0.05516,"14.1":0.12871,"15.1":0.01226,"15.2-15.3":0.01226,"15.4":0.02452,"15.5":0.03065,"15.6":0.39226,"16.0":0.11032,"16.1":0.03677,"16.2":0.04903,"16.3":0.13484,"16.4":0.02452,"16.5":0.03677,"16.6":0.58838,"17.0":0.01839,"17.1":0.05516,"17.2":0.0429,"17.3":0.05516,"17.4":0.16548,"17.5":2.29838,"17.6":0.01839,"18.0":0.02452},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00346,"5.0-5.1":0.00173,"6.0-6.1":0.01037,"7.0-7.1":0.01037,"8.1-8.4":0,"9.0-9.2":0.00864,"9.3":0.03455,"10.0-10.2":0.00691,"10.3":0.06047,"11.0-11.2":0.15894,"11.3-11.4":0.01728,"12.0-12.1":0.01209,"12.2-12.5":0.22286,"13.0-13.1":0.00346,"13.2":0.03628,"13.3":0.01209,"13.4-13.7":0.05183,"14.0-14.4":0.11921,"14.5-14.8":0.13475,"15.0-15.1":0.06738,"15.2-15.3":0.07256,"15.4":0.08293,"15.5":0.1002,"15.6-15.8":0.9191,"16.0":0.18486,"16.1":0.39217,"16.2":0.19695,"16.3":0.32998,"16.4":0.07774,"16.5":0.13994,"16.6-16.7":1.14714,"17.0":0.10366,"17.1":0.16758,"17.2":0.1624,"17.3":0.2436,"17.4":0.60985,"17.5":11.16738,"17.6":0.08638,"18.0":0.11402},P:{"4":0.01083,"20":0.02165,"21":0.01083,"22":0.01083,"23":0.03248,"24":0.03248,"25":1.94857,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 19.0","17.0":0.01083,"18.0":0.01083},I:{"0":0.05786,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.0001},K:{"0":0.19742,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01954,"9":0.00651,"10":0.00651,"11":0.07163,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":18.32563},R:{_:"0"},M:{"0":0.49549},Q:{"14.9":0.00387},O:{"0":0.0271},H:{"0":0}}; 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..1f5d34f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/DM.js @@ -0,0 +1 @@ +module.exports={C:{"78":0.00372,"115":0.05946,"121":0.12634,"125":0.00372,"127":1.62389,"128":0.9067,_:"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 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 112 113 114 116 117 118 119 120 122 123 124 126 129 130 131 3.5 3.6"},D:{"47":0.00743,"50":0.00372,"54":0.00372,"65":0.00372,"69":0.00372,"75":0.01486,"76":0.49051,"77":0.28242,"79":0.00743,"80":0.17837,"87":0.01486,"88":0.00743,"89":0.01486,"93":0.01115,"95":0.00372,"96":0.00372,"97":0.00372,"98":0.00372,"101":0.00743,"103":0.18208,"105":0.00372,"106":0.01858,"107":0.00372,"108":0.0223,"109":0.33816,"110":0.00372,"111":0.00372,"112":0.00372,"113":0.00372,"114":0.00372,"115":0.00372,"116":0.11148,"118":0.00372,"119":0.08175,"120":0.12263,"121":0.03344,"122":0.02601,"123":0.07432,"124":0.0223,"125":0.32329,"126":15.68524,"127":2.06238,"128":0.00743,_:"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 48 49 51 52 53 55 56 57 58 59 60 61 62 63 64 66 67 68 70 71 72 73 74 78 81 83 84 85 86 90 91 92 94 99 100 102 104 117 129 130"},F:{"83":0.0223,"84":0.00372,"95":0.00372,"106":0.00372,"109":0.29356,"110":0.01486,"111":0.628,_:"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 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"89":0.00372,"92":0.01115,"100":0.00372,"102":0.00372,"109":0.08175,"114":0.01115,"116":0.00372,"117":0.00743,"118":0.00372,"120":0.00372,"121":0.00743,"122":0.00372,"123":0.00372,"124":0.00372,"125":0.05946,"126":5.33989,"127":0.94015,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 99 101 103 104 105 106 107 108 110 111 112 113 115 119"},E:{"14":0.0929,_:"0 4 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 12.1 13.1 15.1 15.2-15.3 16.0 17.0 18.0","14.1":0.03716,"15.4":0.00372,"15.5":0.03716,"15.6":0.12634,"16.1":0.07804,"16.2":0.00743,"16.3":0.00372,"16.4":0.00372,"16.5":0.01486,"16.6":0.07432,"17.1":0.01486,"17.2":0.01858,"17.3":0.01858,"17.4":0.1635,"17.5":1.12595,"17.6":0.00743},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00219,"5.0-5.1":0.00109,"6.0-6.1":0.00656,"7.0-7.1":0.00656,"8.1-8.4":0,"9.0-9.2":0.00546,"9.3":0.02186,"10.0-10.2":0.00437,"10.3":0.03825,"11.0-11.2":0.10054,"11.3-11.4":0.01093,"12.0-12.1":0.00765,"12.2-12.5":0.14097,"13.0-13.1":0.00219,"13.2":0.02295,"13.3":0.00765,"13.4-13.7":0.03278,"14.0-14.4":0.0754,"14.5-14.8":0.08524,"15.0-15.1":0.04262,"15.2-15.3":0.0459,"15.4":0.05245,"15.5":0.06338,"15.6-15.8":0.58136,"16.0":0.11693,"16.1":0.24806,"16.2":0.12458,"16.3":0.20872,"16.4":0.04918,"16.5":0.08852,"16.6-16.7":0.72561,"17.0":0.06557,"17.1":0.106,"17.2":0.10272,"17.3":0.15408,"17.4":0.38575,"17.5":7.06378,"17.6":0.05464,"18.0":0.07212},P:{"4":0.01121,"21":0.01121,"22":0.08968,"23":0.04484,"24":0.03363,"25":2.11866,_:"20 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 18.0","5.0-5.4":0.01121,"7.2-7.4":0.26904,"14.0":0.01121,"17.0":0.02242,"19.0":0.03363},I:{"0":0.01252,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":1.83493,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":50.79152},R:{_:"0"},M:{"0":0.10054},Q:{_:"14.9"},O:{"0":0.22622},H:{"0":0}}; 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..ace4557 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/DO.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.10872,"44":0.00375,"52":0.01125,"56":0.0075,"83":0.0075,"84":0.00375,"99":0.00375,"105":0.0075,"106":0.00375,"108":0.00375,"109":0.01125,"111":0.00375,"113":0.00375,"115":0.10872,"118":0.00375,"120":0.015,"124":0.01125,"125":0.00375,"126":0.01125,"127":0.25493,"128":0.47237,"129":0.00375,_:"2 3 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 46 47 48 49 50 51 53 54 55 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 85 86 87 88 89 90 91 92 93 94 95 96 97 98 100 101 102 103 104 107 110 112 114 116 117 119 121 122 123 130 131 3.5 3.6"},D:{"29":0.00375,"38":0.00375,"39":0.0075,"47":0.00375,"48":0.00375,"49":0.015,"56":0.00375,"65":0.0075,"66":0.00375,"67":0.00375,"70":0.015,"73":0.01125,"74":0.00375,"75":0.00375,"76":0.0075,"79":0.015,"80":0.00375,"81":0.0075,"83":0.0075,"84":0.01125,"85":0.0075,"86":0.0075,"87":0.05998,"88":0.01125,"89":0.02249,"90":0.0075,"91":0.09747,"92":0.00375,"93":0.02624,"94":0.00375,"95":0.00375,"96":0.00375,"97":0.03374,"98":0.00375,"99":0.0075,"101":0.00375,"102":0.015,"103":0.27743,"104":0.00375,"105":0.01125,"106":0.04874,"107":0.07498,"108":0.06373,"109":1.47336,"110":0.07123,"111":0.05249,"112":0.06373,"113":0.0075,"114":0.02249,"115":0.0075,"116":0.10872,"117":0.0075,"118":0.01125,"119":0.04499,"120":0.07873,"121":0.12372,"122":0.10497,"123":0.08998,"124":0.34116,"125":0.35616,"126":17.53032,"127":2.23066,"128":0.015,_:"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 30 31 32 33 34 35 36 37 40 41 42 43 44 45 46 50 51 52 53 54 55 57 58 59 60 61 62 63 64 68 69 71 72 77 78 100 129 130"},F:{"83":0.015,"91":0.0075,"93":0.00375,"95":0.01875,"109":0.67107,"110":0.01125,"111":0.65608,_:"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 84 85 86 87 88 89 90 92 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.01875,"18":0.02999,"92":0.04499,"100":0.0075,"104":0.00375,"107":0.0075,"108":0.00375,"109":0.03749,"110":0.015,"115":0.00375,"117":0.00375,"118":0.00375,"119":0.0075,"120":0.015,"121":0.0075,"122":0.05249,"123":0.01125,"124":0.02999,"125":0.11997,"126":4.19513,"127":0.61484,_:"12 13 14 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 105 106 111 112 113 114 116"},E:{"4":0.00375,"14":0.0075,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.0075,"12.1":0.00375,"13.1":0.03374,"14.1":0.03749,"15.1":0.00375,"15.2-15.3":0.00375,"15.4":0.0075,"15.5":0.0075,"15.6":0.13496,"16.0":0.0075,"16.1":0.015,"16.2":0.01875,"16.3":0.03749,"16.4":0.0075,"16.5":0.04499,"16.6":0.11997,"17.0":0.03749,"17.1":0.05624,"17.2":0.03749,"17.3":0.02624,"17.4":0.08623,"17.5":0.83978,"17.6":0.01125,"18.0":0.015},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00353,"5.0-5.1":0.00176,"6.0-6.1":0.01058,"7.0-7.1":0.01058,"8.1-8.4":0,"9.0-9.2":0.00882,"9.3":0.03528,"10.0-10.2":0.00706,"10.3":0.06173,"11.0-11.2":0.16227,"11.3-11.4":0.01764,"12.0-12.1":0.01235,"12.2-12.5":0.22752,"13.0-13.1":0.00353,"13.2":0.03704,"13.3":0.01235,"13.4-13.7":0.05291,"14.0-14.4":0.1217,"14.5-14.8":0.13757,"15.0-15.1":0.06879,"15.2-15.3":0.07408,"15.4":0.08466,"15.5":0.1023,"15.6-15.8":0.93832,"16.0":0.18872,"16.1":0.40037,"16.2":0.20107,"16.3":0.33688,"16.4":0.07937,"16.5":0.14286,"16.6-16.7":1.17113,"17.0":0.10583,"17.1":0.17108,"17.2":0.16579,"17.3":0.24869,"17.4":0.6226,"17.5":11.40088,"17.6":0.08819,"18.0":0.11641},P:{"4":0.04266,"20":0.01067,"21":0.04266,"22":0.06399,"23":0.04266,"24":0.04266,"25":1.07724,"5.0-5.4":0.01067,_:"6.2-6.4 8.2 9.2 10.1 12.0 13.0 15.0","7.2-7.4":0.06399,"11.1-11.2":0.08533,"14.0":0.032,"16.0":0.02133,"17.0":0.01067,"18.0":0.01067,"19.0":0.02133},I:{"0":0.0436,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00007},K:{"0":0.2375,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.0478,"9":0.01304,"10":0.01304,"11":0.11733,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":45.57399},R:{_:"0"},M:{"0":0.48125},Q:{"14.9":0.00625},O:{"0":0.0625},H:{"0":0}}; 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..4ccdcee --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/DZ.js @@ -0,0 +1 @@ +module.exports={C:{"15":0.00191,"34":0.00191,"44":0.00191,"47":0.00191,"52":0.02667,"66":0.00191,"71":0.00191,"72":0.00572,"78":0.00572,"83":0.00191,"88":0.00191,"89":0.00191,"99":0.00191,"100":0.00191,"101":0.00191,"102":0.00191,"103":0.00572,"105":0.00191,"106":0.00191,"107":0.00191,"108":0.00191,"109":0.00191,"110":0.00191,"111":0.00191,"112":0.00381,"113":0.00191,"114":0.00191,"115":0.56579,"118":0.00191,"121":0.00381,"122":0.00191,"123":0.00191,"124":0.00191,"125":0.00572,"126":0.01524,"127":0.24194,"128":0.38672,"129":0.00572,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 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 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 73 74 75 76 77 79 80 81 82 84 85 86 87 90 91 92 93 94 95 96 97 98 104 116 117 119 120 130 131 3.5 3.6"},D:{"11":0.00381,"22":0.00191,"26":0.00191,"29":0.00191,"31":0.00191,"33":0.00191,"34":0.00191,"38":0.00572,"39":0.00191,"40":0.00191,"42":0.00191,"43":0.00953,"44":0.00191,"45":0.00191,"46":0.00191,"47":0.00572,"48":0.00191,"49":0.02667,"50":0.00762,"51":0.00381,"52":0.00381,"53":0.00191,"54":0.00191,"55":0.00191,"56":0.01143,"58":0.05144,"59":0.00381,"60":0.01905,"61":0.00953,"62":0.00381,"63":0.00191,"64":0.00381,"65":0.00191,"66":0.00191,"67":0.00191,"68":0.00762,"69":0.00762,"70":0.00953,"71":0.00381,"72":0.00381,"73":0.00381,"74":0.00762,"75":0.00381,"76":0.00572,"77":0.00572,"78":0.00572,"79":0.0743,"80":0.00381,"81":0.02286,"83":0.0362,"84":0.00381,"85":0.01143,"86":0.01143,"87":0.02858,"88":0.01524,"89":0.00762,"90":0.00381,"91":0.01715,"92":0.00572,"93":0.00381,"94":0.00572,"95":0.04001,"96":0.00953,"97":0.00762,"98":0.04191,"99":0.00762,"100":0.00572,"101":0.00572,"102":0.00953,"103":0.03429,"104":0.01524,"105":0.01715,"106":0.02667,"107":0.02096,"108":0.03048,"109":4.3053,"110":0.03239,"111":0.00953,"112":0.01524,"113":0.00191,"114":0.00762,"115":0.00381,"116":0.03429,"117":0.00762,"118":0.02667,"119":0.0762,"120":0.09525,"121":0.02286,"122":0.03429,"123":0.0362,"124":0.08192,"125":0.13335,"126":5.61404,"127":0.74105,"128":0.00381,"129":0.00191,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 30 32 35 36 37 41 57 130"},F:{"25":0.00381,"28":0.00191,"36":0.00191,"46":0.00191,"63":0.00191,"64":0.00381,"79":0.02096,"83":0.01334,"84":0.00572,"85":0.01524,"86":0.00191,"95":0.1124,"96":0.00191,"107":0.00191,"109":0.15621,"110":0.00762,"111":0.29909,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00191,"17":0.00191,"18":0.00953,"84":0.00191,"89":0.00191,"92":0.01905,"100":0.00191,"103":0.00191,"106":0.00191,"107":0.00381,"108":0.00191,"109":0.04953,"110":0.00191,"111":0.00191,"112":0.00191,"113":0.00191,"114":0.00191,"115":0.00191,"118":0.00191,"119":0.00191,"120":0.02096,"121":0.00381,"122":0.00762,"123":0.00191,"124":0.00762,"125":0.05715,"126":0.85725,"127":0.12954,_:"12 13 14 15 79 80 81 83 85 86 87 88 90 91 93 94 95 96 97 98 99 101 102 104 105 116 117"},E:{"9":0.00191,"14":0.00191,_:"0 4 5 6 7 8 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.2-15.3 17.6","12.1":0.00191,"13.1":0.00381,"14.1":0.00381,"15.1":0.00191,"15.4":0.00191,"15.5":0.00381,"15.6":0.02477,"16.0":0.00191,"16.1":0.00572,"16.2":0.00381,"16.3":0.00572,"16.4":0.00191,"16.5":0.00381,"16.6":0.02286,"17.0":0.00191,"17.1":0.00381,"17.2":0.00572,"17.3":0.00572,"17.4":0.01524,"17.5":0.11049,"18.0":0.00381},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00084,"5.0-5.1":0.00042,"6.0-6.1":0.00253,"7.0-7.1":0.00253,"8.1-8.4":0,"9.0-9.2":0.00211,"9.3":0.00844,"10.0-10.2":0.00169,"10.3":0.01476,"11.0-11.2":0.03881,"11.3-11.4":0.00422,"12.0-12.1":0.00295,"12.2-12.5":0.05441,"13.0-13.1":0.00084,"13.2":0.00886,"13.3":0.00295,"13.4-13.7":0.01265,"14.0-14.4":0.0291,"14.5-14.8":0.0329,"15.0-15.1":0.01645,"15.2-15.3":0.01772,"15.4":0.02025,"15.5":0.02446,"15.6-15.8":0.2244,"16.0":0.04513,"16.1":0.09575,"16.2":0.04809,"16.3":0.08056,"16.4":0.01898,"16.5":0.03417,"16.6-16.7":0.28008,"17.0":0.02531,"17.1":0.04091,"17.2":0.03965,"17.3":0.05947,"17.4":0.1489,"17.5":2.72653,"17.6":0.02109,"18.0":0.02784},P:{"4":0.10291,"20":0.03087,"21":0.10291,"22":0.13378,"23":0.13378,"24":0.12349,"25":0.98793,"5.0-5.4":0.01029,"6.2-6.4":0.04116,"7.2-7.4":0.19553,_:"8.2 10.1","9.2":0.01029,"11.1-11.2":0.02058,"12.0":0.01029,"13.0":0.02058,"14.0":0.02058,"15.0":0.01029,"16.0":0.03087,"17.0":0.03087,"18.0":0.02058,"19.0":0.08233},I:{"0":0.09681,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00006,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00017},K:{"0":0.71674,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.02257,"9":0.00821,"10":0.00205,"11":0.07386,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":75.92296},R:{_:"0"},M:{"0":0.15382},Q:{"14.9":0.0081},O:{"0":0.51814},H:{"0":0.02}}; 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..15a00a4 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/EC.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.01455,"52":0.00485,"78":0.0097,"88":0.00485,"100":0.00485,"102":0.00485,"109":0.00485,"110":0.00485,"111":0.0097,"112":0.0097,"113":0.0194,"114":0.00485,"115":0.30549,"116":0.00485,"118":0.00485,"119":0.00485,"120":0.0097,"121":0.01455,"122":0.00485,"123":0.0097,"124":0.0097,"125":0.01455,"126":0.04364,"127":1.07648,"128":1.73109,"129":0.0097,_:"2 3 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 67 68 69 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 99 101 103 104 105 106 107 108 117 130 131 3.5 3.6"},D:{"38":0.01455,"44":0.00485,"46":0.00485,"47":0.01455,"49":0.00485,"51":0.00485,"55":0.00485,"64":0.00485,"65":0.00485,"70":0.00485,"74":0.00485,"75":0.0097,"76":0.01455,"78":0.0097,"79":0.17941,"81":0.00485,"84":0.02425,"86":0.00485,"87":0.05819,"88":0.00485,"90":0.00485,"91":0.25215,"92":0.00485,"93":0.01455,"94":0.00485,"95":0.00485,"96":0.00485,"97":0.01455,"98":0.00485,"99":0.0097,"100":0.00485,"101":0.00485,"102":0.00485,"103":0.07274,"104":0.0194,"105":0.0097,"106":0.0194,"107":0.0194,"108":0.02909,"109":2.19175,"110":0.03394,"111":0.02425,"112":0.0194,"113":0.03394,"114":0.0194,"115":0.0097,"116":0.2667,"117":0.01455,"118":0.02425,"119":0.07274,"120":0.10183,"121":0.11638,"122":0.41701,"123":0.16002,"124":0.29094,"125":0.44611,"126":26.24279,"127":3.11791,"128":0.00485,_:"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 45 48 50 52 53 54 56 57 58 59 60 61 62 63 66 67 68 69 71 72 73 77 80 83 85 89 129 130"},F:{"83":0.0097,"95":0.06304,"102":0.00485,"109":1.04254,"110":0.04364,"111":0.72735,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00485,"92":0.01455,"100":0.00485,"109":0.04364,"110":0.0097,"114":0.00485,"115":0.00485,"116":0.00485,"117":0.00485,"118":0.00485,"119":0.0097,"120":0.0097,"121":0.0194,"122":0.01455,"123":0.01455,"124":0.06789,"125":0.06789,"126":4.04892,"127":0.53824,_:"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 101 102 103 104 105 106 107 108 111 112 113"},E:{"9":0.00485,"14":0.00485,"15":0.0097,_:"0 4 5 6 7 8 10 11 12 13 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1","5.1":0.02909,"13.1":0.02425,"14.1":0.02425,"15.2-15.3":0.02909,"15.4":0.00485,"15.5":0.00485,"15.6":0.04849,"16.0":0.0097,"16.1":0.01455,"16.2":0.00485,"16.3":0.02425,"16.4":0.00485,"16.5":0.01455,"16.6":0.06304,"17.0":0.0097,"17.1":0.0194,"17.2":0.06304,"17.3":0.0194,"17.4":0.04364,"17.5":0.55279,"17.6":0.00485,"18.0":0.00485},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0013,"5.0-5.1":0.00065,"6.0-6.1":0.00389,"7.0-7.1":0.00389,"8.1-8.4":0,"9.0-9.2":0.00324,"9.3":0.01297,"10.0-10.2":0.00259,"10.3":0.0227,"11.0-11.2":0.05966,"11.3-11.4":0.00649,"12.0-12.1":0.00454,"12.2-12.5":0.08366,"13.0-13.1":0.0013,"13.2":0.01362,"13.3":0.00454,"13.4-13.7":0.01946,"14.0-14.4":0.04475,"14.5-14.8":0.05058,"15.0-15.1":0.02529,"15.2-15.3":0.02724,"15.4":0.03113,"15.5":0.03761,"15.6-15.8":0.34501,"16.0":0.06939,"16.1":0.14721,"16.2":0.07393,"16.3":0.12387,"16.4":0.02918,"16.5":0.05253,"16.6-16.7":0.43061,"17.0":0.03891,"17.1":0.06291,"17.2":0.06096,"17.3":0.09144,"17.4":0.22892,"17.5":4.19197,"17.6":0.03243,"18.0":0.0428},P:{"4":0.06411,"20":0.01068,"21":0.03205,"22":0.03205,"23":0.04274,"24":0.06411,"25":0.96164,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 18.0","7.2-7.4":0.10685,"13.0":0.01068,"17.0":0.02137,"19.0":0.02137},I:{"0":0.0462,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":0.14938,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.0097,"9":0.00485,"11":0.02425,_:"6 7 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":45.2078},R:{_:"0"},M:{"0":0.18544},Q:{_:"14.9"},O:{"0":0.03091},H:{"0":0}}; 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..fed6323 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/EE.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00753,"68":0.00753,"78":0.00753,"88":0.09037,"92":0.03766,"103":0.00753,"108":0.00753,"113":0.00753,"115":5.54282,"116":0.00753,"117":0.00753,"119":0.01506,"122":0.01506,"124":0.00753,"125":0.01506,"126":0.11297,"127":0.82088,"128":1.64176,"129":0.00753,_:"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 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 91 93 94 95 96 97 98 99 100 101 102 104 105 106 107 109 110 111 112 114 118 120 121 123 130 131 3.5 3.6"},D:{"51":0.00753,"60":0.00753,"79":0.00753,"83":0.01506,"87":0.01506,"88":0.00753,"89":0.00753,"90":0.03012,"91":0.00753,"93":0.21087,"98":0.00753,"102":0.04519,"103":0.0979,"104":0.00753,"106":0.08284,"107":0.02259,"108":0.15062,"109":3.08018,"110":0.0979,"111":0.04519,"112":0.03012,"113":0.00753,"114":0.05272,"115":0.04519,"116":0.23346,"117":0.01506,"118":0.06778,"119":0.23346,"120":0.12803,"121":0.09037,"122":0.48952,"123":0.34643,"124":0.58742,"125":2.0409,"126":39.01811,"127":4.30773,"128":0.00753,_:"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 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 80 81 84 85 86 92 94 95 96 97 99 100 101 105 129 130"},F:{"83":0.02259,"95":0.0979,"109":0.69285,"110":0.00753,"111":3.99896,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00753,"98":0.00753,"107":0.00753,"108":0.00753,"109":0.01506,"110":0.00753,"114":0.00753,"116":0.01506,"117":0.01506,"118":0.03012,"120":0.03766,"121":0.00753,"122":0.00753,"123":0.01506,"124":0.03012,"125":0.14309,"126":4.88009,"127":0.67026,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 99 100 101 102 103 104 105 106 111 112 113 115 119"},E:{"9":0.00753,"14":0.01506,_:"0 4 5 6 7 8 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00753,"13.1":0.02259,"14.1":0.04519,"15.1":0.00753,"15.2-15.3":0.00753,"15.4":0.01506,"15.5":0.02259,"15.6":0.15062,"16.0":0.01506,"16.1":0.05272,"16.2":0.04519,"16.3":0.03766,"16.4":0.01506,"16.5":0.03766,"16.6":0.23346,"17.0":0.02259,"17.1":0.03012,"17.2":0.06778,"17.3":0.03012,"17.4":0.11297,"17.5":0.91878,"17.6":0.00753,"18.0":0.01506},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00152,"5.0-5.1":0.00076,"6.0-6.1":0.00457,"7.0-7.1":0.00457,"8.1-8.4":0,"9.0-9.2":0.00381,"9.3":0.01524,"10.0-10.2":0.00305,"10.3":0.02668,"11.0-11.2":0.07013,"11.3-11.4":0.00762,"12.0-12.1":0.00534,"12.2-12.5":0.09833,"13.0-13.1":0.00152,"13.2":0.01601,"13.3":0.00534,"13.4-13.7":0.02287,"14.0-14.4":0.05259,"14.5-14.8":0.05945,"15.0-15.1":0.02973,"15.2-15.3":0.03201,"15.4":0.03659,"15.5":0.04421,"15.6-15.8":0.40551,"16.0":0.08156,"16.1":0.17303,"16.2":0.0869,"16.3":0.14559,"16.4":0.0343,"16.5":0.06174,"16.6-16.7":0.50613,"17.0":0.04573,"17.1":0.07394,"17.2":0.07165,"17.3":0.10748,"17.4":0.26907,"17.5":4.92713,"17.6":0.03811,"18.0":0.05031},P:{"4":0.01048,"20":0.02096,"21":0.02096,"22":0.03143,"23":0.03143,"24":0.04191,"25":1.25734,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","19.0":0.01048},I:{"0":0.06646,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00011},K:{"0":0.15314,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.05021,"9":0.00837,"10":0.00837,"11":0.08368,_:"6 7 5.5"},S:{"2.5":0.00247,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":15.07806},R:{_:"0"},M:{"0":0.40261},Q:{"14.9":0.00247},O:{"0":0.01482},H:{"0":0}}; 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..79bd6b7 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/EG.js @@ -0,0 +1 @@ +module.exports={C:{"16":0.00202,"43":0.00202,"47":0.01417,"48":0.00202,"50":0.00202,"52":0.02429,"56":0.00202,"64":0.00202,"65":0.00405,"66":0.00202,"67":0.00202,"72":0.00405,"75":0.00202,"78":0.00405,"83":0.00202,"94":0.00202,"95":0.01417,"102":0.00202,"103":0.00202,"105":0.00202,"106":0.00202,"107":0.00202,"108":0.00405,"109":0.00202,"110":0.00202,"111":0.00202,"112":0.00202,"113":0.00405,"115":0.56065,"116":0.00202,"117":0.00202,"118":0.29348,"120":0.00202,"121":0.00607,"122":0.00202,"123":0.00202,"124":0.01619,"125":0.01417,"126":0.01417,"127":0.32384,"128":0.52826,"129":0.00607,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 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 44 45 46 49 51 53 54 55 57 58 59 60 61 62 63 68 69 70 71 73 74 76 77 79 80 81 82 84 85 86 87 88 89 90 91 92 93 96 97 98 99 100 101 104 114 119 130 131 3.5 3.6"},D:{"26":0.00202,"33":0.00202,"34":0.00405,"38":0.00607,"40":0.00405,"43":0.03441,"47":0.01214,"48":0.00607,"49":0.01012,"50":0.00202,"51":0.00202,"53":0.00202,"55":0.00405,"56":0.00405,"58":0.18418,"63":0.00202,"66":0.00405,"68":0.00202,"69":0.0081,"70":0.01214,"71":0.00607,"72":0.00202,"73":0.00405,"74":0.00607,"75":0.00202,"76":0.00607,"77":0.00405,"78":0.00405,"79":0.08906,"80":0.01012,"81":0.02834,"83":0.0081,"84":0.01012,"85":0.01417,"86":0.01619,"87":0.06477,"88":0.00405,"89":0.00405,"90":0.00405,"91":0.01214,"92":0.00405,"93":0.03238,"94":0.0081,"95":0.00405,"96":0.00405,"97":0.00607,"98":0.02429,"99":0.01619,"100":0.00607,"101":0.00405,"102":0.00607,"103":0.02024,"104":0.01012,"105":0.01012,"106":0.01822,"107":0.02024,"108":0.03846,"109":2.9773,"110":0.01214,"111":0.06882,"112":0.01619,"113":0.01012,"114":0.01417,"115":0.00607,"116":0.03238,"117":0.00607,"118":0.03643,"119":0.02226,"120":0.04453,"121":0.02834,"122":0.06679,"123":0.07691,"124":0.09918,"125":0.17811,"126":8.4421,"127":1.26095,"128":0.0081,_:"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 35 36 37 39 41 42 44 45 46 52 54 57 59 60 61 62 64 65 67 129 130"},F:{"46":0.00202,"56":0.00202,"63":0.00202,"64":0.00607,"68":0.00202,"69":0.00202,"70":0.00202,"71":0.00202,"72":0.00405,"73":0.0081,"74":0.00202,"79":0.01417,"80":0.00202,"81":0.00202,"82":0.01012,"83":0.01417,"84":0.01012,"88":0.00202,"89":0.00202,"90":0.00405,"92":0.00202,"93":0.00202,"94":0.00405,"95":0.0081,"98":0.00202,"99":0.00202,"100":0.00202,"101":0.00607,"102":0.00202,"105":0.01214,"106":0.00607,"107":0.01214,"108":0.00202,"109":0.03238,"110":0.00607,"111":0.01417,_:"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 47 48 49 50 51 52 53 54 55 57 58 60 62 65 66 67 75 76 77 78 85 86 87 91 96 97 103 104 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00202,"13":0.00202,"14":0.00202,"16":0.00202,"18":0.0081,"84":0.00202,"89":0.00405,"90":0.00202,"92":0.02226,"100":0.00405,"106":0.00202,"107":0.00405,"108":0.00607,"109":0.03846,"110":0.00202,"111":0.00202,"113":0.00202,"114":0.00405,"115":0.00202,"117":0.00202,"118":0.00202,"119":0.00202,"120":0.00607,"121":0.00607,"122":0.01012,"123":0.01417,"124":0.01619,"125":0.06072,"126":1.53419,"127":0.24288,_:"15 17 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 112 116"},E:{"9":0.00202,"14":0.00405,_:"0 4 5 6 7 8 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 17.6","5.1":0.01214,"13.1":0.00405,"14.1":0.0081,"15.1":0.00202,"15.2-15.3":0.00202,"15.4":0.00202,"15.5":0.00202,"15.6":0.02834,"16.0":0.00405,"16.1":0.00405,"16.2":0.00202,"16.3":0.00607,"16.4":0.00202,"16.5":0.00607,"16.6":0.02429,"17.0":0.00405,"17.1":0.00405,"17.2":0.00607,"17.3":0.00607,"17.4":0.02024,"17.5":0.12346,"18.0":0.00202},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00126,"5.0-5.1":0.00063,"6.0-6.1":0.00379,"7.0-7.1":0.00379,"8.1-8.4":0,"9.0-9.2":0.00316,"9.3":0.01263,"10.0-10.2":0.00253,"10.3":0.02211,"11.0-11.2":0.05811,"11.3-11.4":0.00632,"12.0-12.1":0.00442,"12.2-12.5":0.08148,"13.0-13.1":0.00126,"13.2":0.01326,"13.3":0.00442,"13.4-13.7":0.01895,"14.0-14.4":0.04358,"14.5-14.8":0.04927,"15.0-15.1":0.02463,"15.2-15.3":0.02653,"15.4":0.03032,"15.5":0.03663,"15.6-15.8":0.33602,"16.0":0.06758,"16.1":0.14338,"16.2":0.072,"16.3":0.12064,"16.4":0.02842,"16.5":0.05116,"16.6-16.7":0.4194,"17.0":0.0379,"17.1":0.06127,"17.2":0.05937,"17.3":0.08906,"17.4":0.22296,"17.5":4.08279,"17.6":0.03158,"18.0":0.04169},P:{"4":0.24934,"20":0.03117,"21":0.05195,"22":0.11428,"23":0.10389,"24":0.10389,"25":1.62072,"5.0-5.4":0.02078,"6.2-6.4":0.02078,"7.2-7.4":0.11428,_:"8.2 10.1","9.2":0.01039,"11.1-11.2":0.03117,"12.0":0.01039,"13.0":0.02078,"14.0":0.02078,"15.0":0.01039,"16.0":0.04156,"17.0":0.04156,"18.0":0.03117,"19.0":0.03117},I:{"0":0.1351,"3":0,"4":0.00001,"2.1":0,"2.2":0.00003,"2.3":0,"4.1":0.00008,"4.2-4.3":0.00005,"4.4":0,"4.4.3-4.4.4":0.00023},K:{"0":0.5742,_:"10 11 12 11.1 11.5 12.1"},A:{"7":0.00219,"8":0.01749,"9":0.00656,"10":0.00437,"11":0.13334,_:"6 5.5"},S:{"2.5":0.01595,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":69.82239},R:{_:"0"},M:{"0":0.19938},Q:{_:"14.9"},O:{"0":0.64598},H:{"0":0}}; 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..2119994 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ER.js @@ -0,0 +1 @@ +module.exports={C:{"33":0.02959,"57":0.00329,"60":0.00658,"65":0.01644,"66":0.01315,"79":0.02302,"89":0.00329,"99":0.00329,"101":0.00329,"102":0.00329,"103":0.00658,"105":0.00329,"109":0.00329,"111":0.00329,"113":0.00329,"115":0.14138,"116":0.00329,"119":0.01315,"126":0.01315,"127":0.48334,"128":0.92393,"129":0.00329,_:"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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 58 59 61 62 63 64 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 90 91 92 93 94 95 96 97 98 100 104 106 107 108 110 112 114 117 118 120 121 122 123 124 125 130 131 3.5 3.6"},D:{"11":0.00329,"46":0.0263,"49":0.00658,"60":0.00658,"64":0.00658,"68":0.00986,"69":0.00329,"71":0.00658,"72":0.0263,"74":12.4122,"81":0.00658,"83":0.00986,"84":0.00658,"86":0.00329,"87":0.04603,"92":0.0822,"95":0.00986,"96":0.03617,"97":0.00658,"98":0.23016,"103":0.04932,"105":0.00329,"106":0.00329,"108":0.01315,"109":4.64594,"112":0.06247,"113":0.20057,"114":0.01973,"115":0.00329,"116":0.00986,"118":0.07234,"119":0.35839,"120":0.59513,"121":0.01315,"122":0.0263,"123":0.1085,"124":0.95023,"125":0.18413,"126":3.30115,"127":0.45703,_:"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 47 48 50 51 52 53 54 55 56 57 58 59 61 62 63 65 66 67 70 73 75 76 77 78 79 80 85 88 89 90 91 93 94 99 100 101 102 104 107 110 111 117 128 129 130"},F:{"36":0.00986,"57":0.04932,"67":0.0263,"78":0.01315,"82":0.27619,"86":0.02959,"95":0.00329,"100":0.03617,"106":0.00329,"109":0.01973,"111":0.50306,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 58 60 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 79 80 81 83 84 85 87 88 89 90 91 92 93 94 96 97 98 99 101 102 103 104 105 107 108 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.02302,"84":0.00329,"89":0.00329,"90":0.00658,"92":0.01973,"96":0.00329,"106":0.00658,"109":0.00986,"111":0.00986,"112":0.04274,"114":0.00986,"117":0.03288,"121":0.00329,"122":0.0822,"124":0.00986,"125":0.00658,"126":1.34479,"127":0.09206,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88 91 93 94 95 97 98 99 100 101 102 103 104 105 107 108 110 113 115 116 118 119 120 123"},E:{_:"0 4 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.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.0"},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00003,"5.0-5.1":0.00002,"6.0-6.1":0.00009,"7.0-7.1":0.00009,"8.1-8.4":0,"9.0-9.2":0.00008,"9.3":0.00031,"10.0-10.2":0.00006,"10.3":0.00054,"11.0-11.2":0.00142,"11.3-11.4":0.00015,"12.0-12.1":0.00011,"12.2-12.5":0.00199,"13.0-13.1":0.00003,"13.2":0.00032,"13.3":0.00011,"13.4-13.7":0.00046,"14.0-14.4":0.00107,"14.5-14.8":0.0012,"15.0-15.1":0.0006,"15.2-15.3":0.00065,"15.4":0.00074,"15.5":0.0009,"15.6-15.8":0.00821,"16.0":0.00165,"16.1":0.0035,"16.2":0.00176,"16.3":0.00295,"16.4":0.00069,"16.5":0.00125,"16.6-16.7":0.01025,"17.0":0.00093,"17.1":0.0015,"17.2":0.00145,"17.3":0.00218,"17.4":0.00545,"17.5":0.09979,"17.6":0.00077,"18.0":0.00102},P:{"4":0.09135,"22":0.0609,"23":0.03045,"24":0.01015,"25":0.1015,_:"20 21 5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 15.0 19.0","6.2-6.4":0.01015,"7.2-7.4":0.0406,"13.0":0.01015,"14.0":0.01015,"16.0":0.0203,"17.0":0.0203,"18.0":0.01015},I:{"0":0.13377,"3":0,"4":0.00001,"2.1":0,"2.2":0.00003,"2.3":0,"4.1":0.00008,"4.2-4.3":0.00005,"4.4":0,"4.4.3-4.4.4":0.00023},K:{"0":2.32364,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{"2.5":0.00671,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":65.35759},R:{_:"0"},M:{"0":0.04027},Q:{_:"14.9"},O:{"0":0.22821},H:{"0":1.67}}; 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..4420d21 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ES.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.003,"48":0.00601,"52":0.02703,"56":0.003,"59":0.00901,"68":0.003,"78":0.02402,"81":0.003,"88":0.003,"91":0.003,"94":0.003,"99":0.003,"100":0.01502,"101":0.003,"102":0.003,"103":0.00601,"106":0.003,"107":0.003,"108":0.003,"109":0.00601,"110":0.003,"113":0.00601,"115":0.31832,"117":0.003,"118":0.00901,"119":0.003,"120":0.003,"121":0.00601,"122":0.003,"123":0.00601,"124":0.01201,"125":0.01201,"126":0.03904,"127":0.69069,"128":1.06006,"129":0.003,_:"2 3 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 53 54 55 57 58 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 82 83 84 85 86 87 89 90 92 93 95 96 97 98 104 105 111 112 114 116 130 131 3.5 3.6"},D:{"46":0.00601,"49":0.02703,"58":0.003,"65":0.003,"66":0.03604,"67":0.003,"70":0.003,"73":0.00601,"75":0.01201,"76":0.003,"78":0.003,"79":0.03003,"80":0.00601,"81":0.00601,"83":0.10511,"84":0.00601,"85":0.003,"86":0.00601,"87":0.03604,"88":0.00901,"89":0.00901,"90":0.01502,"91":0.01802,"92":0.003,"93":0.01502,"94":0.01201,"95":0.00601,"96":0.00601,"97":0.00601,"98":0.003,"99":0.01502,"100":0.00901,"101":0.003,"102":0.00901,"103":0.05405,"104":0.01502,"105":0.00601,"106":0.01802,"107":0.03604,"108":0.02703,"109":1.07507,"110":0.01201,"111":0.01502,"112":0.02703,"113":0.04204,"114":0.05706,"115":0.00901,"116":0.12913,"117":0.01802,"118":0.02102,"119":0.04204,"120":0.05706,"121":0.04805,"122":0.11712,"123":0.10811,"124":0.18619,"125":0.43243,"126":14.24323,"127":1.6997,"128":0.003,_:"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 47 48 50 51 52 53 54 55 56 57 59 60 61 62 63 64 68 69 71 72 74 77 129 130"},F:{"46":0.003,"69":0.003,"71":0.003,"83":0.02102,"95":0.02402,"102":0.003,"109":0.48949,"110":0.01201,"111":0.43243,_:"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 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 72 73 74 75 76 77 78 79 80 81 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00601,"18":0.003,"84":0.003,"90":0.003,"92":0.00901,"97":0.003,"101":0.003,"106":0.003,"107":0.003,"108":0.003,"109":0.04805,"110":0.00601,"111":0.003,"112":0.003,"113":0.003,"114":0.00901,"115":0.003,"116":0.003,"117":0.00601,"118":0.00901,"119":0.00901,"120":0.00901,"121":0.00901,"122":0.02402,"123":0.00601,"124":0.01802,"125":0.07808,"126":2.62763,"127":0.35736,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 89 91 93 94 95 96 98 99 100 102 103 104 105"},E:{"13":0.00901,"14":0.02703,"15":0.003,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.003,"11.1":0.01201,"12.1":0.00901,"13.1":0.06907,"14.1":0.06907,"15.1":0.00901,"15.2-15.3":0.00601,"15.4":0.02102,"15.5":0.02102,"15.6":0.2042,"16.0":0.02402,"16.1":0.02703,"16.2":0.02703,"16.3":0.05405,"16.4":0.01502,"16.5":0.03003,"16.6":0.21021,"17.0":0.01502,"17.1":0.03303,"17.2":0.03904,"17.3":0.03303,"17.4":0.08408,"17.5":1.12913,"17.6":0.00601,"18.0":0.01201},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00255,"5.0-5.1":0.00127,"6.0-6.1":0.00764,"7.0-7.1":0.00764,"8.1-8.4":0,"9.0-9.2":0.00637,"9.3":0.02547,"10.0-10.2":0.00509,"10.3":0.04457,"11.0-11.2":0.11716,"11.3-11.4":0.01273,"12.0-12.1":0.00891,"12.2-12.5":0.16428,"13.0-13.1":0.00255,"13.2":0.02674,"13.3":0.00891,"13.4-13.7":0.0382,"14.0-14.4":0.08787,"14.5-14.8":0.09933,"15.0-15.1":0.04966,"15.2-15.3":0.05349,"15.4":0.06113,"15.5":0.07386,"15.6-15.8":0.67748,"16.0":0.13626,"16.1":0.28907,"16.2":0.14517,"16.3":0.24323,"16.4":0.05731,"16.5":0.10315,"16.6-16.7":0.84557,"17.0":0.07641,"17.1":0.12353,"17.2":0.1197,"17.3":0.17956,"17.4":0.44953,"17.5":8.23161,"17.6":0.06367,"18.0":0.08405},P:{"4":0.05172,"20":0.02069,"21":0.05172,"22":0.0724,"23":0.11378,"24":0.0724,"25":2.38932,_:"5.0-5.4 8.2 9.2 10.1 12.0 15.0","6.2-6.4":0.01034,"7.2-7.4":0.01034,"11.1-11.2":0.01034,"13.0":0.01034,"14.0":0.01034,"16.0":0.02069,"17.0":0.01034,"18.0":0.01034,"19.0":0.02069},I:{"0":0.04184,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00007},K:{"0":0.38484,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00961,"9":0.0032,"10":0.0032,"11":0.08008,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":54.49735},R:{_:"0"},M:{"0":0.48279},Q:{_:"14.9"},O:{"0":0.04198},H:{"0":0}}; 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..7084e37 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ET.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00285,"43":0.00285,"47":0.00285,"52":0.01994,"66":0.00285,"67":0.00285,"68":0.00285,"72":0.0057,"77":0.16234,"84":0.01424,"88":0.00285,"89":0.01424,"91":0.00285,"92":0.00285,"95":0.02278,"97":0.01709,"101":0.00285,"102":0.00285,"103":0.01994,"108":0.00854,"109":0.0057,"110":0.03987,"111":0.00285,"112":0.00854,"113":0.00285,"114":0.00285,"115":0.68637,"116":0.00285,"117":0.00285,"118":0.01994,"120":0.0057,"121":0.00854,"122":0.0057,"123":0.0057,"124":0.03987,"125":0.04557,"126":0.03418,"127":0.78035,"128":1.23603,"129":0.05126,_:"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 65 69 70 71 73 74 75 76 78 79 80 81 82 83 85 86 87 90 93 94 96 98 99 100 104 105 106 107 119 130 131 3.5 3.6"},D:{"11":0.00854,"33":0.00285,"37":0.00285,"38":0.00285,"40":0.00285,"42":0.00285,"43":0.01139,"46":0.00285,"47":0.00285,"49":0.00285,"50":0.00854,"55":0.00285,"56":0.01139,"57":0.00285,"58":0.00285,"63":0.00285,"64":0.00285,"65":0.0057,"66":0.00285,"67":0.00285,"68":0.01139,"69":0.01139,"70":0.00854,"71":0.00285,"72":0.00285,"73":0.01139,"74":0.00285,"75":0.03133,"76":0.03702,"77":0.0057,"79":0.1367,"80":0.01994,"81":0.01424,"83":0.02563,"84":0.01139,"85":0.0057,"86":0.01709,"87":0.08259,"88":0.02563,"89":0.00285,"90":0.02278,"91":0.0057,"92":0.01424,"93":0.03987,"94":0.0057,"95":0.02848,"96":0.0057,"97":0.0057,"98":0.1367,"99":0.00854,"100":0.00285,"102":0.02848,"103":0.0712,"104":0.0057,"105":0.02848,"106":0.02563,"107":0.07405,"108":0.01994,"109":2.27555,"110":0.00285,"111":0.05696,"112":0.00854,"113":0.00285,"114":0.02563,"115":0.09114,"116":0.02848,"117":0.02278,"118":0.02563,"119":0.06835,"120":0.05411,"121":0.03702,"122":0.04272,"123":0.09683,"124":0.25347,"125":0.27341,"126":11.09296,"127":1.42115,"128":0.00854,_:"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 34 35 36 39 41 44 45 48 51 52 53 54 59 60 61 62 78 101 129 130"},F:{"46":0.00854,"58":0.0057,"79":0.02563,"82":0.00285,"83":0.02278,"84":0.00285,"85":0.00285,"87":0.00285,"95":0.07405,"99":0.00285,"107":0.00285,"108":0.0057,"109":0.05696,"110":0.01994,"111":0.79459,_:"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 47 48 49 50 51 52 53 54 55 56 57 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 86 88 89 90 91 92 93 94 96 97 98 100 101 102 103 104 105 106 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.01424,"13":0.00285,"14":0.00854,"15":0.03987,"16":0.01139,"17":0.0057,"18":0.06835,"84":0.00285,"89":0.00285,"90":0.0057,"92":0.03987,"100":0.00854,"107":0.00285,"109":0.03702,"110":0.00285,"111":0.00285,"112":0.00285,"113":0.00285,"114":0.0057,"115":0.0057,"116":0.00285,"117":0.00285,"118":0.00285,"119":0.0057,"120":0.00854,"121":0.00854,"122":0.01709,"123":0.04557,"124":0.02848,"125":0.0712,"126":2.46352,"127":0.29619,_:"79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 108"},E:{"7":0.0057,_:"0 4 5 6 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 15.4 16.0 16.2 16.4 17.0 17.6 18.0","12.1":0.00285,"13.1":0.0057,"14.1":0.0057,"15.5":0.00285,"15.6":0.00854,"16.1":0.00285,"16.3":0.00285,"16.5":0.01139,"16.6":0.04557,"17.1":0.00285,"17.2":0.00285,"17.3":0.00285,"17.4":0.00285,"17.5":0.04272},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00041,"5.0-5.1":0.0002,"6.0-6.1":0.00123,"7.0-7.1":0.00123,"8.1-8.4":0,"9.0-9.2":0.00102,"9.3":0.00409,"10.0-10.2":0.00082,"10.3":0.00716,"11.0-11.2":0.01882,"11.3-11.4":0.00205,"12.0-12.1":0.00143,"12.2-12.5":0.02639,"13.0-13.1":0.00041,"13.2":0.0043,"13.3":0.00143,"13.4-13.7":0.00614,"14.0-14.4":0.01411,"14.5-14.8":0.01595,"15.0-15.1":0.00798,"15.2-15.3":0.00859,"15.4":0.00982,"15.5":0.01186,"15.6-15.8":0.10882,"16.0":0.02189,"16.1":0.04643,"16.2":0.02332,"16.3":0.03907,"16.4":0.0092,"16.5":0.01657,"16.6-16.7":0.13582,"17.0":0.01227,"17.1":0.01984,"17.2":0.01923,"17.3":0.02884,"17.4":0.07221,"17.5":1.32219,"17.6":0.01023,"18.0":0.0135},P:{"4":0.30606,"20":0.0204,"21":0.04081,"22":0.15303,"23":0.11222,"24":0.08162,"25":0.66314,"5.0-5.4":0.03061,"6.2-6.4":0.03061,"7.2-7.4":0.21424,_:"8.2 10.1 15.0","9.2":0.0102,"11.1-11.2":0.0102,"12.0":0.0102,"13.0":0.0102,"14.0":0.0102,"16.0":0.0204,"17.0":0.03061,"18.0":0.0204,"19.0":0.07141},I:{"0":0.11403,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00007,"4.2-4.3":0.00005,"4.4":0,"4.4.3-4.4.4":0.00019},K:{"0":2.79797,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.02848,_:"6 7 8 9 10 5.5"},S:{"2.5":0.04291,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":64.64013},R:{_:"0"},M:{"0":0.11443},Q:{"14.9":0.03576},O:{"0":0.33614},H:{"0":1.2}}; 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..1944758 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/FI.js @@ -0,0 +1 @@ +module.exports={C:{"50":0.63901,"52":0.42148,"53":1.11487,"56":0.673,"60":0.0068,"68":0.0068,"75":0.0068,"78":0.0068,"88":0.0068,"91":0.0068,"94":0.0068,"95":0.0068,"100":0.0068,"101":0.0068,"102":0.04759,"103":0.04079,"105":0.0068,"106":0.0068,"107":0.0068,"108":0.0068,"109":0.0136,"110":0.0136,"111":0.0068,"112":0.0068,"113":0.02039,"114":0.02039,"115":0.3535,"116":0.03399,"117":0.88374,"118":0.61862,"119":0.04079,"120":0.0068,"121":0.0068,"122":0.0136,"123":0.0068,"124":0.0068,"125":0.02039,"126":0.03399,"127":0.82256,"128":1.57714,_:"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 51 54 55 57 58 59 61 62 63 64 65 66 67 69 70 71 72 73 74 76 77 79 80 81 82 83 84 85 86 87 89 90 92 93 96 97 98 99 104 129 130 131 3.5 3.6"},D:{"38":0.0068,"41":0.0068,"42":0.0068,"49":0.0068,"56":0.0068,"66":0.0136,"67":0.0068,"70":0.0068,"71":0.0136,"74":0.0068,"75":0.02039,"76":0.0068,"77":0.0068,"78":0.0136,"79":0.08158,"80":0.0136,"81":0.0136,"83":0.0068,"84":0.0068,"85":0.0136,"86":0.0068,"87":0.06118,"88":0.0068,"89":0.04079,"90":0.0068,"91":0.50305,"92":0.0068,"93":0.02039,"94":0.02719,"95":0.0068,"96":0.0136,"97":0.0068,"98":0.0068,"99":0.17675,"100":0.0136,"101":0.04079,"102":0.0136,"103":0.17675,"104":0.06118,"105":0.06118,"106":0.04079,"107":0.13596,"108":0.10197,"109":1.07408,"110":0.08837,"111":0.09517,"112":0.12236,"113":0.20394,"114":0.81576,"115":0.46226,"116":6.55327,"117":9.44922,"118":0.16315,"119":0.16315,"120":0.22433,"121":0.24473,"122":0.14956,"123":0.15635,"124":1.89664,"125":6.39012,"126":18.37499,"127":2.41329,"128":0.0068,_:"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 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 68 69 72 73 129 130"},F:{"83":0.0136,"89":0.0068,"92":0.0068,"95":0.0136,"109":0.36029,"110":0.0136,"111":0.3399,_:"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 84 85 86 87 88 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0068,"92":0.0068,"99":0.0068,"103":0.0068,"104":0.0068,"105":0.0068,"107":0.0068,"108":0.0136,"109":0.02719,"110":0.0136,"111":0.0068,"112":0.0068,"114":0.0068,"115":0.02719,"116":0.06798,"117":1.18285,"118":0.02719,"119":0.0068,"120":0.0068,"121":0.0136,"122":0.0068,"123":0.0068,"124":0.0136,"125":0.06118,"126":2.99792,"127":0.3263,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 100 101 102 106 113"},E:{"14":0.0068,"15":0.0068,_:"0 4 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","13.1":0.0136,"14.1":0.04079,"15.1":0.0136,"15.2-15.3":0.0136,"15.4":0.04759,"15.5":0.0136,"15.6":0.17675,"16.0":0.03399,"16.1":0.08837,"16.2":0.02719,"16.3":0.09517,"16.4":0.12916,"16.5":0.25832,"16.6":0.55744,"17.0":0.14276,"17.1":0.03399,"17.2":0.02039,"17.3":0.02719,"17.4":0.06798,"17.5":1.0061,"17.6":0.0068,"18.0":0.0068},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00124,"5.0-5.1":0.00062,"6.0-6.1":0.00372,"7.0-7.1":0.00372,"8.1-8.4":0,"9.0-9.2":0.0031,"9.3":0.0124,"10.0-10.2":0.00248,"10.3":0.02171,"11.0-11.2":0.05706,"11.3-11.4":0.0062,"12.0-12.1":0.00434,"12.2-12.5":0.08001,"13.0-13.1":0.00124,"13.2":0.01302,"13.3":0.00434,"13.4-13.7":0.01861,"14.0-14.4":0.0428,"14.5-14.8":0.04838,"15.0-15.1":0.02419,"15.2-15.3":0.02605,"15.4":0.02977,"15.5":0.03597,"15.6-15.8":0.32996,"16.0":0.06636,"16.1":0.14079,"16.2":0.07071,"16.3":0.11846,"16.4":0.02791,"16.5":0.05024,"16.6-16.7":0.41183,"17.0":0.03721,"17.1":0.06016,"17.2":0.0583,"17.3":0.08745,"17.4":0.21894,"17.5":4.00915,"17.6":0.03101,"18.0":0.04094},P:{"4":0.01061,"20":0.02122,"21":0.06366,"22":0.1167,"23":0.12731,"24":0.16975,"25":1.4959,_:"5.0-5.4 6.2-6.4 8.2 10.1 12.0 15.0","7.2-7.4":0.02122,"9.2":0.01061,"11.1-11.2":0.01061,"13.0":0.01061,"14.0":0.03183,"16.0":0.01061,"17.0":0.03183,"18.0":0.02122,"19.0":0.02122},I:{"0":0.04467,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":0.50271,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.03323,"9":0.00831,"10":0.00831,"11":0.02493,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":22.40823},R:{_:"0"},M:{"0":0.67242},Q:{"14.9":0.0032},O:{"0":0.09286},H:{"0":0}}; 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..52ad128 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/FJ.js @@ -0,0 +1 @@ +module.exports={C:{"78":0.06274,"85":0.00314,"87":0.00314,"105":0.00627,"115":0.25096,"121":0.00627,"123":0.06274,"124":0.00627,"125":0.00941,"126":0.01569,"127":1.24539,"128":1.11364,_:"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 79 80 81 82 83 84 86 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 129 130 131 3.5 3.6"},D:{"47":0.00314,"52":0.00314,"53":0.00314,"65":0.00314,"68":0.00314,"69":0.00314,"70":0.01569,"73":0.02196,"74":0.00314,"76":0.00314,"77":0.00314,"78":0.00314,"79":0.00941,"81":0.04706,"83":0.00627,"84":0.01255,"86":0.00941,"87":0.04706,"88":0.24155,"89":0.04706,"91":0.02196,"92":0.01882,"93":0.00627,"94":0.02196,"95":0.04706,"97":0.00314,"98":0.00314,"99":0.00314,"100":0.00314,"102":0.00941,"103":0.06901,"104":0.00314,"105":0.13803,"107":0.03764,"108":0.00941,"109":0.50506,"111":0.02823,"113":0.00314,"114":0.01882,"115":0.01255,"116":0.10038,"117":0.01569,"118":0.01255,"119":0.01569,"120":0.12548,"121":0.04392,"122":0.03451,"123":0.07843,"124":0.15371,"125":0.21959,"126":12.32527,"127":1.63438,_:"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 48 49 50 51 54 55 56 57 58 59 60 61 62 63 64 66 67 71 72 75 80 85 90 96 101 106 110 112 128 129 130"},F:{"46":0.00314,"75":0.00314,"83":0.10352,"92":0.00314,"95":0.00941,"102":0.00314,"109":0.06588,"110":0.00627,"111":0.10666,_:"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 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 76 77 78 79 80 81 82 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00941,"18":0.03451,"84":0.00627,"90":0.00627,"92":0.01569,"100":0.00314,"105":0.00314,"109":0.02196,"111":0.00627,"112":0.00314,"114":0.01569,"115":0.00941,"116":0.00941,"117":0.00314,"118":0.00314,"119":0.00941,"120":0.01255,"121":0.01255,"122":0.03137,"123":0.04392,"124":0.09097,"125":0.1694,"126":4.63962,"127":0.57407,_:"12 13 14 16 17 79 80 81 83 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 106 107 108 110 113"},E:{"14":0.00314,_:"0 4 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 18.0","12.1":0.00314,"13.1":0.01255,"14.1":0.02196,"15.1":0.00627,"15.2-15.3":0.00314,"15.4":0.00314,"15.5":0.00627,"15.6":0.13803,"16.0":0.01255,"16.1":0.11293,"16.2":0.03137,"16.3":0.02823,"16.4":0.00941,"16.5":0.01882,"16.6":0.36076,"17.0":0.01255,"17.1":0.0251,"17.2":0.01569,"17.3":0.04392,"17.4":0.44859,"17.5":1.56536,"17.6":0.00941},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00197,"5.0-5.1":0.00098,"6.0-6.1":0.00591,"7.0-7.1":0.00591,"8.1-8.4":0,"9.0-9.2":0.00492,"9.3":0.0197,"10.0-10.2":0.00394,"10.3":0.03447,"11.0-11.2":0.09061,"11.3-11.4":0.00985,"12.0-12.1":0.00689,"12.2-12.5":0.12704,"13.0-13.1":0.00197,"13.2":0.02068,"13.3":0.00689,"13.4-13.7":0.02955,"14.0-14.4":0.06795,"14.5-14.8":0.07682,"15.0-15.1":0.03841,"15.2-15.3":0.04136,"15.4":0.04727,"15.5":0.05712,"15.6-15.8":0.52394,"16.0":0.10538,"16.1":0.22356,"16.2":0.11227,"16.3":0.1881,"16.4":0.04432,"16.5":0.07977,"16.6-16.7":0.65393,"17.0":0.05909,"17.1":0.09553,"17.2":0.09258,"17.3":0.13886,"17.4":0.34765,"17.5":6.36601,"17.6":0.04924,"18.0":0.065},P:{"4":0.17758,"20":0.03134,"21":0.17758,"22":0.40739,"23":0.33427,"24":0.49096,"25":5.05587,_:"5.0-5.4 8.2 10.1 12.0","6.2-6.4":0.02089,"7.2-7.4":0.37606,"9.2":0.04178,"11.1-11.2":0.03134,"13.0":0.04178,"14.0":0.03134,"15.0":0.01045,"16.0":0.02089,"17.0":0.02089,"18.0":0.03134,"19.0":0.12535},I:{"0":0.03419,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.58336,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.00392,"11":0.01176,_:"6 7 8 9 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":52.07312},R:{_:"0"},M:{"0":0.3706},Q:{"14.9":0.02059},O:{"0":0.61767},H:{"0":0}}; 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..c6a34e5 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/FK.js @@ -0,0 +1 @@ +module.exports={C:{"94":0.04922,"100":0.16877,"108":0.988,"109":0.02461,"115":2.2643,"116":0.07384,"117":0.09493,"118":4.55322,"119":0.16877,"126":0.14416,"127":0.48169,"128":1.66307,_:"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 95 96 97 98 99 101 102 103 104 105 106 107 110 111 112 113 114 120 121 122 123 124 125 129 130 131 3.5 3.6"},D:{"103":0.07384,"109":1.01261,"119":0.02461,"120":0.02461,"124":0.48169,"125":0.09493,"126":9.53539,"127":0.2637,_:"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 104 105 106 107 108 110 111 112 113 114 115 116 117 118 121 122 123 128 129 130"},F:{"109":0.02461,"111":0.02461,_:"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 99 100 101 102 103 104 105 106 107 108 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"84":0.02461,"92":0.33754,"109":0.14416,"114":0.69968,"115":0.02461,"117":0.43247,"118":0.43247,"120":0.09493,"121":0.04922,"123":0.09493,"124":0.04922,"125":0.84384,"126":2.50339,"127":0.02461,_:"12 13 14 15 16 17 18 79 80 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 116 119 122"},E:{_:"0 4 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 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 16.5 17.0 17.1 17.2 17.3 17.4 17.6 18.0","14.1":0.84384,"15.6":0.55553,"16.3":0.04922,"16.6":0.33754,"17.5":0.93877},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00207,"5.0-5.1":0.00103,"6.0-6.1":0.00621,"7.0-7.1":0.00621,"8.1-8.4":0,"9.0-9.2":0.00517,"9.3":0.02069,"10.0-10.2":0.00414,"10.3":0.0362,"11.0-11.2":0.09516,"11.3-11.4":0.01034,"12.0-12.1":0.00724,"12.2-12.5":0.13343,"13.0-13.1":0.00207,"13.2":0.02172,"13.3":0.00724,"13.4-13.7":0.03103,"14.0-14.4":0.07137,"14.5-14.8":0.08068,"15.0-15.1":0.04034,"15.2-15.3":0.04344,"15.4":0.04965,"15.5":0.05999,"15.6-15.8":0.55028,"16.0":0.11068,"16.1":0.2348,"16.2":0.11792,"16.3":0.19756,"16.4":0.04655,"16.5":0.08378,"16.6-16.7":0.68681,"17.0":0.06206,"17.1":0.10033,"17.2":0.09723,"17.3":0.14584,"17.4":0.36513,"17.5":6.68609,"17.6":0.05172,"18.0":0.06827},P:{"22":0.17614,"23":0.35229,"25":4.74551,_:"4 20 21 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 17.0 18.0 19.0","14.0":1.34698},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":0.05188,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":49.52169},R:{_:"0"},M:{"0":0.37613},Q:{_:"14.9"},O:{"0":0.02594},H:{"0":0}}; 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..30c71a9 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/FM.js @@ -0,0 +1 @@ +module.exports={C:{"78":0.01867,"115":0.04853,"124":0.04853,"125":0.04106,"127":0.69061,"128":0.57115,_:"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 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 112 113 114 116 117 118 119 120 121 122 123 126 129 130 131 3.5 3.6"},D:{"89":0.04106,"90":0.02986,"91":0.0112,"92":0.0112,"93":3.98684,"103":0.26878,"104":0.04106,"106":0.0112,"109":2.20247,"113":0.02986,"114":0.0112,"116":0.0112,"118":0.17918,"122":0.01867,"123":0.01867,"125":0.17918,"126":13.31561,"127":2.37419,_:"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 94 95 96 97 98 99 100 101 102 105 107 108 110 111 112 115 117 119 120 121 124 128 129 130"},F:{"83":0.0112,"109":0.07093,"111":0.07093,_:"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 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 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"84":0.0112,"100":0.08959,"109":0.04106,"116":0.01867,"117":0.01867,"120":0.0112,"121":0.13066,"122":0.04853,"123":0.01867,"124":0.22025,"125":0.13066,"126":5.90934,"127":0.57115,_:"12 13 14 15 16 17 18 79 80 81 83 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 115 118 119"},E:{"14":0.05973,_:"0 4 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 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.4 17.0 17.2 18.0","12.1":0.0112,"13.1":0.0112,"14.1":0.14185,"16.2":0.04853,"16.3":0.26131,"16.5":0.08959,"16.6":0.05973,"17.1":0.0112,"17.3":0.07839,"17.4":0.01867,"17.5":1.63132,"17.6":0.0112},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0023,"5.0-5.1":0.00115,"6.0-6.1":0.00691,"7.0-7.1":0.00691,"8.1-8.4":0,"9.0-9.2":0.00576,"9.3":0.02305,"10.0-10.2":0.00461,"10.3":0.04033,"11.0-11.2":0.10601,"11.3-11.4":0.01152,"12.0-12.1":0.00807,"12.2-12.5":0.14865,"13.0-13.1":0.0023,"13.2":0.0242,"13.3":0.00807,"13.4-13.7":0.03457,"14.0-14.4":0.07951,"14.5-14.8":0.08988,"15.0-15.1":0.04494,"15.2-15.3":0.0484,"15.4":0.05531,"15.5":0.06683,"15.6-15.8":0.61303,"16.0":0.1233,"16.1":0.26158,"16.2":0.13136,"16.3":0.22009,"16.4":0.05185,"16.5":0.09334,"16.6-16.7":0.76514,"17.0":0.06914,"17.1":0.11177,"17.2":0.10832,"17.3":0.16248,"17.4":0.40677,"17.5":7.44858,"17.6":0.05762,"18.0":0.07605},P:{"4":0.19268,"22":0.10201,"23":0.02267,"24":0.01133,"25":0.95206,_:"20 21 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 17.0 18.0 19.0","7.2-7.4":0.02267,"11.1-11.2":0.12467,"16.0":0.01133},I:{"0":0.01249,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.37596,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0112,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":51.95306},R:{_:"0"},M:{"0":0.12532},Q:{_:"14.9"},O:{"0":0.18171},H:{"0":0}}; 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..d1e3edc --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/FO.js @@ -0,0 +1 @@ +module.exports={C:{"68":0.00404,"87":0.00404,"100":0.00404,"106":0.00404,"107":0.00404,"108":0.00807,"109":0.00404,"110":0.00807,"111":0.29859,"113":0.00404,"115":2.86485,"125":0.00807,"126":0.01211,"127":0.82314,"128":1.86821,"129":0.00404,_:"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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103 104 105 112 114 116 117 118 119 120 121 122 123 124 130 131 3.5 3.6"},D:{"26":0.00807,"49":0.02825,"76":0.05246,"79":0.05246,"86":0.19368,"87":0.00404,"94":0.00404,"98":0.00404,"103":0.01614,"104":0.00404,"105":0.00807,"106":0.6335,"107":0.1614,"108":0.4842,"109":1.10559,"110":0.01614,"111":0.0686,"112":0.02421,"116":0.15333,"117":0.01614,"119":0.00404,"120":0.04035,"122":0.14123,"123":0.45596,"124":0.09281,"125":0.35508,"126":9.82926,"127":1.01682,_:"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 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 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 80 81 83 84 85 88 89 90 91 92 93 95 96 97 99 100 101 102 113 114 115 118 121 128 129 130"},F:{"91":0.00404,"94":0.33087,"109":0.3228,"111":0.35508,_:"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 92 93 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"101":0.00404,"102":0.00404,"103":0.00404,"105":0.00404,"107":0.27438,"108":0.00807,"109":0.0807,"111":0.00404,"117":0.28649,"119":0.12105,"120":0.00404,"123":0.00404,"124":0.00807,"125":0.10895,"126":3.95027,"127":0.28245,_:"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 104 106 110 112 113 114 115 116 118 121 122"},E:{"14":0.08877,_:"0 4 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","12.1":0.00404,"13.1":0.00807,"14.1":0.09684,"15.1":0.00807,"15.2-15.3":0.01211,"15.4":0.06456,"15.5":0.10895,"15.6":1.01682,"16.0":0.04035,"16.1":0.10895,"16.2":0.11702,"16.3":0.27842,"16.4":0.10491,"16.5":0.14526,"16.6":1.99733,"17.0":0.00807,"17.1":0.13316,"17.2":0.12105,"17.3":0.17351,"17.4":0.79086,"17.5":7.19037,"17.6":0.01211,"18.0":0.04439},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0087,"5.0-5.1":0.00435,"6.0-6.1":0.0261,"7.0-7.1":0.0261,"8.1-8.4":0,"9.0-9.2":0.02175,"9.3":0.08699,"10.0-10.2":0.0174,"10.3":0.15224,"11.0-11.2":0.40017,"11.3-11.4":0.0435,"12.0-12.1":0.03045,"12.2-12.5":0.56111,"13.0-13.1":0.0087,"13.2":0.09134,"13.3":0.03045,"13.4-13.7":0.13049,"14.0-14.4":0.30013,"14.5-14.8":0.33927,"15.0-15.1":0.16964,"15.2-15.3":0.18269,"15.4":0.20878,"15.5":0.25228,"15.6-15.8":2.31403,"16.0":0.46542,"16.1":0.98738,"16.2":0.49586,"16.3":0.83079,"16.4":0.19574,"16.5":0.35232,"16.6-16.7":2.88819,"17.0":0.26098,"17.1":0.42192,"17.2":0.40887,"17.3":0.6133,"17.4":1.53544,"17.5":28.11632,"17.6":0.21748,"18.0":0.28708},P:{"4":0.02062,"20":0.01031,"22":0.01031,"24":0.01031,"25":2.47497,_:"21 23 5.0-5.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0","6.2-6.4":0.01031,"13.0":0.02062,"18.0":0.01031,"19.0":0.01031},I:{"0":0.04755,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":0.69194,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.10895,"9":0.00807,"10":0.00404,"11":0.07667,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":11.89087},R:{_:"0"},M:{"0":0.25053},Q:{"14.9":0.00597},O:{"0":0.00597},H:{"0":0}}; 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..d7417ed --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/FR.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00814,"51":0.00407,"52":0.03256,"54":0.03256,"59":0.04477,"68":0.00814,"72":0.00407,"75":0.02442,"78":0.05698,"82":0.00407,"83":0.00407,"88":0.00814,"91":0.01628,"93":0.01221,"94":0.01628,"96":0.01628,"101":0.00407,"102":0.02442,"103":0.02442,"104":0.00407,"105":0.00814,"106":0.00814,"107":0.01221,"108":0.00814,"109":0.00814,"110":0.00814,"111":0.00814,"112":0.00407,"113":0.01628,"114":0.00407,"115":0.80993,"116":0.00407,"118":0.00407,"119":0.00407,"120":0.00407,"121":0.02035,"122":0.00814,"123":0.17094,"124":0.02035,"125":0.04884,"126":0.06512,"127":1.55474,"128":2.53154,"129":0.00814,_:"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 53 55 56 57 58 60 61 62 63 64 65 66 67 69 70 71 73 74 76 77 79 80 81 84 85 86 87 89 90 92 95 97 98 99 100 117 130 131 3.5 3.6"},D:{"41":0.00407,"48":0.00407,"49":0.08954,"52":0.05291,"56":0.00814,"58":0.00407,"65":0.00407,"66":0.17908,"67":0.00407,"70":0.00407,"71":0.02035,"72":0.00407,"73":0.00407,"74":0.00407,"76":0.00814,"77":0.00407,"78":0.00407,"79":0.04884,"80":0.00814,"81":0.02035,"83":0.00407,"84":0.00407,"85":0.02035,"86":0.01221,"87":0.06105,"88":0.01628,"89":0.01221,"90":0.01221,"91":0.02035,"92":0.00407,"93":0.00814,"94":0.34595,"95":0.02035,"96":0.00814,"97":0.00407,"98":0.00814,"99":0.01221,"100":0.00814,"101":0.00407,"102":0.07326,"103":0.08954,"104":0.02442,"105":0.03256,"106":0.06512,"107":0.0814,"108":0.09361,"109":1.42043,"110":0.05291,"111":0.0814,"112":0.06919,"113":0.09768,"114":0.1221,"115":0.02035,"116":0.18722,"117":0.01628,"118":0.05698,"119":0.03663,"120":0.0814,"121":0.08547,"122":0.10175,"123":0.21978,"124":0.22792,"125":0.91168,"126":15.01016,"127":1.70126,"128":0.00814,_:"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 42 43 44 45 46 47 50 51 53 54 55 57 59 60 61 62 63 64 68 69 75 129 130"},F:{"46":0.00407,"83":0.03256,"91":0.00407,"92":0.00407,"93":0.00407,"94":0.00407,"95":0.04884,"102":0.00407,"107":0.00407,"109":0.36223,"110":0.01628,"111":0.45584,_:"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 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 84 85 86 87 88 89 90 96 97 98 99 100 101 103 104 105 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.02442,"18":0.00407,"92":0.00814,"103":0.00407,"105":0.00407,"106":0.00407,"107":0.01221,"108":0.01221,"109":0.12617,"110":0.01221,"111":0.00814,"112":0.00814,"113":0.00407,"114":0.05291,"115":0.00407,"116":0.00814,"117":0.00407,"118":0.00407,"119":0.01221,"120":0.03663,"121":0.02035,"122":0.15059,"123":0.01628,"124":0.05698,"125":0.11396,"126":5.06308,"127":0.62678,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 104"},E:{"13":0.00407,"14":0.02849,"15":0.00814,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00407,"11.1":0.04477,"12.1":0.04477,"13.1":0.09768,"14.1":0.20757,"15.1":0.01628,"15.2-15.3":0.01221,"15.4":0.02035,"15.5":0.02442,"15.6":0.29711,"16.0":0.04477,"16.1":0.03663,"16.2":0.03256,"16.3":0.06919,"16.4":0.02442,"16.5":0.04477,"16.6":0.29711,"17.0":0.02442,"17.1":0.04884,"17.2":0.05698,"17.3":0.06105,"17.4":0.1628,"17.5":1.44892,"17.6":0.01221,"18.0":0.00814},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0026,"5.0-5.1":0.0013,"6.0-6.1":0.00781,"7.0-7.1":0.00781,"8.1-8.4":0,"9.0-9.2":0.00651,"9.3":0.02603,"10.0-10.2":0.00521,"10.3":0.04556,"11.0-11.2":0.11975,"11.3-11.4":0.01302,"12.0-12.1":0.00911,"12.2-12.5":0.16791,"13.0-13.1":0.0026,"13.2":0.02733,"13.3":0.00911,"13.4-13.7":0.03905,"14.0-14.4":0.08981,"14.5-14.8":0.10153,"15.0-15.1":0.05076,"15.2-15.3":0.05467,"15.4":0.06248,"15.5":0.07549,"15.6-15.8":0.69247,"16.0":0.13927,"16.1":0.29547,"16.2":0.14839,"16.3":0.24861,"16.4":0.05857,"16.5":0.10543,"16.6-16.7":0.86429,"17.0":0.0781,"17.1":0.12626,"17.2":0.12235,"17.3":0.18353,"17.4":0.45948,"17.5":8.41377,"17.6":0.06508,"18.0":0.08591},P:{"4":0.05307,"20":0.03184,"21":0.06369,"22":0.08492,"23":0.08492,"24":0.0743,"25":2.18663,_:"5.0-5.4 6.2-6.4 8.2 10.1 12.0","7.2-7.4":0.01061,"9.2":0.01061,"11.1-11.2":0.02123,"13.0":0.02123,"14.0":0.01061,"15.0":0.01061,"16.0":0.02123,"17.0":0.01061,"18.0":0.01061,"19.0":0.03184},I:{"0":0.12409,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00007,"4.2-4.3":0.00005,"4.4":0,"4.4.3-4.4.4":0.00021},K:{"0":0.84799,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.02326,"9":0.01395,"10":0.00465,"11":0.08838,_:"6 7 5.5"},S:{"2.5":0.00593,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":41.68423},R:{_:"0"},M:{"0":0.67009},Q:{"14.9":0.01186},O:{"0":0.72346},H:{"0":0}}; 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..df847f4 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GA.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.00676,"48":0.00225,"52":0.01577,"60":0.00901,"72":0.00225,"78":0.00225,"91":0.01802,"94":0.00225,"106":0.00225,"107":0.01577,"112":0.00676,"113":0.00676,"115":0.13067,"122":0.00225,"123":0.00225,"125":0.00225,"126":0.01577,"127":0.40329,"128":0.63535,_:"2 3 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 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 95 96 97 98 99 100 101 102 103 104 105 108 109 110 111 114 116 117 118 119 120 121 124 129 130 131 3.5 3.6"},D:{"11":0.01802,"38":0.00451,"39":0.00225,"47":0.00225,"52":0.00225,"56":0.00225,"58":0.00451,"62":0.00676,"64":0.00225,"65":0.00451,"66":0.01352,"68":0.00451,"69":0.02028,"70":0.00451,"73":0.02028,"74":0.00451,"75":0.03154,"76":0.10139,"79":0.0383,"80":0.00225,"81":0.01577,"83":0.06308,"84":0.02929,"86":0.01352,"87":0.03605,"88":0.00901,"89":0.02478,"90":0.01802,"91":0.00451,"93":0.00451,"94":0.00225,"95":0.02028,"98":0.06759,"99":0.00225,"100":0.00676,"103":0.0766,"105":0.00676,"106":0.00225,"107":0.00225,"108":0.00225,"109":1.77536,"110":0.0338,"111":0.00225,"112":0.01127,"113":0.00451,"114":0.02478,"115":0.00451,"116":0.02704,"117":0.00225,"118":0.00225,"119":0.15771,"120":0.03605,"121":0.02929,"122":0.01352,"123":0.02704,"124":0.10139,"125":0.10814,"126":7.71653,"127":1.3901,_:"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 40 41 42 43 44 45 46 48 49 50 51 53 54 55 57 59 60 61 63 67 71 72 77 78 85 92 96 97 101 102 104 128 129 130"},F:{"46":0.00451,"77":0.00225,"83":0.00676,"85":0.00225,"95":0.01802,"108":0.00225,"109":0.06083,"110":0.05182,"111":0.69392,_:"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 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 78 79 80 81 82 84 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"13":0.00225,"15":0.00676,"17":0.06083,"18":0.00451,"84":0.00225,"89":0.00225,"92":0.0338,"103":0.00225,"109":0.04281,"115":0.01127,"116":0.00225,"119":0.00225,"120":0.00225,"121":0.00451,"122":0.01352,"123":0.00451,"124":0.01577,"125":0.08111,"126":3.0776,"127":0.55649,_:"12 14 16 79 80 81 83 85 86 87 88 90 91 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 110 111 112 113 114 117 118"},E:{_:"0 4 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 12.1 16.4 17.6","11.1":0.00225,"13.1":0.00676,"14.1":0.02028,"15.1":0.00225,"15.2-15.3":0.00676,"15.4":0.00451,"15.5":0.00225,"15.6":0.02478,"16.0":0.02028,"16.1":0.00225,"16.2":0.0338,"16.3":0.00225,"16.5":0.00225,"16.6":0.04506,"17.0":0.00225,"17.1":0.00451,"17.2":0.00676,"17.3":0.00225,"17.4":0.01352,"17.5":0.13969,"18.0":0.00225},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00242,"5.0-5.1":0.00121,"6.0-6.1":0.00727,"7.0-7.1":0.00727,"8.1-8.4":0,"9.0-9.2":0.00605,"9.3":0.02422,"10.0-10.2":0.00484,"10.3":0.04238,"11.0-11.2":0.1114,"11.3-11.4":0.01211,"12.0-12.1":0.00848,"12.2-12.5":0.1562,"13.0-13.1":0.00242,"13.2":0.02543,"13.3":0.00848,"13.4-13.7":0.03633,"14.0-14.4":0.08355,"14.5-14.8":0.09445,"15.0-15.1":0.04722,"15.2-15.3":0.05086,"15.4":0.05812,"15.5":0.07023,"15.6-15.8":0.64418,"16.0":0.12956,"16.1":0.27486,"16.2":0.13804,"16.3":0.23127,"16.4":0.05449,"16.5":0.09808,"16.6-16.7":0.80401,"17.0":0.07265,"17.1":0.11745,"17.2":0.11382,"17.3":0.17073,"17.4":0.42743,"17.5":7.82697,"17.6":0.06054,"18.0":0.07992},P:{"4":0.0513,"20":0.03078,"21":0.02052,"22":0.21547,"23":0.09234,"24":0.07182,"25":0.88239,"5.0-5.4":0.01026,"6.2-6.4":0.01026,"7.2-7.4":0.33859,_:"8.2 9.2 12.0 13.0 14.0 18.0","10.1":0.01026,"11.1-11.2":0.29755,"15.0":0.02052,"16.0":0.47198,"17.0":0.01026,"19.0":0.02052},I:{"0":0.01544,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":2.05169,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{"2.5":0.2634,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":63.04674},R:{_:"0"},M:{"0":0.09296},Q:{_:"14.9"},O:{"0":0.17818},H:{"0":0.04}}; 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..0b7a87c --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GB.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00409,"52":0.01227,"59":0.02455,"78":0.02455,"83":0.00409,"88":0.01227,"91":0.00409,"93":0.00409,"94":0.00409,"102":0.00409,"103":0.00409,"105":0.00409,"107":0.00409,"108":0.00409,"110":0.00409,"113":0.00409,"115":0.16364,"116":0.00409,"118":0.00409,"119":0.00409,"120":0.00409,"121":0.00818,"122":0.00409,"123":0.01636,"124":0.00818,"125":0.03682,"126":0.03273,"127":0.73229,"128":0.81002,"129":0.00409,_:"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 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 87 89 90 92 95 96 97 98 99 100 101 104 106 109 111 112 114 117 130 131 3.5 3.6"},D:{"38":0.00409,"39":0.00409,"40":0.00409,"41":0.00409,"42":0.00409,"43":0.00409,"44":0.00409,"45":0.00409,"46":0.00409,"47":0.00409,"48":0.00409,"49":0.01227,"50":0.00409,"51":0.00409,"52":0.00818,"53":0.00409,"54":0.00409,"55":0.00409,"56":0.00409,"57":0.00409,"58":0.00409,"59":0.00409,"60":0.00409,"66":0.09818,"70":0.00818,"74":0.00818,"75":0.00409,"76":0.01227,"77":0.00409,"79":0.02046,"80":0.01227,"81":0.02455,"83":0.08182,"84":0.00818,"85":0.00409,"86":0.00818,"87":0.02864,"88":0.01227,"89":0.01636,"90":0.00409,"91":0.01636,"92":0.01227,"93":0.03273,"94":0.02046,"95":0.01227,"96":0.08591,"97":0.00818,"98":0.00409,"99":0.00818,"100":0.00409,"101":0.00409,"102":0.01636,"103":0.15546,"104":0.00818,"105":0.02046,"106":0.00818,"107":0.02455,"108":0.01636,"109":0.5932,"110":0.02455,"111":0.03273,"112":0.02046,"113":0.06137,"114":0.11455,"115":0.02455,"116":0.15955,"117":0.02046,"118":0.03273,"119":0.04091,"120":0.08182,"121":0.045,"122":0.18,"123":0.18,"124":0.3641,"125":0.84275,"126":16.09399,"127":1.57094,"128":0.00818,_:"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 61 62 63 64 65 67 68 69 71 72 73 78 129 130"},F:{"46":0.00818,"83":0.00818,"95":0.01636,"102":0.00409,"109":0.42956,"110":0.00818,"111":0.26182,_:"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 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.01227,"18":0.00409,"92":0.00818,"95":0.00409,"107":0.00409,"108":0.00409,"109":0.06546,"110":0.00409,"112":0.00409,"113":0.00409,"114":0.00409,"115":0.00409,"116":0.00409,"117":0.00818,"118":0.00409,"119":0.01636,"120":0.02455,"121":0.02046,"122":0.05727,"123":0.01636,"124":0.02864,"125":0.21682,"126":7.86699,"127":0.87138,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 96 97 98 99 100 101 102 103 104 105 106 111"},E:{"13":0.00409,"14":0.03682,"15":0.00818,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02046,"12.1":0.01636,"13.1":0.07773,"14.1":0.12682,"15.1":0.01227,"15.2-15.3":0.01227,"15.4":0.02046,"15.5":0.04091,"15.6":0.49092,"16.0":0.05318,"16.1":0.05727,"16.2":0.05318,"16.3":0.12682,"16.4":0.03273,"16.5":0.04909,"16.6":0.67502,"17.0":0.05318,"17.1":0.05727,"17.2":0.09,"17.3":0.06955,"17.4":0.19637,"17.5":3.96827,"17.6":0.01636,"18.0":0.01636},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00457,"5.0-5.1":0.00228,"6.0-6.1":0.01371,"7.0-7.1":0.01371,"8.1-8.4":0,"9.0-9.2":0.01142,"9.3":0.0457,"10.0-10.2":0.00914,"10.3":0.07997,"11.0-11.2":0.2102,"11.3-11.4":0.02285,"12.0-12.1":0.01599,"12.2-12.5":0.29474,"13.0-13.1":0.00457,"13.2":0.04798,"13.3":0.01599,"13.4-13.7":0.06854,"14.0-14.4":0.15765,"14.5-14.8":0.17821,"15.0-15.1":0.08911,"15.2-15.3":0.09596,"15.4":0.10967,"15.5":0.13252,"15.6-15.8":1.21552,"16.0":0.24447,"16.1":0.51865,"16.2":0.26047,"16.3":0.4364,"16.4":0.10282,"16.5":0.18507,"16.6-16.7":1.51711,"17.0":0.13709,"17.1":0.22163,"17.2":0.21477,"17.3":0.32216,"17.4":0.80654,"17.5":14.76899,"17.6":0.11424,"18.0":0.1508},P:{"4":0.02218,"20":0.02218,"21":0.06655,"22":0.06655,"23":0.07764,"24":0.09983,"25":3.47172,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 15.0","7.2-7.4":0.01109,"11.1-11.2":0.01109,"13.0":0.01109,"14.0":0.01109,"16.0":0.01109,"17.0":0.01109,"18.0":0.01109,"19.0":0.02218},I:{"0":0.04711,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":0.27186,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.0092,"11":0.02761,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":31.04604},R:{_:"0"},M:{"0":0.39006},Q:{"14.9":0.01182},O:{"0":0.1182},H:{"0":0}}; 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..e2a3470 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GD.js @@ -0,0 +1 @@ +module.exports={C:{"93":0.01537,"102":0.01153,"103":0.04995,"115":0.146,"120":0.00384,"124":0.00384,"125":0.00384,"127":0.2651,"128":0.61856,"129":0.01537,_:"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 94 95 96 97 98 99 100 101 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 121 122 123 126 130 131 3.5 3.6"},D:{"42":0.00384,"49":0.00768,"52":0.00384,"54":0.00384,"57":0.00384,"73":0.00384,"76":0.01537,"80":0.00384,"87":0.00768,"88":0.03458,"91":0.04226,"92":0.03458,"93":0.02689,"97":0.00384,"100":0.02689,"102":0.02689,"103":0.11526,"104":0.20747,"105":0.08837,"106":0.01153,"107":0.00384,"109":0.58783,"111":0.01921,"112":0.02689,"114":0.01537,"115":0.00768,"116":0.04995,"117":0.01153,"118":0.02689,"119":0.01537,"120":0.00768,"121":0.01921,"122":0.03842,"123":0.05763,"124":0.15752,"125":0.83371,"126":18.52997,"127":1.77885,"128":0.05379,_:"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 43 44 45 46 47 48 50 51 53 55 56 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 77 78 79 81 83 84 85 86 89 90 94 95 96 98 99 101 108 110 113 129 130"},F:{"46":0.01921,"83":0.01153,"109":0.21899,"111":0.30736,_:"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 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 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 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00384,"17":0.00384,"92":0.14215,"101":0.00768,"109":0.01921,"121":0.00384,"123":0.00384,"124":0.00768,"125":0.06916,"126":5.5709,"127":0.73766,_:"12 13 14 15 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 122"},E:{"13":0.00384,_:"0 4 5 6 7 8 9 10 11 12 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 16.4 17.6","12.1":0.00384,"13.1":0.03842,"14.1":0.13447,"15.4":0.00384,"15.5":0.03074,"15.6":0.08452,"16.0":0.21515,"16.1":0.76456,"16.2":0.00768,"16.3":0.00384,"16.5":0.01153,"16.6":0.09221,"17.0":0.45336,"17.1":0.01921,"17.2":0.02305,"17.3":0.04226,"17.4":0.18057,"17.5":1.58675,"18.0":0.00768},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0033,"5.0-5.1":0.00165,"6.0-6.1":0.00989,"7.0-7.1":0.00989,"8.1-8.4":0,"9.0-9.2":0.00824,"9.3":0.03297,"10.0-10.2":0.00659,"10.3":0.0577,"11.0-11.2":0.15166,"11.3-11.4":0.01648,"12.0-12.1":0.01154,"12.2-12.5":0.21266,"13.0-13.1":0.0033,"13.2":0.03462,"13.3":0.01154,"13.4-13.7":0.04945,"14.0-14.4":0.11375,"14.5-14.8":0.12858,"15.0-15.1":0.06429,"15.2-15.3":0.06924,"15.4":0.07913,"15.5":0.09561,"15.6-15.8":0.877,"16.0":0.17639,"16.1":0.37421,"16.2":0.18793,"16.3":0.31486,"16.4":0.07418,"16.5":0.13353,"16.6-16.7":1.0946,"17.0":0.09891,"17.1":0.1599,"17.2":0.15496,"17.3":0.23244,"17.4":0.58192,"17.5":10.65588,"17.6":0.08242,"18.0":0.1088},P:{"4":0.03249,"20":0.01083,"21":0.08665,"22":0.08665,"23":0.04332,"24":0.11914,"25":2.07954,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0","7.2-7.4":0.06499,"11.1-11.2":0.01083,"16.0":0.02166,"17.0":0.02166,"18.0":0.02166,"19.0":0.01083},I:{"0":0.03068,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":0.4249,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{"2.5":0.00616,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":43.98855},R:{_:"0"},M:{"0":0.20321},Q:{_:"14.9"},O:{"0":0.04311},H:{"0":0}}; 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..0623234 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GE.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.00365,"34":0.00365,"52":0.01095,"66":0.00365,"68":0.02919,"78":0.02554,"102":0.00365,"103":0.01825,"105":0.00365,"113":0.02554,"115":0.1861,"118":0.00365,"121":0.01095,"125":0.00365,"126":0.01095,"127":0.33571,"128":0.5364,"129":0.0073,_:"2 3 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 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 104 106 107 108 109 110 111 112 114 116 117 119 120 122 123 124 130 131 3.5","3.6":0.00365},D:{"11":0.00365,"38":0.00365,"39":0.00365,"40":0.00365,"41":0.00365,"42":0.00365,"43":0.00365,"44":0.00365,"45":0.00365,"46":0.00365,"47":0.03284,"49":0.02189,"50":0.01095,"51":0.00365,"52":0.00365,"53":0.00365,"56":0.01095,"62":0.00365,"63":0.0073,"64":0.00365,"65":0.00365,"66":0.0073,"68":0.02554,"69":0.01095,"70":0.0073,"71":0.00365,"73":0.04014,"74":0.01095,"75":0.00365,"76":0.00365,"78":0.04744,"79":0.29192,"80":0.0073,"81":0.00365,"83":0.17515,"84":0.00365,"86":0.0073,"87":0.28827,"88":0.05838,"89":0.0073,"90":0.0146,"91":0.02554,"92":0.0073,"93":0.00365,"94":0.06568,"95":0.00365,"96":0.00365,"97":0.00365,"98":0.02554,"99":0.0073,"100":0.02189,"101":0.01095,"102":0.0146,"103":0.05838,"104":0.03649,"105":0.01095,"106":0.04014,"107":0.0073,"108":0.04379,"109":4.24744,"110":0.02189,"111":0.01825,"112":0.01825,"113":0.00365,"114":0.0146,"115":0.01095,"116":0.14231,"117":0.0073,"118":0.02554,"119":0.04744,"120":0.12772,"121":0.10582,"122":0.10217,"123":0.08758,"124":0.16421,"125":0.41599,"126":16.86568,"127":2.39739,"128":0.0073,_:"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 48 54 55 57 58 59 60 61 67 72 77 85 129 130"},F:{"28":0.00365,"36":0.00365,"40":0.00365,"46":0.09852,"67":0.00365,"79":0.10582,"83":0.0146,"84":0.00365,"85":0.04379,"86":0.0073,"87":0.0146,"94":0.00365,"95":0.48897,"102":0.0073,"106":0.00365,"107":0.01095,"108":0.00365,"109":0.52546,"110":0.02919,"111":1.1093,_:"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 68 69 70 71 72 73 74 75 76 77 78 80 81 82 88 89 90 91 92 93 96 97 98 99 100 101 103 104 105 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00365,"13":0.02554,"14":0.0146,"15":0.00365,"16":0.0073,"18":0.01095,"92":0.0073,"99":0.00365,"100":0.00365,"102":0.01095,"108":0.00365,"109":0.0146,"110":0.01095,"111":0.01095,"116":0.00365,"117":0.00365,"118":0.00365,"119":0.0073,"120":0.01095,"121":0.0146,"122":0.03284,"123":0.0146,"124":0.02554,"125":0.08758,"126":2.10547,"127":0.21529,_:"17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 101 103 104 105 106 107 112 113 114 115"},E:{"9":0.0073,"14":0.0073,_:"0 4 5 6 7 8 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.01095,"13.1":0.02919,"14.1":0.02189,"15.1":0.0073,"15.2-15.3":0.00365,"15.4":0.01095,"15.5":0.0073,"15.6":0.06203,"16.0":0.0073,"16.1":0.02189,"16.2":0.01825,"16.3":0.03649,"16.4":0.01095,"16.5":0.02919,"16.6":0.10582,"17.0":0.0146,"17.1":0.02554,"17.2":0.03284,"17.3":0.03649,"17.4":0.06568,"17.5":0.51451,"17.6":0.00365,"18.0":0.0073},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00223,"5.0-5.1":0.00112,"6.0-6.1":0.0067,"7.0-7.1":0.0067,"8.1-8.4":0,"9.0-9.2":0.00558,"9.3":0.02232,"10.0-10.2":0.00446,"10.3":0.03906,"11.0-11.2":0.10266,"11.3-11.4":0.01116,"12.0-12.1":0.00781,"12.2-12.5":0.14395,"13.0-13.1":0.00223,"13.2":0.02343,"13.3":0.00781,"13.4-13.7":0.03348,"14.0-14.4":0.077,"14.5-14.8":0.08704,"15.0-15.1":0.04352,"15.2-15.3":0.04687,"15.4":0.05356,"15.5":0.06472,"15.6-15.8":0.59364,"16.0":0.1194,"16.1":0.2533,"16.2":0.12721,"16.3":0.21313,"16.4":0.05021,"16.5":0.09039,"16.6-16.7":0.74094,"17.0":0.06695,"17.1":0.10824,"17.2":0.10489,"17.3":0.15734,"17.4":0.3939,"17.5":7.21299,"17.6":0.05579,"18.0":0.07365},P:{"4":0.77932,"20":0.03159,"21":0.09478,"22":0.17903,"23":0.13691,"24":0.14744,"25":1.95884,"5.0-5.4":0.03159,"6.2-6.4":0.09478,"7.2-7.4":0.1685,_:"8.2 9.2 10.1 12.0 14.0","11.1-11.2":0.03159,"13.0":0.03159,"15.0":0.01053,"16.0":0.02106,"17.0":0.02106,"18.0":0.01053,"19.0":0.04213},I:{"0":0.14556,"3":0,"4":0.00001,"2.1":0,"2.2":0.00003,"2.3":0,"4.1":0.00009,"4.2-4.3":0.00006,"4.4":0,"4.4.3-4.4.4":0.00025},K:{"0":0.36836,_:"10 11 12 11.1 11.5 12.1"},A:{"7":0.00365,"8":0.02189,"9":0.00365,"10":0.00365,"11":0.05109,_:"6 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":48.55009},R:{_:"0"},M:{"0":0.11432},Q:{"14.9":0.0127},O:{"0":0.03176},H:{"0":0}}; 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..7d459b7 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GF.js @@ -0,0 +1 @@ +module.exports={C:{"78":0.04586,"88":0.00983,"102":0.01966,"103":0.00328,"105":0.00328,"108":0.00983,"110":0.04914,"115":0.66175,"116":0.02621,"117":0.00328,"118":0.01638,"119":0.03931,"121":0.03931,"123":0.00983,"124":0.00983,"125":0.00655,"126":0.0819,"127":1.2154,"128":2.18182,"129":0.00655,_:"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 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 104 106 107 109 111 112 113 114 120 122 130 131 3.5 3.6"},D:{"49":0.00983,"53":0.00328,"56":0.00983,"62":0.00328,"69":0.05242,"79":0.00983,"81":0.0131,"86":0.02621,"87":0.0131,"88":0.00983,"89":0.00655,"94":0.00655,"98":0.00328,"100":0.00655,"103":0.04914,"105":0.00328,"108":0.00328,"109":0.57658,"110":0.01638,"111":0.0131,"113":0.00328,"114":0.03276,"115":0.00983,"116":0.03604,"117":0.00655,"118":0.00655,"119":0.0131,"120":0.04259,"121":0.06224,"122":0.16708,"123":0.06224,"124":0.05569,"125":0.13759,"126":12.56346,"127":1.1335,_:"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 54 55 57 58 59 60 61 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 80 83 84 85 90 91 92 93 95 96 97 99 101 102 104 106 107 112 128 129 130"},F:{"36":0.00328,"46":0.04586,"83":0.00328,"109":0.27518,"110":0.02293,"111":0.27518,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 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 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00328,"18":0.01638,"92":0.14742,"104":0.00328,"108":0.00328,"109":0.0131,"116":0.00328,"118":0.00328,"119":0.00328,"120":0.01638,"121":0.00328,"122":0.00328,"123":0.00983,"124":0.00983,"125":0.12776,"126":7.61342,"127":0.51761,_:"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 105 106 107 110 111 112 113 114 115 117"},E:{"14":0.00655,_:"0 4 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 12.1 15.1 16.4 17.6","13.1":0.03604,"14.1":0.02293,"15.2-15.3":0.00655,"15.4":0.05242,"15.5":0.01638,"15.6":0.04586,"16.0":0.0131,"16.1":0.02293,"16.2":0.0819,"16.3":0.095,"16.5":0.0131,"16.6":0.75348,"17.0":0.01966,"17.1":0.00983,"17.2":0.02621,"17.3":0.04259,"17.4":0.19328,"17.5":1.01884,"18.0":0.02293},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00351,"5.0-5.1":0.00175,"6.0-6.1":0.01053,"7.0-7.1":0.01053,"8.1-8.4":0,"9.0-9.2":0.00877,"9.3":0.0351,"10.0-10.2":0.00702,"10.3":0.06142,"11.0-11.2":0.16146,"11.3-11.4":0.01755,"12.0-12.1":0.01228,"12.2-12.5":0.22639,"13.0-13.1":0.00351,"13.2":0.03685,"13.3":0.01228,"13.4-13.7":0.05265,"14.0-14.4":0.12109,"14.5-14.8":0.13689,"15.0-15.1":0.06844,"15.2-15.3":0.07371,"15.4":0.08424,"15.5":0.10179,"15.6-15.8":0.93364,"16.0":0.18778,"16.1":0.39838,"16.2":0.20007,"16.3":0.3352,"16.4":0.07897,"16.5":0.14215,"16.6-16.7":1.1653,"17.0":0.1053,"17.1":0.17023,"17.2":0.16497,"17.3":0.24745,"17.4":0.6195,"17.5":11.34409,"17.6":0.08775,"18.0":0.11583},P:{"4":0.03192,"20":0.08511,"21":0.06384,"22":0.26598,"23":0.06384,"24":0.10639,"25":2.05337,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 15.0 16.0","7.2-7.4":0.35109,"13.0":0.02128,"14.0":0.01064,"17.0":0.02128,"18.0":0.01064,"19.0":0.03192},I:{"0":0.0201,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.65223,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":46.2386},R:{_:"0"},M:{"0":0.22189},Q:{"14.9":0.00672},O:{"0":0.04034},H:{"0":0}}; 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..3b1c3f7 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GG.js @@ -0,0 +1 @@ +module.exports={C:{"78":0.05769,"102":0.03297,"103":0.01236,"111":0.00412,"115":0.16484,"121":0.01236,"127":0.46155,"128":0.87365,"129":0.01648,"130":0.00412,_:"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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 104 105 106 107 108 109 110 112 113 114 116 117 118 119 120 122 123 124 125 126 131 3.5 3.6"},D:{"41":0.00412,"49":0.04945,"76":0.00412,"81":0.00824,"83":0.00412,"87":0.00412,"93":0.01648,"96":0.02885,"97":0.00824,"99":0.03297,"103":0.02473,"106":0.02473,"107":0.00412,"109":1.26515,"113":0.00412,"114":0.04121,"116":0.19781,"118":0.23078,"119":0.35441,"120":0.00824,"121":0.07006,"122":0.35853,"123":0.03297,"124":0.14424,"125":0.40386,"126":9.42885,"127":0.86953,_:"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 42 43 44 45 46 47 48 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 77 78 79 80 84 85 86 88 89 90 91 92 94 95 98 100 101 102 104 105 108 110 111 112 115 117 128 129 130"},F:{"83":0.00412,"95":0.00412,"109":0.14011,"110":0.00412,"111":0.11127,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"100":0.00412,"109":0.02885,"110":0.01236,"116":0.00412,"118":0.00412,"119":0.00412,"122":0.01236,"123":0.00412,"124":0.03709,"125":0.17308,"126":7.05515,"127":0.93135,_:"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 101 102 103 104 105 106 107 108 111 112 113 114 115 117 120 121"},E:{"14":0.02473,"15":0.01648,_:"0 4 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 18.0","13.1":0.30908,"14.1":0.27611,"15.1":0.03297,"15.2-15.3":0.00412,"15.4":0.21429,"15.5":0.05769,"15.6":1.14976,"16.0":0.95607,"16.1":0.03709,"16.2":0.16896,"16.3":0.11127,"16.4":0.02061,"16.5":0.07418,"16.6":2.20061,"17.0":0.07418,"17.1":0.02473,"17.2":0.0989,"17.3":0.14011,"17.4":0.35853,"17.5":10.43849,"17.6":0.00412},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00682,"5.0-5.1":0.00341,"6.0-6.1":0.02047,"7.0-7.1":0.02047,"8.1-8.4":0,"9.0-9.2":0.01706,"9.3":0.06824,"10.0-10.2":0.01365,"10.3":0.11943,"11.0-11.2":0.31392,"11.3-11.4":0.03412,"12.0-12.1":0.02389,"12.2-12.5":0.44017,"13.0-13.1":0.00682,"13.2":0.07166,"13.3":0.02389,"13.4-13.7":0.10237,"14.0-14.4":0.23544,"14.5-14.8":0.26615,"15.0-15.1":0.13307,"15.2-15.3":0.14331,"15.4":0.16378,"15.5":0.19791,"15.6-15.8":1.81528,"16.0":0.3651,"16.1":0.77456,"16.2":0.38899,"16.3":0.65173,"16.4":0.15355,"16.5":0.27639,"16.6-16.7":2.26569,"17.0":0.20473,"17.1":0.33098,"17.2":0.32074,"17.3":0.48112,"17.4":1.2045,"17.5":22.05633,"17.6":0.17061,"18.0":0.2252},P:{"4":0.01154,"20":0.01154,"21":0.01154,"22":0.01154,"24":0.05768,"25":3.66825,_:"23 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","19.0":0.02307},I:{"0":0.00586,"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.00001},K:{"0":0.01176,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01648,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":19.45257},R:{_:"0"},M:{"0":0.63482},Q:{"14.9":0.00588},O:{"0":0.00588},H:{"0":0}}; 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..57e7c93 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GH.js @@ -0,0 +1 @@ +module.exports={C:{"40":0.00233,"44":0.00233,"52":0.00233,"57":0.00233,"68":0.00233,"72":0.007,"76":0.00233,"78":0.00466,"85":0.00233,"91":0.00233,"96":0.00933,"101":0.00466,"103":0.00233,"104":0.00233,"105":0.00233,"109":0.00466,"111":0.00233,"112":0.00233,"113":0.00233,"115":0.21221,"116":0.00233,"118":0.00233,"121":0.00233,"122":0.007,"123":0.00933,"124":0.01166,"125":0.01632,"126":0.03964,"127":0.50138,"128":0.68328,"129":0.01866,_:"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 41 42 43 45 46 47 48 49 50 51 53 54 55 56 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 77 79 80 81 82 83 84 86 87 88 89 90 92 93 94 95 97 98 99 100 102 106 107 108 110 114 117 119 120 130 131 3.5 3.6"},D:{"11":0.00233,"19":0.00233,"30":0.00233,"33":0.00233,"38":0.00233,"40":0.00233,"43":0.00233,"44":0.00233,"45":0.00233,"46":0.00233,"47":0.00466,"49":0.007,"50":0.00466,"51":0.00233,"54":0.00233,"55":0.00233,"58":0.00466,"59":0.00233,"60":0.00233,"61":0.00233,"62":0.00233,"63":0.00233,"64":0.007,"65":0.007,"67":0.00233,"68":0.00933,"69":0.00933,"70":0.01632,"71":0.00233,"72":0.00466,"73":0.00233,"74":0.02099,"75":0.01866,"76":0.02099,"77":0.01632,"78":0.00233,"79":0.02099,"80":0.02565,"81":0.00933,"83":0.007,"84":0.00233,"85":0.01399,"86":0.007,"87":0.02099,"88":0.00933,"89":0.00466,"90":0.01166,"91":0.01399,"92":0.007,"93":0.04664,"94":0.007,"95":0.01866,"96":0.00466,"97":0.00466,"98":0.00466,"99":0.00933,"100":0.00466,"101":0.00233,"102":0.01166,"103":0.08862,"104":0.00933,"105":0.01866,"106":0.01166,"107":0.01166,"108":0.01632,"109":1.46216,"110":0.00933,"111":0.02099,"112":0.007,"113":0.00466,"114":0.02099,"115":0.007,"116":0.07462,"117":0.02332,"118":0.02565,"119":0.05597,"120":0.05364,"121":0.0513,"122":0.04897,"123":0.08628,"124":0.13526,"125":0.27984,"126":8.76132,"127":1.02142,"128":0.00933,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 29 31 32 34 35 36 37 39 41 42 48 52 53 56 57 66 129 130"},F:{"34":0.00466,"35":0.00233,"36":0.00233,"40":0.00233,"42":0.01166,"46":0.00233,"49":0.00233,"79":0.02099,"83":0.07229,"84":0.00466,"85":0.00233,"86":0.00466,"90":0.00233,"94":0.00233,"95":0.07929,"99":0.00233,"102":0.00233,"105":0.00233,"106":0.00233,"107":0.007,"108":0.007,"109":0.0583,"110":0.03498,"111":0.68328,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 37 38 39 41 43 44 45 47 48 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 87 88 89 91 92 93 96 97 98 100 101 103 104 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.02798,"13":0.00466,"14":0.01166,"15":0.01399,"16":0.00933,"17":0.01399,"18":0.10727,"81":0.00233,"84":0.01866,"85":0.00233,"89":0.03498,"90":0.06063,"92":0.13759,"100":0.04897,"103":0.00233,"106":0.00233,"107":0.007,"108":0.00466,"109":0.03731,"110":0.00233,"111":0.02332,"112":0.01166,"113":0.00466,"114":0.01166,"115":0.00466,"116":0.00466,"117":0.01166,"118":0.01166,"119":0.01399,"120":0.03032,"121":0.02332,"122":0.02798,"123":0.03498,"124":0.08628,"125":0.11893,"126":2.55587,"127":0.30782,_:"79 80 83 86 87 88 91 93 94 95 96 97 98 99 101 102 104 105"},E:{"7":0.00233,"9":0.00233,"11":0.00933,"13":0.007,"14":0.01399,"15":0.00233,_:"0 4 5 6 8 10 12 3.1 3.2 5.1 6.1 9.1 10.1","7.1":0.00466,"11.1":0.01166,"12.1":0.00466,"13.1":0.04431,"14.1":0.03265,"15.1":0.00233,"15.2-15.3":0.00233,"15.4":0.00233,"15.5":0.00233,"15.6":0.09328,"16.0":0.00466,"16.1":0.007,"16.2":0.00466,"16.3":0.01399,"16.4":0.00466,"16.5":0.00466,"16.6":0.04897,"17.0":0.01166,"17.1":0.01166,"17.2":0.01632,"17.3":0.01166,"17.4":0.03265,"17.5":0.20055,"17.6":0.00233,"18.0":0.007},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00222,"5.0-5.1":0.00111,"6.0-6.1":0.00667,"7.0-7.1":0.00667,"8.1-8.4":0,"9.0-9.2":0.00556,"9.3":0.02225,"10.0-10.2":0.00445,"10.3":0.03894,"11.0-11.2":0.10235,"11.3-11.4":0.01112,"12.0-12.1":0.00779,"12.2-12.5":0.14351,"13.0-13.1":0.00222,"13.2":0.02336,"13.3":0.00779,"13.4-13.7":0.03337,"14.0-14.4":0.07676,"14.5-14.8":0.08677,"15.0-15.1":0.04339,"15.2-15.3":0.04672,"15.4":0.0534,"15.5":0.06452,"15.6-15.8":0.59184,"16.0":0.11904,"16.1":0.25253,"16.2":0.12682,"16.3":0.21248,"16.4":0.05006,"16.5":0.09011,"16.6-16.7":0.73869,"17.0":0.06675,"17.1":0.10791,"17.2":0.10457,"17.3":0.15686,"17.4":0.39271,"17.5":7.19108,"17.6":0.05562,"18.0":0.07342},P:{"4":0.12206,"20":0.03052,"21":0.06103,"22":0.26447,"23":0.08138,"24":0.08138,"25":0.73239,"5.0-5.4":0.05086,"6.2-6.4":0.02034,"7.2-7.4":0.14241,_:"8.2 10.1 12.0","9.2":0.11189,"11.1-11.2":0.03052,"13.0":0.01017,"14.0":0.01017,"15.0":0.01017,"16.0":0.02034,"17.0":0.02034,"18.0":0.01017,"19.0":0.0712},I:{"0":0.08404,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00014},K:{"0":10.47915,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00933,"9":0.00233,"10":0.00233,"11":0.01866,_:"6 7 5.5"},S:{"2.5":0.01533,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":53.63048},R:{_:"0"},M:{"0":0.28368},Q:{"14.9":0.00767},O:{"0":0.7207},H:{"0":0.73}}; 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..ae45786 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GI.js @@ -0,0 +1 @@ +module.exports={C:{"78":0.0047,"83":0.02349,"105":0.55906,"106":0.0047,"107":0.88792,"108":0.01409,"109":0.0094,"110":0.02349,"111":0.02349,"115":0.05638,"124":0.09866,"126":0.0094,"127":0.64363,"128":0.85973,_:"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 79 80 81 82 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 112 113 114 116 117 118 119 120 121 122 123 125 129 130 131 3.5 3.6"},D:{"65":0.0094,"79":0.0094,"86":0.01409,"97":0.0094,"98":0.03289,"103":0.01879,"104":0.0094,"106":0.02819,"107":2.05772,"108":0.44631,"109":1.60202,"110":0.51678,"111":0.12685,"112":0.10805,"113":0.7094,"114":0.01879,"115":0.27718,"116":0.14564,"117":0.01879,"118":0.04228,"119":0.15503,"120":0.16443,"121":0.01879,"122":0.18322,"123":0.18792,"124":0.26309,"125":0.4698,"126":18.23294,"127":1.77115,_:"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 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 87 88 89 90 91 92 93 94 95 96 99 100 101 102 105 128 129 130"},F:{"91":0.0047,"93":0.0094,"109":0.45101,"111":0.2349,_:"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 92 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.0094,"18":0.67181,"107":0.0047,"108":0.09396,"109":0.05638,"116":0.01409,"124":0.0047,"125":0.09866,"126":7.55908,"127":0.74228,_:"12 13 14 15 16 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 110 111 112 113 114 115 117 118 119 120 121 122 123"},E:{"14":0.20671,"15":0.0047,_:"0 4 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 15.1 15.4 18.0","12.1":0.05168,"13.1":0.20671,"14.1":0.06577,"15.2-15.3":0.01409,"15.5":0.02819,"15.6":0.68121,"16.0":0.0047,"16.1":0.21141,"16.2":0.04698,"16.3":0.09866,"16.4":0.01409,"16.5":0.08926,"16.6":0.51678,"17.0":0.0094,"17.1":0.11275,"17.2":0.12685,"17.3":0.09396,"17.4":0.12215,"17.5":2.00135,"17.6":0.0094},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00479,"5.0-5.1":0.0024,"6.0-6.1":0.01437,"7.0-7.1":0.01437,"8.1-8.4":0,"9.0-9.2":0.01198,"9.3":0.04791,"10.0-10.2":0.00958,"10.3":0.08384,"11.0-11.2":0.22039,"11.3-11.4":0.02396,"12.0-12.1":0.01677,"12.2-12.5":0.30902,"13.0-13.1":0.00479,"13.2":0.05031,"13.3":0.01677,"13.4-13.7":0.07187,"14.0-14.4":0.16529,"14.5-14.8":0.18685,"15.0-15.1":0.09343,"15.2-15.3":0.10061,"15.4":0.11499,"15.5":0.13894,"15.6-15.8":1.27442,"16.0":0.25632,"16.1":0.54378,"16.2":0.27309,"16.3":0.45754,"16.4":0.1078,"16.5":0.19404,"16.6-16.7":1.59063,"17.0":0.14373,"17.1":0.23237,"17.2":0.22518,"17.3":0.33777,"17.4":0.84562,"17.5":15.48465,"17.6":0.11978,"18.0":0.1581},P:{"4":0.40655,"20":0.10699,"21":0.0107,"22":0.0107,"23":0.0107,"25":2.56768,_:"24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","19.0":0.0321},I:{"0":0.01585,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.21734,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.14754,"9":0.1285,"10":0.00476,"11":0.44738,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":24.97934},R:{_:"0"},M:{"0":0.32866},Q:{"14.9":0.0106},O:{"0":0.03181},H:{"0":0}}; 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..7ef7058 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GL.js @@ -0,0 +1 @@ +module.exports={C:{"2":0.02341,"3":0.01171,"4":0.04292,"5":0.01951,"7":0.0039,"8":0.01561,"9":0.0039,"10":0.01951,"11":0.01561,"12":0.01171,"13":0.0039,"14":0.01171,"15":0.01561,"16":0.01951,"19":0.01171,"21":0.01171,"23":0.01171,"24":0.01171,"25":0.01951,"26":0.01171,"27":0.01171,"28":0.02731,"29":0.01171,"30":0.01951,"31":0.03902,"32":0.01171,"33":0.01171,"34":0.04292,"35":0.08194,"36":0.01561,"37":0.01171,"38":0.02731,"39":0.06633,"40":0.10535,"41":0.04292,"42":0.0078,"43":0.01171,"52":0.05853,"54":0.0039,"101":0.0039,"103":0.0039,"114":0.0039,"115":0.02731,"117":0.03122,"120":0.0039,"121":0.0039,"122":0.0078,"123":0.01171,"126":0.08194,"127":0.53457,"128":0.76089,_:"6 17 18 20 22 44 45 46 47 48 49 50 51 53 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 102 104 105 106 107 108 109 110 111 112 113 116 118 119 124 125 129 130 131","3.5":0.02731,"3.6":0.14828},D:{"4":0.0039,"5":0.0039,"6":0.01561,"7":0.01171,"8":0.0039,"9":0.0039,"11":0.03512,"12":0.01171,"14":0.0039,"15":0.01951,"17":0.01951,"18":0.01951,"19":0.01171,"20":0.01171,"21":0.06633,"22":0.01171,"23":0.0039,"24":0.01171,"25":0.01951,"26":0.01171,"27":0.02731,"28":0.01951,"29":0.0039,"30":0.01561,"31":0.03122,"32":0.01171,"33":0.03512,"34":0.01951,"35":0.01561,"36":0.05853,"37":0.09755,"38":0.03512,"39":0.09365,"40":0.08975,"41":0.08975,"42":0.04292,"43":0.16388,"44":0.24973,"45":0.13657,"46":0.1951,"47":0.10926,"51":0.24973,"70":0.11316,"78":0.0039,"81":0.0039,"85":0.0039,"88":0.03122,"89":0.0039,"90":0.0039,"99":0.01951,"102":0.0039,"103":0.0078,"105":0.0039,"107":0.02731,"109":1.10036,"110":0.0039,"111":0.0039,"112":0.0039,"114":0.0039,"116":2.46606,"117":0.03512,"119":0.01561,"120":0.03512,"121":0.01171,"122":0.11706,"123":0.01171,"124":0.02341,"125":0.16388,"126":12.25618,"127":1.7481,"129":0.0039,_:"10 13 16 48 49 50 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 79 80 83 84 86 87 91 92 93 94 95 96 97 98 100 101 104 106 108 113 115 118 128 130"},F:{"12":0.0039,"15":0.0039,"19":0.0039,"20":0.0039,"24":0.0039,"26":0.02731,"28":0.0039,"29":0.01561,"30":0.01561,"31":0.05853,"32":0.05073,"33":0.0039,"70":0.0039,"73":0.0039,"83":0.0039,"109":0.55018,"110":0.0078,"111":1.26425,_:"9 11 16 17 18 21 22 23 25 27 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 72 74 75 76 77 78 79 80 81 82 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 10.5 10.6 11.1","9.5-9.6":0.0039,"10.0-10.1":0.0039,"11.5":0.01171,"11.6":0.0039,"12.1":0.05463},B:{"12":0.03512,"13":0.0039,"92":0.04682,"100":0.0039,"107":0.01171,"109":0.0039,"110":0.0039,"122":0.05853,"124":0.05853,"125":0.14047,"126":3.53521,"127":0.28485,_:"14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 108 111 112 113 114 115 116 117 118 119 120 121 123"},E:{"4":0.05073,"5":0.02731,"6":0.0039,"7":0.01951,"8":0.04682,"9":0.37459,"12":0.0039,"14":0.0078,_:"0 10 11 13 15 10.1 11.1","3.1":0.0039,"3.2":0.0039,"5.1":0.03512,"6.1":0.0039,"7.1":0.03122,"9.1":0.0039,"12.1":0.0039,"13.1":0.0039,"14.1":0.02731,"15.1":0.23412,"15.2-15.3":0.04292,"15.4":0.0039,"15.5":0.12096,"15.6":0.26534,"16.0":0.52287,"16.1":0.01951,"16.2":0.06243,"16.3":0.05463,"16.4":0.01171,"16.5":0.05463,"16.6":0.5775,"17.0":0.0039,"17.1":0.07024,"17.2":0.0039,"17.3":0.01171,"17.4":0.03902,"17.5":2.29047,"17.6":0.0039,"18.0":0.0078},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0039,"5.0-5.1":0.00195,"6.0-6.1":0.01169,"7.0-7.1":0.01169,"8.1-8.4":0,"9.0-9.2":0.00974,"9.3":0.03895,"10.0-10.2":0.00779,"10.3":0.06817,"11.0-11.2":0.17919,"11.3-11.4":0.01948,"12.0-12.1":0.01363,"12.2-12.5":0.25125,"13.0-13.1":0.0039,"13.2":0.0409,"13.3":0.01363,"13.4-13.7":0.05843,"14.0-14.4":0.13439,"14.5-14.8":0.15192,"15.0-15.1":0.07596,"15.2-15.3":0.0818,"15.4":0.09349,"15.5":0.11297,"15.6-15.8":1.03618,"16.0":0.2084,"16.1":0.44213,"16.2":0.22204,"16.3":0.37201,"16.4":0.08765,"16.5":0.15776,"16.6-16.7":1.29327,"17.0":0.11686,"17.1":0.18893,"17.2":0.18308,"17.3":0.27463,"17.4":0.68754,"17.5":12.58994,"17.6":0.09739,"18.0":0.12855},P:{"4":0.24761,"21":0.01077,"22":0.01077,"23":0.04306,"24":0.02153,"25":2.59451,_:"20 5.0-5.4 7.2-7.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","6.2-6.4":0.22608,"11.1-11.2":0.02153},I:{"0":2.02353,"3":0,"4":0.0002,"2.1":0,"2.2":0.00041,"2.3":0,"4.1":0.00122,"4.2-4.3":0.00081,"4.4":0,"4.4.3-4.4.4":0.00345},K:{"0":1.12472,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.06669,"7":0.11377,"8":1.38489,"9":0.25501,"10":0.2197,"11":0.73364,"5.5":0.01177},S:{"2.5":0.08537,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":32.49561},R:{_:"0"},M:{"0":0.17684},Q:{_:"14.9"},O:{"0":0.36588},H:{"0":0.04}}; 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..02fb2bd --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GM.js @@ -0,0 +1 @@ +module.exports={C:{"50":0.00367,"62":0.00122,"66":0.00244,"72":0.00489,"74":0.00122,"86":0.00489,"112":0.00122,"115":0.11853,"122":0.00122,"123":0.01589,"124":0.00244,"125":0.00489,"126":0.00367,"127":0.2554,"128":0.37638,"129":0.00367,_:"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 51 52 53 54 55 56 57 58 59 60 61 63 64 65 67 68 69 70 71 73 75 76 77 78 79 80 81 82 83 84 85 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 116 117 118 119 120 121 130 131 3.5 3.6"},D:{"11":0.00489,"43":0.00122,"49":0.00244,"52":0.00122,"53":0.00122,"54":0.00122,"57":0.00244,"58":0.00489,"60":0.00367,"63":0.00489,"64":0.00244,"69":0.00122,"73":0.00122,"75":0.00122,"76":0.00489,"78":0.00244,"79":0.00733,"80":0.00122,"81":0.00122,"83":0.00122,"87":0.00733,"88":0.01589,"90":0.10265,"93":0.00855,"94":0.00367,"95":0.00244,"98":0.00855,"99":0.00244,"101":0.00611,"103":0.03299,"104":0.00611,"105":0.00244,"106":0.15031,"108":0.00122,"109":1.40774,"111":0.00244,"114":0.00244,"116":0.04521,"118":0.02444,"119":0.00978,"120":0.01344,"121":0.01344,"122":0.01589,"123":0.022,"124":0.10998,"125":0.13931,"126":2.96824,"127":0.36416,_:"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 44 45 46 47 48 50 51 55 56 59 61 62 65 66 67 68 70 71 72 74 77 84 85 86 89 91 92 96 97 100 102 107 110 112 113 115 117 128 129 130"},F:{"40":0.00122,"46":0.00244,"79":0.00122,"93":0.01222,"95":0.00244,"101":0.00122,"107":0.00122,"108":0.01222,"109":0.00978,"111":0.11242,_:"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 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 80 81 82 83 84 85 86 87 88 89 90 91 92 94 96 97 98 99 100 102 103 104 105 106 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.01589,"14":0.00122,"15":0.00733,"16":0.00122,"18":0.01222,"84":0.00122,"89":0.00122,"90":0.00122,"92":0.00733,"95":0.00122,"99":0.00122,"100":0.01711,"103":0.00122,"109":0.00244,"110":0.01222,"112":0.00122,"114":0.00122,"117":0.00122,"118":0.00122,"121":0.00244,"122":0.00244,"123":0.00244,"124":0.00978,"125":0.01955,"126":0.94949,"127":0.19308,_:"13 17 79 80 81 83 85 86 87 88 91 93 94 96 97 98 101 102 104 105 106 107 108 111 113 115 116 119 120"},E:{"14":0.00244,_:"0 4 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 12.1 15.1 16.0 16.2","13.1":0.02444,"14.1":0.04521,"15.2-15.3":0.00122,"15.4":0.00122,"15.5":0.00244,"15.6":0.022,"16.1":0.04644,"16.3":0.00733,"16.4":0.00122,"16.5":0.00244,"16.6":0.04644,"17.0":0.00122,"17.1":0.00244,"17.2":0.00367,"17.3":0.00733,"17.4":0.02077,"17.5":0.18941,"17.6":0.00244,"18.0":0.00122},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00333,"5.0-5.1":0.00166,"6.0-6.1":0.00998,"7.0-7.1":0.00998,"8.1-8.4":0,"9.0-9.2":0.00832,"9.3":0.03328,"10.0-10.2":0.00666,"10.3":0.05824,"11.0-11.2":0.1531,"11.3-11.4":0.01664,"12.0-12.1":0.01165,"12.2-12.5":0.21467,"13.0-13.1":0.00333,"13.2":0.03495,"13.3":0.01165,"13.4-13.7":0.04992,"14.0-14.4":0.11482,"14.5-14.8":0.1298,"15.0-15.1":0.0649,"15.2-15.3":0.06989,"15.4":0.07988,"15.5":0.09652,"15.6-15.8":0.88531,"16.0":0.17806,"16.1":0.37776,"16.2":0.18971,"16.3":0.31785,"16.4":0.07489,"16.5":0.13479,"16.6-16.7":1.10498,"17.0":0.09985,"17.1":0.16142,"17.2":0.15643,"17.3":0.23464,"17.4":0.58743,"17.5":10.75687,"17.6":0.08321,"18.0":0.10983},P:{"4":0.22782,"20":0.02071,"21":0.04142,"22":0.07249,"23":0.14497,"24":0.03107,"25":0.5799,"5.0-5.4":0.01036,_:"6.2-6.4 8.2 10.1 12.0 14.0 15.0 17.0","7.2-7.4":0.31066,"9.2":0.03107,"11.1-11.2":0.01036,"13.0":0.05178,"16.0":0.55919,"18.0":0.01036,"19.0":0.10355},I:{"0":0.01749,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.74993,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00244,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":71.52152},R:{_:"0"},M:{"0":0.02633},Q:{_:"14.9"},O:{"0":0.10532},H:{"0":0.04}}; 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..dd87ec4 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GN.js @@ -0,0 +1 @@ +module.exports={C:{"56":0.00145,"72":0.00145,"94":0.00145,"111":0.00868,"115":0.01302,"124":0.00145,"125":0.00434,"126":0.00289,"127":0.08827,"128":0.123,_:"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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 112 113 114 116 117 118 119 120 121 122 123 129 130 131 3.5 3.6"},D:{"39":0.00145,"43":0.00289,"54":0.00145,"63":0.00145,"64":0.00289,"65":0.00145,"67":0.00145,"68":0.00289,"69":0.00289,"70":0.00289,"71":0.00289,"72":0.00145,"74":0.00145,"75":0.00145,"78":0.00289,"79":0.00145,"80":0.00145,"81":0.13312,"83":0.00289,"84":0.00145,"87":0.00289,"89":0.00289,"90":0.00145,"95":0.00434,"97":0.00145,"99":0.01447,"103":0.00579,"104":0.00145,"106":0.00145,"107":0.00289,"108":0.00145,"109":0.04196,"110":0.00145,"111":0.00289,"113":0.00724,"114":0.00145,"115":0.00145,"116":0.00434,"117":0.00145,"118":0.00434,"119":0.01592,"120":0.04052,"121":0.00289,"122":0.0246,"123":0.01013,"124":0.01302,"125":0.06946,"126":1.63222,"127":0.2648,"128":0.00145,_:"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 40 41 42 44 45 46 47 48 49 50 51 52 53 55 56 57 58 59 60 61 62 66 73 76 77 85 86 88 91 92 93 94 96 98 100 101 102 105 112 129 130"},F:{"19":0.00145,"79":0.00145,"95":0.00434,"109":0.00145,"110":0.00724,"111":0.10853,_:"9 11 12 15 16 17 18 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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00434,"13":0.00145,"15":0.00289,"17":0.00145,"18":0.02315,"84":0.00145,"86":0.00145,"89":0.00289,"90":0.00434,"92":0.01447,"94":0.01302,"100":0.00289,"109":0.00145,"114":0.00145,"115":0.00145,"116":0.00145,"117":0.00145,"118":0.00289,"119":0.00289,"120":0.00145,"121":0.00145,"122":0.00289,"123":0.00434,"124":0.00724,"125":0.01013,"126":0.47317,"127":0.05643,_:"14 16 79 80 81 83 85 87 88 91 93 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113"},E:{"11":0.00145,"13":0.00145,_:"0 4 5 6 7 8 9 10 12 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5 16.0 16.1 16.2 16.4 17.0 17.1 17.6 18.0","13.1":0.00434,"14.1":0.00145,"15.4":0.00289,"15.6":0.01592,"16.3":0.00145,"16.5":0.00145,"16.6":0.00434,"17.2":0.00289,"17.3":0.00145,"17.4":0.01302,"17.5":0.03183},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00182,"5.0-5.1":0.00091,"6.0-6.1":0.00546,"7.0-7.1":0.00546,"8.1-8.4":0,"9.0-9.2":0.00455,"9.3":0.0182,"10.0-10.2":0.00364,"10.3":0.03185,"11.0-11.2":0.08372,"11.3-11.4":0.0091,"12.0-12.1":0.00637,"12.2-12.5":0.1174,"13.0-13.1":0.00182,"13.2":0.01911,"13.3":0.00637,"13.4-13.7":0.0273,"14.0-14.4":0.06279,"14.5-14.8":0.07098,"15.0-15.1":0.03549,"15.2-15.3":0.03822,"15.4":0.04368,"15.5":0.05278,"15.6-15.8":0.48414,"16.0":0.09737,"16.1":0.20658,"16.2":0.10374,"16.3":0.17382,"16.4":0.04095,"16.5":0.07371,"16.6-16.7":0.60427,"17.0":0.0546,"17.1":0.08827,"17.2":0.08554,"17.3":0.12832,"17.4":0.32124,"17.5":5.88249,"17.6":0.0455,"18.0":0.06006},P:{"4":0.04039,"20":0.07068,"21":0.57551,"22":1.10054,"23":0.13126,"24":0.24232,"25":0.83803,"5.0-5.4":0.0101,"6.2-6.4":0.02019,"7.2-7.4":0.19184,_:"8.2 10.1 12.0 17.0","9.2":0.13126,"11.1-11.2":0.02019,"13.0":0.05048,"14.0":0.0101,"15.0":0.02019,"16.0":0.06058,"18.0":0.02019,"19.0":0.50484},I:{"0":0.07671,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00013},K:{"0":1.21809,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{"2.5":0.05987,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":80.99315},R:{_:"0"},M:{"0":0.00855},Q:{"14.9":0.02566},O:{"0":0.11119},H:{"0":0.33}}; 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..9959387 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GP.js @@ -0,0 +1 @@ +module.exports={C:{"78":0.00822,"103":0.00822,"112":0.02054,"114":0.01232,"115":0.7189,"117":0.01232,"118":0.00411,"121":0.00411,"122":0.02876,"123":0.00411,"124":0.00411,"125":0.01232,"126":0.11502,"127":1.2858,"128":1.77466,"129":0.00411,_:"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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 113 116 119 120 130 131 3.5 3.6"},D:{"47":0.00411,"49":0.01232,"75":0.01232,"79":0.00411,"80":0.00411,"84":0.00411,"87":0.01643,"88":0.02054,"89":0.00822,"91":0.00822,"99":0.00411,"102":0.09448,"103":0.0493,"105":0.02465,"109":0.80517,"110":0.00411,"114":0.01232,"115":0.01643,"116":0.23826,"118":0.01232,"119":0.09038,"120":0.02054,"121":0.03697,"122":0.03286,"123":0.54636,"124":0.16843,"125":0.38204,"126":17.18376,"127":1.7952,"128":0.00411,_:"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 48 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 76 77 78 81 83 85 86 90 92 93 94 95 96 97 98 100 101 104 106 107 108 111 112 113 117 129 130"},F:{"28":0.00411,"46":0.01232,"83":0.01232,"89":0.01232,"102":0.00411,"109":0.47242,"110":0.00411,"111":0.53404,_:"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 71 72 73 74 75 76 77 78 79 80 81 82 84 85 86 87 88 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00411,"18":0.00822,"92":0.02054,"109":0.07394,"110":0.00411,"112":0.00411,"114":0.01232,"116":0.00411,"118":0.0493,"119":0.00411,"120":0.00822,"121":0.08627,"122":0.02054,"123":0.01232,"124":0.13146,"125":0.11913,"126":6.06752,"127":0.80517,_:"12 13 14 15 16 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 108 111 113 115 117"},E:{"14":0.04519,"15":0.00411,_:"0 4 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.01232,"13.1":0.11502,"14.1":0.11092,"15.1":0.02465,"15.2-15.3":0.00822,"15.4":0.01232,"15.5":0.01643,"15.6":0.17254,"16.0":0.03286,"16.1":0.0493,"16.2":0.01232,"16.3":0.07394,"16.4":0.03286,"16.5":0.21362,"16.6":0.43956,"17.0":0.02876,"17.1":0.04108,"17.2":0.06984,"17.3":0.05751,"17.4":0.19718,"17.5":3.20835,"17.6":0.06573,"18.0":0.01643},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00311,"5.0-5.1":0.00155,"6.0-6.1":0.00933,"7.0-7.1":0.00933,"8.1-8.4":0,"9.0-9.2":0.00777,"9.3":0.03109,"10.0-10.2":0.00622,"10.3":0.0544,"11.0-11.2":0.143,"11.3-11.4":0.01554,"12.0-12.1":0.01088,"12.2-12.5":0.20051,"13.0-13.1":0.00311,"13.2":0.03264,"13.3":0.01088,"13.4-13.7":0.04663,"14.0-14.4":0.10725,"14.5-14.8":0.12124,"15.0-15.1":0.06062,"15.2-15.3":0.06528,"15.4":0.07461,"15.5":0.09015,"15.6-15.8":0.82689,"16.0":0.16631,"16.1":0.35283,"16.2":0.17719,"16.3":0.29687,"16.4":0.06994,"16.5":0.1259,"16.6-16.7":1.03206,"17.0":0.09326,"17.1":0.15077,"17.2":0.14611,"17.3":0.21916,"17.4":0.54867,"17.5":10.04706,"17.6":0.07772,"18.0":0.10258},P:{"4":0.06357,"20":0.13774,"21":0.03179,"22":0.06357,"23":0.13774,"24":0.21191,"25":3.5283,"5.0-5.4":0.0106,"6.2-6.4":0.0106,"7.2-7.4":0.03179,_:"8.2 9.2 10.1 11.1-11.2 12.0 15.0 16.0 18.0","13.0":0.0106,"14.0":0.07417,"17.0":0.0106,"19.0":0.10595},I:{"0":0.00587,"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.00001},K:{"0":0.14141,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00411,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":38.86017},R:{_:"0"},M:{"0":0.40655},Q:{_:"14.9"},O:{"0":0.01768},H:{"0":0}}; 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..551acec --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GQ.js @@ -0,0 +1 @@ +module.exports={C:{"72":0.03652,"78":0.01461,"93":0.01461,"97":0.0073,"99":0.03652,"115":0.32864,"118":0.02191,"125":0.0073,"126":0.0073,"127":1.01512,"128":2.1909,_:"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 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 94 95 96 98 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 119 120 121 122 123 124 129 130 131 3.5 3.6"},D:{"52":0.02921,"69":0.0073,"72":0.02191,"81":0.0073,"83":0.0073,"87":0.01461,"88":0.0073,"90":0.01461,"92":0.01461,"94":0.0073,"99":0.0073,"106":0.0073,"108":0.02191,"109":2.36617,"116":0.0073,"119":0.01461,"120":0.02191,"121":0.0073,"122":0.0073,"123":0.0073,"124":0.16797,"125":0.10955,"126":7.85803,"127":1.00781,_:"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 67 68 70 71 73 74 75 76 77 78 79 80 84 85 86 89 91 93 95 96 97 98 100 101 102 103 104 105 107 110 111 112 113 114 115 117 118 128 129 130"},F:{"62":0.08033,"83":0.0073,"111":0.07303,_:"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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 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 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.02921,"85":0.0073,"89":0.0073,"92":0.01461,"104":0.02921,"109":0.05842,"112":0.0073,"113":0.0073,"115":0.01461,"117":0.0073,"119":1.89148,"120":0.18258,"121":0.37245,"122":2.6802,"123":0.46009,"124":3.4178,"125":2.72402,"126":37.50091,"127":5.55028,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 88 90 91 93 94 95 96 97 98 99 100 101 102 103 105 106 107 108 110 111 114 116 118"},E:{_:"0 4 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 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.2 16.4 16.5 17.0 17.2 17.3 17.4 17.6 18.0","14.1":0.0073,"16.1":0.08033,"16.3":0.0073,"16.6":0.0073,"17.1":0.0073,"17.5":0.01461},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00075,"5.0-5.1":0.00038,"6.0-6.1":0.00226,"7.0-7.1":0.00226,"8.1-8.4":0,"9.0-9.2":0.00189,"9.3":0.00755,"10.0-10.2":0.00151,"10.3":0.01321,"11.0-11.2":0.03472,"11.3-11.4":0.00377,"12.0-12.1":0.00264,"12.2-12.5":0.04869,"13.0-13.1":0.00075,"13.2":0.00793,"13.3":0.00264,"13.4-13.7":0.01132,"14.0-14.4":0.02604,"14.5-14.8":0.02944,"15.0-15.1":0.01472,"15.2-15.3":0.01585,"15.4":0.01812,"15.5":0.02189,"15.6-15.8":0.2008,"16.0":0.04039,"16.1":0.08568,"16.2":0.04303,"16.3":0.07209,"16.4":0.01698,"16.5":0.03057,"16.6-16.7":0.25062,"17.0":0.02265,"17.1":0.03661,"17.2":0.03548,"17.3":0.05322,"17.4":0.13324,"17.5":2.43977,"17.6":0.01887,"18.0":0.02491},P:{"4":0.02194,"21":0.01097,"22":0.01097,"23":0.13164,"24":0.01097,"25":0.09873,_:"20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 10.1 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","9.2":0.01097,"11.1-11.2":0.01097},I:{"0":0.01075,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.32352,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{"2.5":1.1431,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":23.21475},R:{_:"0"},M:{"0":0.03505},Q:{"14.9":0.0027},O:{"0":0.0647},H:{"0":0}}; 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..1947007 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GR.js @@ -0,0 +1 @@ +module.exports={C:{"45":0.24232,"52":0.36814,"68":0.19572,"78":0.01398,"86":0.02796,"88":0.0233,"102":0.00466,"103":0.00466,"105":0.28892,"108":0.00466,"109":0.00466,"110":0.00466,"112":0.03262,"113":0.00466,"115":1.70556,"116":0.00466,"118":0.00466,"120":0.00466,"121":0.00466,"122":0.00466,"123":0.00466,"124":0.01864,"125":0.00932,"126":0.02796,"127":1.06248,"128":2.08768,"129":0.00932,_:"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 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 87 89 90 91 92 93 94 95 96 97 98 99 100 101 104 106 107 111 114 117 119 130 131 3.5 3.6"},D:{"38":0.00466,"47":0.19106,"49":0.03728,"69":0.00932,"73":0.3728,"74":0.00466,"76":0.00466,"78":0.00466,"79":0.24232,"81":0.00466,"83":0.00466,"86":0.00466,"87":0.01864,"88":0.10252,"89":0.01398,"91":0.00932,"92":0.00932,"93":0.03262,"94":0.00466,"95":0.00932,"96":0.00466,"99":0.03728,"100":0.00466,"101":0.00932,"102":0.13514,"103":0.03262,"104":0.00932,"105":0.03262,"106":0.01398,"107":0.00932,"108":0.00932,"109":5.92752,"110":0.00932,"111":0.00466,"112":0.01398,"113":0.04194,"114":0.06058,"115":0.01398,"116":0.07922,"117":0.00932,"118":0.01864,"119":0.03728,"120":0.04194,"121":0.0233,"122":0.14446,"123":0.05126,"124":0.10252,"125":0.31688,"126":19.94014,"127":2.72144,"128":0.00466,_:"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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 75 77 80 84 85 90 97 98 129 130"},F:{"31":0.57784,"40":0.41008,"46":0.36348,"77":0.00932,"83":0.01398,"95":0.03262,"109":0.1631,"110":0.01398,"111":0.40076,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 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 78 79 80 81 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00932,"17":0.2796,"107":0.00466,"109":0.05126,"114":0.00466,"119":0.00466,"120":0.00466,"121":0.00932,"122":0.00932,"123":0.00466,"124":0.01398,"125":0.03728,"126":2.87056,"127":0.2563,_:"12 13 15 16 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 110 111 112 113 115 116 117 118"},E:{"12":0.00932,"14":0.00932,"15":0.00466,_:"0 4 5 6 7 8 9 10 11 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00466,"13.1":0.0233,"14.1":0.04194,"15.1":0.00466,"15.2-15.3":0.00466,"15.4":0.14446,"15.5":0.01398,"15.6":0.0932,"16.0":0.00932,"16.1":0.01398,"16.2":0.01398,"16.3":0.0233,"16.4":0.00932,"16.5":0.01398,"16.6":0.13514,"17.0":0.00466,"17.1":0.01864,"17.2":0.01864,"17.3":0.01864,"17.4":0.05126,"17.5":0.74094,"17.6":0.00466,"18.0":0.00932},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00149,"5.0-5.1":0.00074,"6.0-6.1":0.00447,"7.0-7.1":0.00447,"8.1-8.4":0,"9.0-9.2":0.00372,"9.3":0.0149,"10.0-10.2":0.00298,"10.3":0.02607,"11.0-11.2":0.06853,"11.3-11.4":0.00745,"12.0-12.1":0.00521,"12.2-12.5":0.0961,"13.0-13.1":0.00149,"13.2":0.01564,"13.3":0.00521,"13.4-13.7":0.02235,"14.0-14.4":0.0514,"14.5-14.8":0.0581,"15.0-15.1":0.02905,"15.2-15.3":0.03129,"15.4":0.03576,"15.5":0.04321,"15.6-15.8":0.3963,"16.0":0.07971,"16.1":0.1691,"16.2":0.08492,"16.3":0.14228,"16.4":0.03352,"16.5":0.06034,"16.6-16.7":0.49463,"17.0":0.0447,"17.1":0.07226,"17.2":0.07002,"17.3":0.10504,"17.4":0.26296,"17.5":4.81523,"17.6":0.03725,"18.0":0.04917},P:{"4":0.23935,"20":0.02081,"21":0.09366,"22":0.07285,"23":0.06244,"24":0.07285,"25":1.64426,"5.0-5.4":0.01041,_:"6.2-6.4 7.2-7.4 8.2 9.2 10.1 12.0 15.0","11.1-11.2":0.01041,"13.0":0.01041,"14.0":0.01041,"16.0":0.02081,"17.0":0.01041,"18.0":0.01041,"19.0":0.02081},I:{"0":0.0745,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00013},K:{"0":0.24632,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.00516,"7":0.00516,"8":0.01031,"9":0.00516,"10":0.00516,"11":0.21139,_:"5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":44.1337},R:{_:"0"},M:{"0":0.33642},Q:{"14.9":0.00534},O:{"0":0.04272},H:{"0":0.01}}; 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..644997f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GT.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.0034,"78":0.0034,"101":0.0034,"115":0.09528,"120":0.00681,"124":0.0034,"125":0.02042,"126":0.01361,"127":0.44579,"128":0.74185,"129":0.01021,"130":0.0034,_:"2 3 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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 121 122 123 131 3.5 3.6"},D:{"38":0.0034,"73":0.00681,"74":0.0034,"75":0.00681,"76":0.00681,"78":0.00681,"79":0.03063,"80":0.0034,"81":0.0034,"86":0.01361,"87":0.01702,"88":0.0034,"91":0.02042,"92":0.0034,"93":0.01021,"94":0.0034,"97":0.01021,"99":0.01021,"100":0.0034,"101":0.0034,"102":0.0034,"103":0.03403,"105":0.01021,"106":0.00681,"107":0.0034,"108":0.00681,"109":1.08556,"110":0.00681,"111":0.01361,"112":0.0034,"113":0.0034,"114":0.01361,"115":0.00681,"116":0.1157,"117":0.00681,"118":0.01021,"119":0.04084,"120":0.03403,"121":0.03063,"122":0.16334,"123":0.06125,"124":0.21779,"125":0.30287,"126":17.46079,"127":2.29703,"128":0.0034,_:"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 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 77 83 84 85 89 90 95 96 98 104 129 130"},F:{"83":0.01361,"94":0.0034,"95":0.03063,"102":0.0034,"106":0.0034,"107":0.0034,"109":0.88138,"110":0.00681,"111":0.58532,_:"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 84 85 86 87 88 89 90 91 92 93 96 97 98 99 100 101 103 104 105 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.01021,"100":0.0034,"109":0.02042,"112":0.0034,"114":0.0034,"117":0.0034,"118":0.00681,"119":0.0034,"120":0.00681,"121":0.01021,"122":0.00681,"123":0.01021,"124":0.02042,"125":0.05785,"126":3.19201,"127":0.4526,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 113 115 116"},E:{"14":0.00681,"15":0.00681,_:"0 4 5 6 7 8 9 10 11 12 13 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1","5.1":0.0034,"13.1":0.02722,"14.1":0.02382,"15.1":0.0034,"15.2-15.3":0.00681,"15.4":0.0034,"15.5":0.01361,"15.6":0.06125,"16.0":0.00681,"16.1":0.03063,"16.2":0.01361,"16.3":0.02722,"16.4":0.01021,"16.5":0.01702,"16.6":0.09528,"17.0":0.01702,"17.1":0.03063,"17.2":0.03063,"17.3":0.04424,"17.4":0.07827,"17.5":0.99368,"17.6":0.01702,"18.0":0.01702},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00224,"5.0-5.1":0.00112,"6.0-6.1":0.00672,"7.0-7.1":0.00672,"8.1-8.4":0,"9.0-9.2":0.0056,"9.3":0.02242,"10.0-10.2":0.00448,"10.3":0.03923,"11.0-11.2":0.10312,"11.3-11.4":0.01121,"12.0-12.1":0.00785,"12.2-12.5":0.14459,"13.0-13.1":0.00224,"13.2":0.02354,"13.3":0.00785,"13.4-13.7":0.03362,"14.0-14.4":0.07734,"14.5-14.8":0.08742,"15.0-15.1":0.04371,"15.2-15.3":0.04707,"15.4":0.0538,"15.5":0.06501,"15.6-15.8":0.59628,"16.0":0.11993,"16.1":0.25443,"16.2":0.12777,"16.3":0.21408,"16.4":0.05044,"16.5":0.09079,"16.6-16.7":0.74423,"17.0":0.06725,"17.1":0.10872,"17.2":0.10536,"17.3":0.15804,"17.4":0.39565,"17.5":7.24505,"17.6":0.05604,"18.0":0.07397},P:{"4":0.02039,"20":0.0102,"21":0.05099,"22":0.08158,"23":0.08158,"24":0.06118,"25":2.3861,_:"5.0-5.4 8.2 9.2 10.1 12.0 15.0","6.2-6.4":0.0102,"7.2-7.4":0.07138,"11.1-11.2":0.04079,"13.0":0.02039,"14.0":0.0102,"16.0":0.03059,"17.0":0.0102,"18.0":0.0102,"19.0":0.04079},I:{"0":0.01972,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.30346,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0034,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":53.48256},R:{_:"0"},M:{"0":0.25069},Q:{_:"14.9"},O:{"0":0.04618},H:{"0":0}}; 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..c795a76 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GU.js @@ -0,0 +1 @@ +module.exports={C:{"78":0.02838,"91":0.00405,"115":0.0527,"122":0.01622,"124":0.00811,"125":0.00405,"126":0.01216,"127":0.92837,"128":1.34998,_:"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 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 123 129 130 131 3.5 3.6"},D:{"58":0.00405,"65":0.00405,"75":0.00405,"79":0.00405,"81":0.00405,"84":0.00405,"86":0.00405,"87":0.02838,"91":0.00405,"93":0.01622,"95":0.00405,"98":0.04865,"99":0.02027,"102":0.00405,"103":0.20675,"107":0.01216,"109":0.67702,"113":0.00405,"114":0.00405,"115":0.00405,"116":0.11757,"117":0.00405,"118":0.00405,"119":0.08919,"120":0.0973,"121":0.06486,"122":0.04865,"123":0.06081,"124":0.0973,"125":0.62837,"126":15.47412,"127":1.73511,"128":0.04459,_:"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 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 76 77 78 80 83 85 88 89 90 92 94 96 97 100 101 104 105 106 108 110 111 112 129 130"},F:{"83":0.00811,"95":0.00405,"109":0.37297,"110":0.01216,"111":0.21486,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00811,"92":0.00405,"98":0.00405,"100":0.00405,"109":0.09324,"110":0.00405,"118":0.00811,"120":0.00405,"121":0.00405,"122":0.00405,"123":0.00811,"124":0.08108,"125":0.06892,"126":5.39182,"127":0.69729,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 99 101 102 103 104 105 106 107 108 111 112 113 114 115 116 117 119"},E:{"14":0.01622,"15":0.00811,_:"0 4 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 10.1 11.1","9.1":0.00405,"12.1":0.00405,"13.1":0.18243,"14.1":0.08919,"15.1":0.06486,"15.2-15.3":0.17432,"15.4":0.02027,"15.5":0.03649,"15.6":0.49864,"16.0":0.05676,"16.1":0.0973,"16.2":0.15811,"16.3":0.2554,"16.4":0.06486,"16.5":0.2554,"16.6":0.89999,"17.0":0.0973,"17.1":0.26756,"17.2":0.12973,"17.3":0.19054,"17.4":0.5027,"17.5":6.06478,"17.6":0.02838,"18.0":0.00405},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00675,"5.0-5.1":0.00337,"6.0-6.1":0.02024,"7.0-7.1":0.02024,"8.1-8.4":0,"9.0-9.2":0.01686,"9.3":0.06745,"10.0-10.2":0.01349,"10.3":0.11804,"11.0-11.2":0.31027,"11.3-11.4":0.03373,"12.0-12.1":0.02361,"12.2-12.5":0.43506,"13.0-13.1":0.00675,"13.2":0.07082,"13.3":0.02361,"13.4-13.7":0.10118,"14.0-14.4":0.23271,"14.5-14.8":0.26306,"15.0-15.1":0.13153,"15.2-15.3":0.14165,"15.4":0.16188,"15.5":0.19561,"15.6-15.8":1.79419,"16.0":0.36086,"16.1":0.76557,"16.2":0.38447,"16.3":0.64416,"16.4":0.15176,"16.5":0.27318,"16.6-16.7":2.23937,"17.0":0.20235,"17.1":0.32714,"17.2":0.31702,"17.3":0.47553,"17.4":1.19051,"17.5":21.80012,"17.6":0.16863,"18.0":0.22259},P:{"4":0.42509,"20":0.01063,"21":0.03188,"22":0.15941,"23":0.20192,"24":0.07439,"25":2.08296,"5.0-5.4":0.03188,_:"6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0","16.0":0.01063,"19.0":0.01063},I:{"0":0.01185,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.06542,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00811,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":21.84259},R:{_:"0"},M:{"0":0.38656},Q:{_:"14.9"},O:{"0":0.07731},H:{"0":0}}; 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..feb5995 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GW.js @@ -0,0 +1 @@ +module.exports={C:{"115":0.04552,"124":0.00455,"127":0.3414,"128":0.31864,_:"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 112 113 114 116 117 118 119 120 121 122 123 125 126 129 130 131 3.5 3.6"},D:{"11":0.01821,"46":0.00455,"54":0.00455,"58":0.0091,"64":0.00455,"68":0.00455,"79":0.02731,"80":0.00455,"81":0.0091,"83":0.04097,"88":0.0091,"103":0.01366,"106":0.16387,"109":8.16629,"110":0.00455,"111":0.00455,"112":0.01821,"114":0.00455,"116":0.00455,"119":0.01366,"120":0.02276,"121":0.00455,"122":0.00455,"123":0.0091,"124":0.01821,"125":0.10925,"126":14.98063,"127":1.707,_:"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 47 48 49 50 51 52 53 55 56 57 59 60 61 62 63 65 66 67 69 70 71 72 73 74 75 76 77 78 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 107 108 113 115 117 118 128 129 130"},F:{"95":0.00455,"109":0.00455,"111":0.20029,_:"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 96 97 98 99 100 101 102 103 104 105 106 107 108 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0091,"84":0.00455,"92":0.00455,"100":0.00455,"109":0.15477,"119":0.01821,"121":0.0091,"122":0.57355,"123":0.0091,"124":0.09104,"125":0.52348,"126":10.96122,"127":1.08338,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 120"},E:{_:"0 4 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.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.3 17.6 18.0","15.6":0.05007,"16.6":0.01366,"17.4":0.01366,"17.5":0.05007},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00106,"5.0-5.1":0.00053,"6.0-6.1":0.00319,"7.0-7.1":0.00319,"8.1-8.4":0,"9.0-9.2":0.00266,"9.3":0.01062,"10.0-10.2":0.00212,"10.3":0.01859,"11.0-11.2":0.04886,"11.3-11.4":0.00531,"12.0-12.1":0.00372,"12.2-12.5":0.06851,"13.0-13.1":0.00106,"13.2":0.01115,"13.3":0.00372,"13.4-13.7":0.01593,"14.0-14.4":0.03664,"14.5-14.8":0.04142,"15.0-15.1":0.02071,"15.2-15.3":0.02231,"15.4":0.02549,"15.5":0.0308,"15.6-15.8":0.28254,"16.0":0.05683,"16.1":0.12056,"16.2":0.06054,"16.3":0.10144,"16.4":0.0239,"16.5":0.04302,"16.6-16.7":0.35264,"17.0":0.03186,"17.1":0.05152,"17.2":0.04992,"17.3":0.07488,"17.4":0.18747,"17.5":3.43292,"17.6":0.02655,"18.0":0.03505},P:{"4":0.15524,"20":0.0207,"21":0.0621,"22":0.0414,"23":0.0207,"24":0.0414,"25":0.16559,"5.0-5.4":0.01035,"6.2-6.4":0.33118,"7.2-7.4":0.14489,_:"8.2 10.1 11.1-11.2 15.0 16.0 17.0 18.0","9.2":0.01035,"12.0":0.05175,"13.0":0.01035,"14.0":0.01035,"19.0":0.03105},I:{"0":0.00543,"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.00001},K:{"0":0.68713,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00455,_:"6 7 8 9 10 5.5"},S:{"2.5":0.2669,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":52.1614},R:{_:"0"},M:{"0":0.01089},Q:{_:"14.9"},O:{"0":0.02724},H:{"0":0.07}}; 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..d5283c0 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GY.js @@ -0,0 +1 @@ +module.exports={C:{"107":0.00281,"110":0.00842,"113":0.00281,"115":0.05053,"124":0.00281,"125":0.02526,"126":0.02246,"127":0.28351,"128":0.39017,_:"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 108 109 111 112 114 116 117 118 119 120 121 122 123 129 130 131 3.5 3.6"},D:{"11":0.00281,"39":0.00281,"40":0.00281,"49":0.00281,"51":0.00281,"53":0.00281,"54":0.01123,"55":0.00281,"58":0.00281,"59":0.00281,"60":0.00281,"65":0.00281,"66":0.00281,"69":0.05895,"70":0.00281,"75":0.00842,"76":0.01965,"79":0.14316,"80":0.00281,"81":0.01684,"83":0.01684,"84":0.00281,"85":0.00281,"86":0.01404,"87":0.05333,"89":0.00281,"91":0.00281,"93":0.49684,"94":0.00561,"95":0.00281,"97":0.00281,"98":0.02526,"101":0.00281,"102":0.00281,"103":0.14596,"105":0.01123,"107":0.01123,"108":0.01404,"109":0.22456,"110":0.01965,"111":0.01684,"112":0.01404,"114":0.01684,"115":0.01965,"116":0.03368,"117":0.01123,"118":0.02246,"119":0.17123,"120":0.02807,"121":0.03649,"122":0.12912,"123":0.04772,"124":0.0814,"125":0.2807,"126":11.66589,"127":1.11719,"128":0.00842,_:"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 41 42 43 44 45 46 47 48 50 52 56 57 61 62 63 64 67 68 71 72 73 74 77 78 88 90 92 96 99 100 104 106 113 129 130"},F:{"36":0.00281,"83":0.1207,"95":0.01404,"109":0.32281,"110":0.01965,"111":0.61473,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00281,"14":0.02807,"17":0.00281,"18":0.00842,"92":0.01123,"100":0.01684,"109":0.00842,"110":0.00281,"113":0.00281,"114":0.00281,"119":0.00281,"120":0.00561,"121":0.01123,"122":0.00842,"123":0.01123,"124":0.0393,"125":0.08982,"126":4.50804,"127":0.42666,_:"13 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 111 112 115 116 117 118"},E:{"14":0.00842,_:"0 4 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 15.4 18.0","12.1":0.00281,"13.1":0.00281,"14.1":0.00561,"15.1":0.00281,"15.2-15.3":0.00281,"15.5":0.00561,"15.6":0.05614,"16.0":0.00842,"16.1":0.00281,"16.2":0.00281,"16.3":0.01404,"16.4":0.00281,"16.5":0.00281,"16.6":0.15158,"17.0":0.00561,"17.1":0.01123,"17.2":0.00842,"17.3":0.01404,"17.4":0.01404,"17.5":2.33262,"17.6":0.02246},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00352,"5.0-5.1":0.00176,"6.0-6.1":0.01057,"7.0-7.1":0.01057,"8.1-8.4":0,"9.0-9.2":0.00881,"9.3":0.03525,"10.0-10.2":0.00705,"10.3":0.06168,"11.0-11.2":0.16213,"11.3-11.4":0.01762,"12.0-12.1":0.01234,"12.2-12.5":0.22733,"13.0-13.1":0.00352,"13.2":0.03701,"13.3":0.01234,"13.4-13.7":0.05287,"14.0-14.4":0.1216,"14.5-14.8":0.13746,"15.0-15.1":0.06873,"15.2-15.3":0.07402,"15.4":0.08459,"15.5":0.10221,"15.6-15.8":0.93754,"16.0":0.18856,"16.1":0.40004,"16.2":0.2009,"16.3":0.3366,"16.4":0.0793,"16.5":0.14275,"16.6-16.7":1.17016,"17.0":0.10574,"17.1":0.17094,"17.2":0.16565,"17.3":0.24848,"17.4":0.62209,"17.5":11.39141,"17.6":0.08811,"18.0":0.11631},P:{"4":0.09793,"20":0.02176,"21":0.08705,"22":0.28292,"23":0.09793,"24":0.14146,"25":4.24375,"5.0-5.4":0.01088,_:"6.2-6.4 8.2 9.2 10.1 12.0 14.0 17.0","7.2-7.4":0.52231,"11.1-11.2":0.01088,"13.0":0.01088,"15.0":0.01088,"16.0":0.01088,"18.0":0.01088,"19.0":0.1197},I:{"0":0.02867,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":1.63281,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.00281,_:"6 7 8 9 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":48.50764},R:{_:"0"},M:{"0":0.11509},Q:{"14.9":0.03597},O:{"0":0.28772},H:{"0":0}}; 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..8ed3fc5 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/HK.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.0047,"52":0.00941,"72":0.0047,"78":0.0047,"81":0.0047,"103":0.0047,"109":0.0047,"111":0.0047,"115":1.73541,"117":0.0047,"118":0.07055,"123":0.0047,"124":0.0047,"125":0.0047,"126":0.01881,"127":0.32451,"128":0.50792,_:"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 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 110 112 113 114 116 119 120 121 122 129 130 131 3.5 3.6"},D:{"26":0.0047,"30":0.0047,"34":0.04703,"38":0.12228,"49":0.02352,"53":0.01411,"55":0.0047,"56":0.0047,"58":0.00941,"61":0.04703,"65":0.0047,"67":0.01411,"68":0.0047,"70":0.0047,"72":0.00941,"73":0.0047,"74":0.04703,"75":0.02352,"76":0.0047,"78":0.02352,"79":0.59258,"80":0.03292,"81":0.03292,"83":0.03762,"84":0.0047,"85":0.0047,"86":0.03762,"87":0.50322,"88":0.0047,"89":0.01411,"90":0.01411,"91":0.06114,"92":0.00941,"94":0.28688,"95":0.02822,"96":0.00941,"97":0.02352,"98":0.02822,"99":0.06584,"100":0.00941,"101":0.02822,"102":0.01881,"103":0.09876,"104":0.01881,"105":0.00941,"106":0.01411,"107":0.04233,"108":0.03762,"109":1.30743,"110":0.01411,"111":0.03762,"112":0.1552,"113":0.05644,"114":0.09876,"115":0.02352,"116":1.78244,"117":0.05644,"118":0.04703,"119":0.11758,"120":0.20223,"121":0.20693,"122":0.14579,"123":0.21164,"124":0.32451,"125":0.63961,"126":15.63748,"127":1.70249,"128":0.05644,"129":0.00941,_:"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 31 32 33 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 57 59 60 62 63 64 66 69 71 77 93 130"},F:{"36":0.03762,"46":0.14109,"83":0.01881,"95":0.04233,"102":1.61313,"109":0.02822,"110":0.0047,"111":0.06584,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0047,"92":0.00941,"100":0.0047,"108":0.00941,"109":0.12228,"110":0.0047,"111":0.0047,"112":0.00941,"113":0.01881,"114":0.01881,"115":0.01411,"116":0.00941,"117":0.02822,"118":0.00941,"119":0.01881,"120":0.03762,"121":0.01881,"122":0.04233,"123":0.02822,"124":0.05173,"125":0.13639,"126":3.92701,"127":0.49852,_:"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 101 102 103 104 105 106 107"},E:{"8":0.0047,"12":0.0047,"13":0.01881,"14":0.08936,"15":0.02822,_:"0 4 5 6 7 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.01881,"13.1":0.07995,"14.1":0.20693,"15.1":0.02822,"15.2-15.3":0.02352,"15.4":0.11287,"15.5":0.11758,"15.6":0.6255,"16.0":0.05173,"16.1":0.09406,"16.2":0.08936,"16.3":0.26337,"16.4":0.05173,"16.5":0.09876,"16.6":0.76189,"17.0":0.03292,"17.1":0.08465,"17.2":0.06584,"17.3":0.11758,"17.4":0.25396,"17.5":4.41612,"17.6":0.01411,"18.0":0.01881},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0038,"5.0-5.1":0.0019,"6.0-6.1":0.01139,"7.0-7.1":0.01139,"8.1-8.4":0,"9.0-9.2":0.00949,"9.3":0.03796,"10.0-10.2":0.00759,"10.3":0.06643,"11.0-11.2":0.17461,"11.3-11.4":0.01898,"12.0-12.1":0.01329,"12.2-12.5":0.24483,"13.0-13.1":0.0038,"13.2":0.03986,"13.3":0.01329,"13.4-13.7":0.05694,"14.0-14.4":0.13096,"14.5-14.8":0.14804,"15.0-15.1":0.07402,"15.2-15.3":0.07971,"15.4":0.0911,"15.5":0.11008,"15.6-15.8":1.00969,"16.0":0.20308,"16.1":0.43083,"16.2":0.21636,"16.3":0.3625,"16.4":0.08541,"16.5":0.15373,"16.6-16.7":1.26022,"17.0":0.11387,"17.1":0.1841,"17.2":0.1784,"17.3":0.26761,"17.4":0.66996,"17.5":12.26812,"17.6":0.0949,"18.0":0.12526},P:{"4":1.05149,"20":0.02261,"21":0.10176,"22":0.06784,"23":0.10176,"24":0.11306,"25":3.85547,"5.0-5.4":0.21482,"6.2-6.4":0.12437,"7.2-7.4":0.01131,_:"8.2 9.2 10.1 11.1-11.2 12.0 16.0","13.0":0.02261,"14.0":0.01131,"15.0":0.01131,"17.0":0.04523,"18.0":0.01131,"19.0":0.01131},I:{"0":0.10557,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00006,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00018},K:{"0":0.09005,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.09809,"11":0.58855,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":28.57443},R:{_:"0"},M:{"0":0.42376},Q:{"14.9":0.20129},O:{"0":0.41317},H:{"0":0}}; 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..1861491 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/HN.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.07133,"105":0.00375,"107":0.00375,"108":0.01126,"109":0.00375,"111":0.00375,"115":0.12013,"118":0.00375,"121":0.00751,"122":0.00751,"123":0.02252,"124":0.00751,"125":0.00751,"126":0.01502,"127":0.31534,"128":0.49177,"129":0.00375,_:"2 3 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 106 110 112 113 114 116 117 119 120 130 131 3.5 3.6"},D:{"38":0.00375,"42":0.00375,"47":0.01877,"49":0.00751,"55":0.00375,"69":0.01126,"70":0.00751,"73":0.01126,"74":0.06757,"75":0.00751,"76":0.01502,"77":0.00375,"78":0.00375,"79":0.08259,"81":0.01502,"83":0.01877,"84":0.00375,"85":0.00375,"86":0.00375,"87":0.05631,"88":0.01126,"89":0.00375,"90":0.00375,"91":0.00375,"93":0.06382,"94":0.07508,"95":0.00375,"96":0.0488,"97":0.01502,"98":0.01877,"99":0.01877,"100":0.00375,"101":0.00375,"102":0.01126,"103":0.09385,"104":0.00375,"105":0.02628,"106":0.01126,"107":0.01126,"108":0.37165,"109":1.61797,"110":0.01126,"111":0.01877,"112":0.00375,"113":0.00375,"114":0.01126,"115":0.01502,"116":0.05631,"117":0.01502,"118":0.01126,"119":0.02628,"120":0.10887,"121":0.07883,"122":0.0901,"123":0.15391,"124":0.14641,"125":0.32284,"126":17.52367,"127":2.26742,"128":0.00375,_:"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 43 44 45 46 48 50 51 52 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 71 72 80 92 129 130"},F:{"83":0.03003,"86":0.00375,"95":0.03754,"102":0.00375,"109":1.10368,"110":0.00751,"111":0.73578,_:"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 84 85 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00375,"18":0.00751,"88":0.00375,"92":0.03003,"100":0.00375,"101":0.01126,"105":0.00375,"109":0.04129,"112":0.00751,"113":0.00375,"114":0.00375,"117":0.00375,"118":0.00375,"119":0.00751,"120":0.01502,"121":0.02252,"122":0.01877,"123":0.01126,"124":0.06006,"125":0.15391,"126":5.02285,"127":0.72452,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 89 90 91 93 94 95 96 97 98 99 102 103 104 106 107 108 110 111 115 116"},E:{"14":0.00375,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1","5.1":0.01502,"13.1":0.01877,"14.1":0.01502,"15.1":0.00375,"15.2-15.3":0.00375,"15.4":0.00751,"15.5":0.00375,"15.6":0.05256,"16.0":0.00375,"16.1":0.01502,"16.2":0.01502,"16.3":0.02252,"16.4":0.00375,"16.5":0.01877,"16.6":0.07883,"17.0":0.01126,"17.1":0.01877,"17.2":0.02252,"17.3":0.01877,"17.4":0.04505,"17.5":0.56685,"17.6":0.00375,"18.0":0.03754},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00175,"5.0-5.1":0.00087,"6.0-6.1":0.00524,"7.0-7.1":0.00524,"8.1-8.4":0,"9.0-9.2":0.00437,"9.3":0.01746,"10.0-10.2":0.00349,"10.3":0.03056,"11.0-11.2":0.08033,"11.3-11.4":0.00873,"12.0-12.1":0.00611,"12.2-12.5":0.11264,"13.0-13.1":0.00175,"13.2":0.01834,"13.3":0.00611,"13.4-13.7":0.0262,"14.0-14.4":0.06025,"14.5-14.8":0.06811,"15.0-15.1":0.03405,"15.2-15.3":0.03667,"15.4":0.04191,"15.5":0.05065,"15.6-15.8":0.46454,"16.0":0.09343,"16.1":0.19821,"16.2":0.09954,"16.3":0.16678,"16.4":0.03929,"16.5":0.07073,"16.6-16.7":0.5798,"17.0":0.05239,"17.1":0.0847,"17.2":0.08208,"17.3":0.12312,"17.4":0.30824,"17.5":5.64431,"17.6":0.04366,"18.0":0.05763},P:{"4":0.15633,"20":0.03127,"21":0.05211,"22":0.12507,"23":0.08338,"24":0.1876,"25":2.00106,"5.0-5.4":0.03127,"6.2-6.4":0.02084,"7.2-7.4":0.12507,_:"8.2 10.1 12.0","9.2":0.01042,"11.1-11.2":0.04169,"13.0":0.01042,"14.0":0.01042,"15.0":0.01042,"16.0":0.04169,"17.0":0.01042,"18.0":0.01042,"19.0":0.03127},I:{"0":0.06224,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00011},K:{"0":0.24359,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00375,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":52.89194},R:{_:"0"},M:{"0":0.14366},Q:{_:"14.9"},O:{"0":0.05621},H:{"0":0}}; 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..18e508d --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/HR.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.02668,"56":0.00381,"78":0.01906,"88":0.00762,"91":0.00381,"99":0.00381,"102":0.00381,"103":0.01143,"105":0.00381,"106":0.00381,"109":0.00381,"111":0.03049,"112":0.00381,"113":0.01143,"115":0.43445,"117":0.00381,"120":0.01143,"121":0.00762,"122":0.00381,"123":0.00762,"124":0.00762,"125":0.01906,"126":0.06479,"127":1.10519,"128":1.68065,"129":0.01143,_:"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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 92 93 94 95 96 97 98 100 101 104 107 108 110 114 116 118 119 130 131 3.5 3.6"},D:{"41":0.00381,"43":0.00381,"44":0.00381,"47":0.00762,"49":0.01906,"51":0.00381,"52":0.00381,"66":0.00381,"69":0.00381,"70":0.00381,"75":0.00762,"76":0.00381,"77":0.01143,"79":0.22104,"80":0.00381,"81":0.01143,"83":0.00381,"84":0.00381,"85":0.00381,"86":0.00762,"87":0.14863,"88":0.01143,"89":0.00381,"90":0.01143,"91":0.01906,"92":0.00762,"93":0.01524,"94":0.06098,"95":0.00381,"96":0.00762,"97":0.00762,"98":0.00381,"99":0.01524,"100":0.00381,"101":0.01524,"102":0.00762,"103":0.06479,"104":0.01524,"105":0.01906,"106":0.06098,"107":0.00762,"108":0.01906,"109":1.71876,"110":0.01143,"111":0.01143,"112":0.01143,"113":0.00381,"114":0.01524,"115":0.00381,"116":0.10671,"117":0.01143,"118":0.02668,"119":0.1029,"120":0.14101,"121":0.04573,"122":0.08384,"123":0.09528,"124":0.14482,"125":0.48019,"126":19.99632,"127":2.3895,"128":0.01143,_:"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 42 45 46 48 50 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 71 72 73 74 78 129 130"},F:{"36":0.00381,"46":0.02668,"83":0.02668,"84":0.01143,"85":0.00381,"95":0.06098,"104":0.00381,"109":0.48019,"110":0.01524,"111":0.70504,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00381,"105":0.00381,"107":0.00381,"109":0.05717,"110":0.00381,"111":0.00381,"112":0.00381,"114":0.00381,"115":0.00381,"117":0.00381,"118":0.00762,"119":0.00381,"120":0.01143,"121":0.00381,"122":0.00762,"123":0.02668,"124":0.01906,"125":0.03811,"126":2.46191,"127":0.34299,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 106 108 113 116"},E:{"9":0.00381,"14":0.01906,"15":0.00762,_:"0 4 5 6 7 8 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.2-15.3","12.1":0.00381,"13.1":0.02668,"14.1":0.08003,"15.1":0.00381,"15.4":0.00381,"15.5":0.01906,"15.6":0.14863,"16.0":0.02668,"16.1":0.02668,"16.2":0.02287,"16.3":0.03811,"16.4":0.01524,"16.5":0.03049,"16.6":0.18293,"17.0":0.01524,"17.1":0.04954,"17.2":0.06098,"17.3":0.03049,"17.4":0.08003,"17.5":1.05565,"17.6":0.01143,"18.0":0.01143},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00236,"5.0-5.1":0.00118,"6.0-6.1":0.00707,"7.0-7.1":0.00707,"8.1-8.4":0,"9.0-9.2":0.00589,"9.3":0.02356,"10.0-10.2":0.00471,"10.3":0.04122,"11.0-11.2":0.10835,"11.3-11.4":0.01178,"12.0-12.1":0.00824,"12.2-12.5":0.15193,"13.0-13.1":0.00236,"13.2":0.02473,"13.3":0.00824,"13.4-13.7":0.03533,"14.0-14.4":0.08127,"14.5-14.8":0.09187,"15.0-15.1":0.04593,"15.2-15.3":0.04947,"15.4":0.05653,"15.5":0.06831,"15.6-15.8":0.62657,"16.0":0.12602,"16.1":0.26735,"16.2":0.13427,"16.3":0.22495,"16.4":0.053,"16.5":0.0954,"16.6-16.7":0.78204,"17.0":0.07067,"17.1":0.11424,"17.2":0.11071,"17.3":0.16607,"17.4":0.41575,"17.5":7.61308,"17.6":0.05889,"18.0":0.07773},P:{"4":0.34381,"20":0.02084,"21":0.02084,"22":0.05209,"23":0.10418,"24":0.08335,"25":3.63601,"5.0-5.4":0.05209,"6.2-6.4":0.06251,_:"7.2-7.4 8.2 9.2 12.0 13.0","10.1":0.01042,"11.1-11.2":0.01042,"14.0":0.01042,"15.0":0.01042,"16.0":0.01042,"17.0":0.01042,"18.0":0.01042,"19.0":0.03126},I:{"0":0.04934,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":0.62509,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01143,"9":0.00381,"10":0.00381,"11":0.03811,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":44.79835},R:{_:"0"},M:{"0":0.52607},Q:{_:"14.9"},O:{"0":0.0557},H:{"0":0}}; 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..feabf60 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/HT.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00236,"54":0.00118,"77":0.00354,"88":0.00707,"108":0.00118,"109":0.00118,"115":0.01415,"116":0.00118,"124":0.00354,"126":0.00118,"127":0.0507,"128":0.08607,_:"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 68 69 70 71 72 73 74 75 76 78 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 110 111 112 113 114 117 118 119 120 121 122 123 125 129 130 131 3.5 3.6"},D:{"11":0.00472,"36":0.00118,"41":0.00118,"49":0.00236,"50":0.00118,"55":0.00118,"58":0.00118,"59":0.00118,"60":0.00118,"63":0.00118,"64":0.00118,"66":0.00118,"68":0.00118,"69":0.00118,"70":0.0059,"71":0.00118,"74":0.00825,"75":0.00236,"76":0.0448,"77":0.00118,"78":0.00236,"79":0.0059,"80":0.00236,"81":0.01886,"83":0.01297,"84":0.00236,"85":0.00118,"87":0.01297,"88":0.01533,"89":0.00118,"90":0.00236,"91":0.00236,"92":0.00707,"93":0.05188,"94":0.00707,"95":0.01297,"96":0.00236,"97":0.00236,"98":0.00118,"99":0.00943,"100":0.00118,"101":0.00236,"102":0.01179,"103":0.05895,"104":0.02948,"105":0.01179,"106":0.00472,"107":0.00236,"108":0.04362,"109":0.24641,"110":0.01297,"111":0.08607,"112":0.00236,"113":0.00825,"114":0.07428,"115":0.00354,"116":0.04009,"117":0.00472,"118":0.00472,"119":0.04362,"120":0.02358,"121":0.00825,"122":0.04716,"123":0.0448,"124":0.0507,"125":0.15681,"126":2.27075,"127":0.25231,"128":0.00236,_:"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 37 38 39 40 42 43 44 45 46 47 48 51 52 53 54 56 57 61 62 65 67 72 73 86 129 130"},F:{"83":0.00472,"84":0.0224,"95":0.00354,"97":0.00118,"109":0.00825,"110":0.00472,"111":0.0955,_:"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 85 86 87 88 89 90 91 92 93 94 96 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00707,"13":0.00236,"14":0.00236,"15":0.00354,"16":0.0059,"17":0.00472,"18":0.01179,"84":0.00354,"89":0.00236,"90":0.00118,"91":0.00118,"92":0.01415,"100":0.00118,"106":0.00118,"108":0.00236,"109":0.04244,"112":0.00118,"113":0.00354,"114":0.00354,"116":0.00118,"117":0.00118,"118":0.00118,"119":0.00236,"120":0.00943,"121":0.00943,"122":0.00707,"123":0.00236,"124":0.01179,"125":0.02948,"126":0.9432,"127":0.12497,_:"79 80 81 83 85 86 87 88 93 94 95 96 97 98 99 101 102 103 104 105 107 110 111 115"},E:{"13":0.00118,"14":0.03419,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.2-15.3 16.0","11.1":0.00354,"12.1":0.00236,"13.1":0.00236,"14.1":0.01179,"15.1":0.00118,"15.4":0.00472,"15.5":0.00354,"15.6":0.04362,"16.1":0.00118,"16.2":0.00707,"16.3":0.00236,"16.4":0.00236,"16.5":0.00354,"16.6":0.01533,"17.0":0.00236,"17.1":0.00236,"17.2":0.00236,"17.3":0.00236,"17.4":0.01533,"17.5":0.09668,"17.6":0.00118,"18.0":0.00118},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00183,"5.0-5.1":0.00092,"6.0-6.1":0.0055,"7.0-7.1":0.0055,"8.1-8.4":0,"9.0-9.2":0.00459,"9.3":0.01835,"10.0-10.2":0.00367,"10.3":0.03211,"11.0-11.2":0.0844,"11.3-11.4":0.00917,"12.0-12.1":0.00642,"12.2-12.5":0.11834,"13.0-13.1":0.00183,"13.2":0.01927,"13.3":0.00642,"13.4-13.7":0.02752,"14.0-14.4":0.0633,"14.5-14.8":0.07156,"15.0-15.1":0.03578,"15.2-15.3":0.03853,"15.4":0.04403,"15.5":0.05321,"15.6-15.8":0.48805,"16.0":0.09816,"16.1":0.20825,"16.2":0.10458,"16.3":0.17522,"16.4":0.04128,"16.5":0.07431,"16.6-16.7":0.60914,"17.0":0.05504,"17.1":0.08899,"17.2":0.08623,"17.3":0.12935,"17.4":0.32384,"17.5":5.92997,"17.6":0.04587,"18.0":0.06055},P:{"4":0.19757,"20":0.0208,"21":0.08319,"22":0.10398,"23":0.12478,"24":0.11438,"25":0.59271,"5.0-5.4":0.04159,"6.2-6.4":0.0208,"7.2-7.4":0.09359,"8.2":0.0208,"9.2":0.17677,_:"10.1","11.1-11.2":0.33275,"12.0":0.0104,"13.0":0.20797,"14.0":0.19757,"15.0":0.0104,"16.0":0.27036,"17.0":0.0312,"18.0":0.04159,"19.0":0.08319},I:{"0":0.00879,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.22935,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0059,_:"6 7 8 9 10 5.5"},S:{"2.5":0.00882,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":81.75664},R:{_:"0"},M:{"0":0.06175},Q:{_:"14.9"},O:{"0":0.08821},H:{"0":0}}; 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..126d4b5 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/HU.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.04199,"61":0.003,"68":0.003,"78":0.009,"83":0.006,"88":0.003,"89":0.006,"91":0.006,"97":0.003,"99":0.003,"102":0.003,"103":0.003,"110":0.003,"111":0.003,"112":0.006,"113":0.006,"114":0.003,"115":0.56081,"118":0.003,"119":0.003,"120":0.86071,"121":0.006,"122":0.003,"123":0.015,"124":0.009,"125":0.012,"126":0.03299,"127":0.98367,"128":1.75442,"129":0.003,"130":0.003,_:"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 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 87 90 92 93 94 95 96 98 100 101 104 105 106 107 108 109 116 117 131 3.5 3.6"},D:{"34":0.009,"38":0.015,"49":0.006,"53":0.003,"70":0.003,"73":0.006,"76":0.003,"79":0.13496,"81":0.003,"83":0.01799,"86":0.003,"87":0.07498,"88":0.009,"89":0.003,"90":0.003,"91":0.006,"94":0.02399,"95":0.003,"96":0.003,"97":0.26991,"98":0.006,"99":0.009,"100":0.003,"102":0.006,"103":0.02699,"104":0.009,"105":0.003,"106":0.006,"107":0.006,"108":0.006,"109":1.27458,"110":0.003,"111":0.006,"112":0.012,"113":0.02399,"114":0.03599,"115":0.006,"116":0.04499,"117":0.003,"118":0.01799,"119":0.05098,"120":0.23992,"121":0.03599,"122":0.06298,"123":0.03899,"124":0.11096,"125":0.3029,"126":13.25858,"127":1.66744,"128":0.003,_:"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 47 48 50 51 52 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 74 75 77 78 80 84 85 92 93 101 129 130"},F:{"36":0.003,"46":0.006,"79":0.003,"83":0.02099,"85":0.003,"86":0.003,"95":0.09897,"106":0.11996,"109":0.23692,"110":0.015,"111":0.52483,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 80 81 82 84 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.003,"97":0.003,"103":0.003,"107":0.003,"109":0.05098,"110":0.003,"119":0.003,"120":0.41986,"121":0.003,"122":0.003,"123":0.006,"124":0.009,"125":0.05398,"126":2.0873,"127":0.27291,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 98 99 100 101 102 104 105 106 108 111 112 113 114 115 116 117 118"},E:{"14":0.006,"15":0.003,_:"0 4 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.006,"13.1":0.012,"14.1":0.02699,"15.1":0.003,"15.2-15.3":0.003,"15.4":0.003,"15.5":0.009,"15.6":0.05698,"16.0":0.012,"16.1":0.009,"16.2":0.009,"16.3":0.02099,"16.4":0.003,"16.5":0.012,"16.6":0.08097,"17.0":0.009,"17.1":0.012,"17.2":0.01799,"17.3":0.01799,"17.4":0.04199,"17.5":0.55781,"17.6":0.009,"18.0":0.006},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00159,"5.0-5.1":0.00079,"6.0-6.1":0.00477,"7.0-7.1":0.00477,"8.1-8.4":0,"9.0-9.2":0.00397,"9.3":0.01589,"10.0-10.2":0.00318,"10.3":0.02781,"11.0-11.2":0.0731,"11.3-11.4":0.00795,"12.0-12.1":0.00556,"12.2-12.5":0.10251,"13.0-13.1":0.00159,"13.2":0.01669,"13.3":0.00556,"13.4-13.7":0.02384,"14.0-14.4":0.05483,"14.5-14.8":0.06198,"15.0-15.1":0.03099,"15.2-15.3":0.03337,"15.4":0.03814,"15.5":0.04609,"15.6-15.8":0.42273,"16.0":0.08502,"16.1":0.18038,"16.2":0.09059,"16.3":0.15177,"16.4":0.03576,"16.5":0.06436,"16.6-16.7":0.52762,"17.0":0.04768,"17.1":0.07708,"17.2":0.07469,"17.3":0.11204,"17.4":0.2805,"17.5":5.13638,"17.6":0.03973,"18.0":0.05244},P:{"4":0.16577,"20":0.02072,"21":0.04144,"22":0.07252,"23":0.09325,"24":0.08289,"25":2.54873,"5.0-5.4":0.01036,"6.2-6.4":0.01036,_:"7.2-7.4 8.2 9.2 10.1 12.0 15.0 16.0","11.1-11.2":0.01036,"13.0":0.01036,"14.0":0.01036,"17.0":0.01036,"18.0":0.01036,"19.0":0.02072},I:{"0":0.10465,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00006,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00018},K:{"0":0.37805,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.003,"11":0.03299,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":59.67241},R:{_:"0"},M:{"0":0.24504},Q:{_:"14.9"},O:{"0":0.014},H:{"0":0}}; 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..4e9ae75 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ID.js @@ -0,0 +1 @@ +module.exports={C:{"17":0.00757,"36":0.01893,"52":0.00379,"56":0.00379,"78":0.00757,"86":0.00379,"90":0.00379,"101":0.00379,"105":0.00379,"106":0.00379,"107":0.00379,"108":0.00379,"109":0.00379,"110":0.00379,"112":0.00379,"113":0.04164,"114":0.01136,"115":0.24981,"117":0.00379,"118":0.00379,"119":0.00379,"120":0.00379,"121":0.00757,"122":0.00757,"123":0.01136,"124":0.01136,"125":0.01893,"126":0.04164,"127":0.98032,"128":1.43073,"129":0.02271,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 87 88 89 91 92 93 94 95 96 97 98 99 100 102 103 104 111 116 130 131 3.5 3.6"},D:{"25":0.00379,"56":0.00379,"61":0.00379,"63":0.00379,"66":0.00379,"70":0.00379,"71":0.00379,"72":0.00379,"74":0.00379,"75":0.00379,"77":0.00379,"78":0.00379,"79":0.01136,"80":0.00757,"81":0.00757,"83":0.00379,"84":0.00379,"85":0.00379,"86":0.00379,"87":0.01136,"88":0.00379,"89":0.01136,"90":0.00379,"91":0.00757,"92":0.00757,"93":0.00379,"94":0.00379,"95":0.00379,"96":0.00379,"97":0.00379,"98":0.01893,"99":0.01136,"100":0.02271,"101":0.00757,"102":0.00379,"103":0.03028,"104":0.01514,"105":0.00757,"106":0.01514,"107":0.01136,"108":0.01514,"109":1.33989,"110":0.00757,"111":0.01893,"112":0.03028,"113":0.01893,"114":0.03785,"115":0.01136,"116":0.10598,"117":0.10598,"118":0.02271,"119":0.04542,"120":0.0757,"121":0.04542,"122":0.10977,"123":0.07192,"124":0.17033,"125":0.35201,"126":22.30122,"127":2.6495,"128":0.00757,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 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 57 58 59 60 62 64 65 67 68 69 73 76 129 130"},F:{"83":0.01136,"85":0.00379,"95":0.01893,"109":0.07949,"110":0.00379,"111":0.20818,_:"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 84 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00379,"18":0.00757,"88":0.00379,"89":0.00379,"90":0.00379,"92":0.01136,"100":0.00379,"107":0.00379,"109":0.01893,"113":0.00379,"114":0.00379,"118":0.00379,"119":0.00379,"120":0.00757,"121":0.00379,"122":0.00757,"123":0.00379,"124":0.01514,"125":0.04164,"126":3.09235,"127":0.38607,_:"12 13 15 16 17 79 80 81 83 84 85 86 87 91 93 94 95 96 97 98 99 101 102 103 104 105 106 108 110 111 112 115 116 117"},E:{"13":0.00379,"14":0.01136,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.01514,"12.1":0.00379,"13.1":0.01514,"14.1":0.04542,"15.1":0.01514,"15.2-15.3":0.00757,"15.4":0.00757,"15.5":0.01136,"15.6":0.0757,"16.0":0.00757,"16.1":0.0265,"16.2":0.01136,"16.3":0.02271,"16.4":0.01514,"16.5":0.03785,"16.6":0.06813,"17.0":0.01893,"17.1":0.03028,"17.2":0.03407,"17.3":0.03407,"17.4":0.06813,"17.5":0.405,"17.6":0.00379,"18.0":0.00379},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00126,"5.0-5.1":0.00063,"6.0-6.1":0.00379,"7.0-7.1":0.00379,"8.1-8.4":0,"9.0-9.2":0.00316,"9.3":0.01264,"10.0-10.2":0.00253,"10.3":0.02212,"11.0-11.2":0.05814,"11.3-11.4":0.00632,"12.0-12.1":0.00442,"12.2-12.5":0.08152,"13.0-13.1":0.00126,"13.2":0.01327,"13.3":0.00442,"13.4-13.7":0.01896,"14.0-14.4":0.04361,"14.5-14.8":0.04929,"15.0-15.1":0.02465,"15.2-15.3":0.02654,"15.4":0.03033,"15.5":0.03665,"15.6-15.8":0.3362,"16.0":0.06762,"16.1":0.14346,"16.2":0.07204,"16.3":0.12071,"16.4":0.02844,"16.5":0.05119,"16.6-16.7":0.41962,"17.0":0.03792,"17.1":0.0613,"17.2":0.0594,"17.3":0.08911,"17.4":0.22308,"17.5":4.08501,"17.6":0.0316,"18.0":0.04171},P:{"4":0.03037,"20":0.02025,"21":0.05062,"22":0.10124,"23":0.08099,"24":0.07087,"25":0.99215,_:"5.0-5.4 8.2 10.1 12.0","6.2-6.4":0.02025,"7.2-7.4":0.10124,"9.2":0.01012,"11.1-11.2":0.02025,"13.0":0.01012,"14.0":0.02025,"15.0":0.01012,"16.0":0.02025,"17.0":0.02025,"18.0":0.01012,"19.0":0.02025},I:{"0":0.03715,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.68975,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00397,"9":0.00397,"10":0.00397,"11":0.06756,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":54.13811},R:{_:"0"},M:{"0":0.08078},Q:{_:"14.9"},O:{"0":0.71461},H:{"0":0}}; 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..c1da0e2 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/IE.js @@ -0,0 +1 @@ +module.exports={C:{"36":0.00257,"41":0.01026,"45":0.00257,"48":0.00257,"52":0.00257,"59":0.00257,"65":0.00257,"68":0.00513,"78":0.02053,"85":0.00257,"88":0.00513,"91":0.00257,"102":0.00257,"103":0.0154,"105":0.02823,"107":0.17449,"108":0.00257,"111":0.00257,"113":0.00257,"115":0.21554,"121":0.00257,"122":0.01796,"123":0.00257,"124":0.00513,"125":0.00513,"126":0.03079,"127":0.41569,"128":0.61584,"129":0.00257,_:"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 37 38 39 40 42 43 44 46 47 49 50 51 53 54 55 56 57 58 60 61 62 63 64 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 86 87 89 90 92 93 94 95 96 97 98 99 100 101 104 106 109 110 112 114 116 117 118 119 120 130 131 3.5 3.6"},D:{"37":0.00257,"38":0.00257,"39":0.03336,"40":0.03079,"41":0.03336,"42":0.03079,"43":0.03336,"44":0.03079,"45":0.03336,"46":0.03079,"47":0.03079,"48":0.03079,"49":0.03849,"50":0.03079,"51":0.03336,"52":0.03592,"53":0.03336,"54":0.03336,"55":0.03079,"56":0.03079,"57":0.03079,"58":0.03079,"59":0.03079,"60":0.03079,"62":0.00513,"63":0.00513,"65":0.00513,"66":0.00257,"73":0.00257,"74":0.13856,"75":0.16422,"76":0.00257,"79":0.02566,"80":0.00257,"81":0.03592,"83":0.00257,"85":0.00513,"87":0.02566,"88":0.03079,"89":0.02053,"91":0.17705,"92":0.0077,"93":0.05645,"94":0.01026,"96":0.00513,"97":0.00257,"98":0.0077,"99":0.0154,"102":0.01283,"103":0.04362,"104":0.04106,"105":0.0077,"106":0.02309,"107":0.01026,"108":0.0077,"109":0.39003,"110":0.01283,"111":0.00513,"112":0.00513,"113":0.10264,"114":0.1206,"115":0.0077,"116":0.14626,"117":0.16422,"118":0.02053,"119":0.07698,"120":0.12573,"121":0.03592,"122":0.14626,"123":0.06415,"124":0.18732,"125":1.37024,"126":10.51803,"127":1.22398,"128":0.00513,_:"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 61 64 67 68 69 70 71 72 77 78 84 86 90 95 100 101 129 130"},F:{"46":0.01026,"83":0.01026,"94":0.00513,"95":0.00513,"96":0.00257,"109":0.23094,"110":0.00257,"111":0.17705,_:"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 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 84 85 86 87 88 89 90 91 92 93 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00257,"18":0.00257,"92":0.00257,"107":0.00257,"108":0.00257,"109":0.01283,"110":0.00257,"114":0.00257,"116":0.01026,"117":0.00513,"118":0.00257,"119":0.00257,"120":0.01283,"121":0.00513,"122":0.00513,"123":0.0154,"124":0.02566,"125":0.1437,"126":3.11256,"127":0.36181,_:"12 13 14 15 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 111 112 113 115"},E:{"8":0.00257,"9":0.00257,"13":0.00513,"14":0.136,"15":0.00513,_:"0 4 5 6 7 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.0077,"13.1":0.03849,"14.1":0.07441,"15.1":0.0077,"15.2-15.3":0.0077,"15.4":0.01796,"15.5":0.02566,"15.6":0.21041,"16.0":0.03336,"16.1":0.02309,"16.2":0.03079,"16.3":0.08468,"16.4":0.0154,"16.5":0.03079,"16.6":0.21554,"17.0":0.0154,"17.1":0.05389,"17.2":0.05645,"17.3":0.03592,"17.4":0.08981,"17.5":1.31379,"17.6":0.01026,"18.0":0.0077},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00323,"5.0-5.1":0.00162,"6.0-6.1":0.0097,"7.0-7.1":0.0097,"8.1-8.4":0,"9.0-9.2":0.00809,"9.3":0.03234,"10.0-10.2":0.00647,"10.3":0.0566,"11.0-11.2":0.14877,"11.3-11.4":0.01617,"12.0-12.1":0.01132,"12.2-12.5":0.20861,"13.0-13.1":0.00323,"13.2":0.03396,"13.3":0.01132,"13.4-13.7":0.04851,"14.0-14.4":0.11158,"14.5-14.8":0.12613,"15.0-15.1":0.06307,"15.2-15.3":0.06792,"15.4":0.07762,"15.5":0.09379,"15.6-15.8":0.8603,"16.0":0.17303,"16.1":0.36708,"16.2":0.18435,"16.3":0.30887,"16.4":0.07277,"16.5":0.13099,"16.6-16.7":1.07376,"17.0":0.09703,"17.1":0.15686,"17.2":0.15201,"17.3":0.22801,"17.4":0.57084,"17.5":10.45302,"17.6":0.08086,"18.0":0.10673},P:{"4":0.01042,"20":0.03125,"21":0.05209,"22":0.06251,"23":0.10418,"24":0.08334,"25":2.69817,_:"5.0-5.4 8.2 9.2 10.1 12.0 14.0 15.0 16.0 18.0","6.2-6.4":0.01042,"7.2-7.4":0.01042,"11.1-11.2":0.01042,"13.0":0.01042,"17.0":0.01042,"19.0":0.02084},I:{"0":0.08891,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00015},K:{"0":0.19818,_:"10 11 12 11.1 11.5 12.1"},A:{"7":0.00272,"8":0.00543,"9":0.04075,"11":0.04347,_:"6 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":54.12527},R:{_:"0"},M:{"0":0.50558},Q:{_:"14.9"},O:{"0":0.02231},H:{"0":0.01}}; 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..17245c9 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/IL.js @@ -0,0 +1 @@ +module.exports={C:{"24":0.00287,"25":0.00862,"26":0.02011,"27":0.00287,"28":0.00287,"31":0.00287,"36":0.00287,"51":0.00287,"52":0.00862,"59":0.01149,"66":0.00287,"68":0.00287,"78":0.00287,"88":0.00287,"89":0.00287,"101":0.00287,"102":0.00575,"103":0.00575,"105":0.00287,"107":0.00575,"110":0.00575,"112":0.00287,"113":0.01149,"115":0.16951,"119":0.00575,"120":0.00575,"121":0.00575,"122":0.00287,"123":0.00862,"124":0.00575,"125":0.01149,"126":0.01724,"127":0.36774,"128":0.6177,"129":0.00287,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 29 30 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 53 54 55 56 57 58 60 61 62 63 64 65 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 90 91 92 93 94 95 96 97 98 99 100 104 106 108 109 111 114 116 117 118 130 131 3.5 3.6"},D:{"12":0.00287,"31":0.02586,"32":0.00575,"38":0.01724,"40":0.00287,"41":0.00287,"48":0.00287,"49":0.00287,"50":0.00287,"51":0.00287,"52":0.01724,"55":0.00287,"56":0.00575,"63":0.00287,"65":0.00862,"66":0.06033,"68":0.00575,"69":0.00575,"70":0.00575,"71":0.00287,"72":0.00575,"73":0.00575,"74":0.00862,"75":0.00575,"76":0.00575,"77":0.00287,"78":0.00575,"79":0.0431,"80":0.01437,"81":0.01149,"83":0.01149,"84":0.00575,"85":0.00862,"86":0.01149,"87":0.03448,"88":0.01437,"89":0.00862,"90":0.01149,"91":0.0316,"92":0.00287,"94":0.00862,"95":0.00575,"96":0.00575,"97":0.00287,"98":0.00287,"99":0.00287,"100":0.00862,"101":0.00287,"102":0.00862,"103":0.02011,"104":0.01437,"105":0.00862,"106":0.02011,"107":0.01149,"108":0.03448,"109":0.88776,"110":0.0316,"111":0.02011,"112":0.02011,"113":0.08044,"114":0.08619,"115":0.01149,"116":0.05746,"117":0.01149,"118":0.01724,"119":0.04597,"120":0.06895,"121":0.05746,"122":0.08044,"123":0.08332,"124":0.16089,"125":0.46543,"126":16.18074,"127":1.89331,"128":0.00862,"129":0.00287,_:"4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 33 34 35 36 37 39 42 43 44 45 46 47 53 54 57 58 59 60 61 62 64 67 93 130"},F:{"46":0.00862,"55":0.00287,"78":0.00287,"83":0.01437,"84":0.00287,"95":0.02586,"99":0.00287,"109":0.12641,"110":0.01149,"111":0.27868,_:"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 47 48 49 50 51 52 53 54 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 85 86 87 88 89 90 91 92 93 94 96 97 98 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.00287},B:{"15":0.00287,"17":0.00575,"18":0.00287,"80":0.00287,"81":0.00287,"83":0.00287,"84":0.00287,"85":0.00287,"86":0.00287,"87":0.00287,"88":0.00287,"89":0.00287,"90":0.00287,"92":0.00287,"104":0.00287,"107":0.00287,"108":0.00287,"109":0.02873,"110":0.01724,"111":0.00287,"112":0.00575,"113":0.00287,"114":0.00287,"115":0.00287,"116":0.00287,"117":0.00287,"118":0.00287,"119":0.00862,"120":0.01437,"121":0.01437,"122":0.00862,"123":0.01437,"124":0.0316,"125":0.06321,"126":2.16624,"127":0.29592,_:"12 13 14 16 79 91 93 94 95 96 97 98 99 100 101 102 103 105 106"},E:{"6":0.00287,"7":0.00287,"8":0.12067,"9":0.00287,"13":0.00287,"14":0.02011,"15":0.00287,_:"0 4 5 10 11 12 3.1 3.2 7.1 10.1 12.1","5.1":0.00287,"6.1":0.00575,"9.1":0.00862,"11.1":0.01437,"13.1":0.01437,"14.1":0.04022,"15.1":0.00287,"15.2-15.3":0.02298,"15.4":0.00287,"15.5":0.01724,"15.6":0.07757,"16.0":0.00862,"16.1":0.01724,"16.2":0.00862,"16.3":0.04022,"16.4":0.00575,"16.5":0.01437,"16.6":0.14652,"17.0":0.00575,"17.1":0.01724,"17.2":0.01437,"17.3":0.02873,"17.4":0.03735,"17.5":0.71538,"17.6":0.00287,"18.0":0.00575},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00296,"5.0-5.1":0.00148,"6.0-6.1":0.00889,"7.0-7.1":0.00889,"8.1-8.4":0,"9.0-9.2":0.00741,"9.3":0.02963,"10.0-10.2":0.00593,"10.3":0.05186,"11.0-11.2":0.13632,"11.3-11.4":0.01482,"12.0-12.1":0.01037,"12.2-12.5":0.19114,"13.0-13.1":0.00296,"13.2":0.03112,"13.3":0.01037,"13.4-13.7":0.04445,"14.0-14.4":0.10224,"14.5-14.8":0.11557,"15.0-15.1":0.05779,"15.2-15.3":0.06223,"15.4":0.07112,"15.5":0.08594,"15.6-15.8":0.78827,"16.0":0.15854,"16.1":0.33635,"16.2":0.16891,"16.3":0.28301,"16.4":0.06668,"16.5":0.12002,"16.6-16.7":0.98385,"17.0":0.0889,"17.1":0.14373,"17.2":0.13928,"17.3":0.20892,"17.4":0.52304,"17.5":9.57773,"17.6":0.07409,"18.0":0.09779},P:{"4":0.03094,"20":0.03094,"21":0.06188,"22":0.13406,"23":0.15469,"24":0.15469,"25":6.22878,_:"5.0-5.4 8.2 10.1 12.0","6.2-6.4":0.01031,"7.2-7.4":0.01031,"9.2":0.01031,"11.1-11.2":0.04125,"13.0":0.03094,"14.0":0.03094,"15.0":0.01031,"16.0":0.02063,"17.0":0.03094,"18.0":0.01031,"19.0":0.04125},I:{"0":0.03551,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.33635,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01799,"9":0.006,"10":0.006,"11":0.03897,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":48.66027},R:{_:"0"},M:{"0":0.23519},Q:{_:"14.9"},O:{"0":0.02851},H:{"0":0.02}}; 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..ab9ec00 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/IM.js @@ -0,0 +1 @@ +module.exports={C:{"2":0.00432,"3":0.00432,"4":0.00432,"10":0.00432,"11":0.00432,"12":0.00432,"15":0.00432,"19":0.00432,"20":0.00432,"21":0.00432,"23":0.00432,"28":0.00432,"29":0.00432,"31":0.00432,"34":0.00432,"36":0.00432,"37":0.00432,"38":0.00863,"39":0.00863,"40":0.00863,"41":0.00432,"42":0.00432,"52":0.00432,"78":0.00432,"96":0.00432,"113":0.00432,"115":0.2589,"118":0.00863,"121":0.00432,"123":0.00432,"125":0.11219,"126":0.09925,"127":0.72061,"128":1.51457,"129":0.00863,_:"5 6 7 8 9 13 14 16 17 18 22 24 25 26 27 30 32 33 35 43 44 45 46 47 48 49 50 51 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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 119 120 122 124 130 131","3.5":0.00863,"3.6":0.01726},D:{"4":0.00432,"17":0.00432,"19":0.00432,"20":0.00432,"21":0.00432,"25":0.00432,"26":0.00432,"28":0.00432,"31":0.00863,"32":0.00432,"33":0.00432,"34":0.00432,"36":0.00432,"37":0.00863,"38":0.00432,"39":0.01295,"40":0.01295,"41":0.00863,"42":0.01295,"43":0.02158,"44":0.03021,"45":0.02589,"46":0.02589,"47":0.02589,"51":0.04315,"70":0.03021,"76":0.03021,"77":0.00863,"79":0.01726,"86":0.00432,"91":0.00432,"93":0.00432,"94":0.00432,"95":0.00432,"98":0.03884,"99":0.01295,"101":0.00432,"103":0.09493,"105":0.00432,"108":0.00432,"109":0.5178,"111":0.00432,"112":0.01295,"114":0.00432,"115":0.00432,"116":1.35491,"117":0.01295,"118":0.02589,"119":0.04747,"120":0.07767,"121":0.18123,"122":0.06041,"123":0.02589,"124":0.37541,"125":0.52212,"126":11.95687,"127":1.32471,_:"5 6 7 8 9 10 11 12 13 14 15 16 18 22 23 24 27 29 30 35 48 49 50 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 78 80 81 83 84 85 87 88 89 90 92 96 97 100 102 104 106 107 110 113 128 129 130"},F:{"11":0.00432,"26":0.00432,"30":0.00432,"31":0.00863,"32":0.00432,"83":0.02158,"107":0.00432,"109":0.20281,"110":0.01295,"111":1.40669,_:"9 12 15 16 17 18 19 20 21 22 23 24 25 27 28 29 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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.6","11.5":0.00432,"12.1":0.00863},B:{"12":0.00432,"98":0.00863,"107":0.03452,"109":0.03021,"119":0.01295,"120":0.00432,"121":0.00432,"122":0.00863,"123":0.01295,"124":0.01726,"125":0.07767,"126":7.87488,"127":1.0917,_:"13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 99 100 101 102 103 104 105 106 108 110 111 112 113 114 115 116 117 118"},E:{"5":0.00432,"7":0.00432,"8":0.00863,"9":0.09062,"14":0.02589,_:"0 4 6 10 11 12 13 15 3.2 6.1 9.1 10.1 11.1","3.1":0.00432,"5.1":0.00863,"7.1":0.00432,"12.1":0.06473,"13.1":0.07336,"14.1":0.0561,"15.1":0.02589,"15.2-15.3":0.07336,"15.4":0.00863,"15.5":0.0561,"15.6":0.74218,"16.0":0.03884,"16.1":0.03452,"16.2":0.06904,"16.3":0.20712,"16.4":0.01726,"16.5":0.0863,"16.6":1.09601,"17.0":0.03021,"17.1":0.02589,"17.2":0.09925,"17.3":0.03452,"17.4":0.99245,"17.5":6.65373,"17.6":0.00863,"18.0":0.00863},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00541,"5.0-5.1":0.00271,"6.0-6.1":0.01623,"7.0-7.1":0.01623,"8.1-8.4":0,"9.0-9.2":0.01353,"9.3":0.05411,"10.0-10.2":0.01082,"10.3":0.0947,"11.0-11.2":0.24891,"11.3-11.4":0.02706,"12.0-12.1":0.01894,"12.2-12.5":0.34902,"13.0-13.1":0.00541,"13.2":0.05682,"13.3":0.01894,"13.4-13.7":0.08117,"14.0-14.4":0.18669,"14.5-14.8":0.21104,"15.0-15.1":0.10552,"15.2-15.3":0.11363,"15.4":0.12987,"15.5":0.15692,"15.6-15.8":1.43937,"16.0":0.2895,"16.1":0.61417,"16.2":0.30844,"16.3":0.51677,"16.4":0.12175,"16.5":0.21915,"16.6-16.7":1.79651,"17.0":0.16234,"17.1":0.26244,"17.2":0.25432,"17.3":0.38149,"17.4":0.95507,"17.5":17.48889,"17.6":0.13528,"18.0":0.17857},P:{"4":0.03453,"20":0.05755,"21":0.02302,"22":0.01151,"23":0.10359,"24":0.23021,"25":3.03877,_:"5.0-5.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0","6.2-6.4":0.04604},I:{"0":0.3625,"3":0,"4":0.00004,"2.1":0,"2.2":0.00007,"2.3":0,"4.1":0.00022,"4.2-4.3":0.00015,"4.4":0,"4.4.3-4.4.4":0.00062},K:{"0":0.38083,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.01295,"7":0.02589,"8":0.16397,"9":0.03452,"10":0.03884,"11":0.13377,"5.5":0.00432},S:{"2.5":0.01705,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":23.94189},R:{_:"0"},M:{"0":0.6764},Q:{_:"14.9"},O:{"0":0.06252},H:{"0":0}}; 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..83dd987 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/IN.js @@ -0,0 +1 @@ +module.exports={C:{"42":0.00906,"47":0.00227,"52":0.0068,"59":0.00227,"66":0.00227,"72":0.0136,"83":0.00227,"88":0.00453,"102":0.00227,"103":0.00227,"106":0.00227,"108":0.00227,"111":0.00227,"112":0.00227,"113":0.0136,"115":0.21754,"116":0.00227,"121":0.02493,"122":0.00227,"123":0.00227,"124":0.00453,"125":0.0068,"126":0.01133,"127":0.21754,"128":0.35123,"129":0.01133,_:"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 43 44 45 46 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 104 105 107 109 110 114 117 118 119 120 130 131 3.5 3.6"},D:{"49":0.00453,"55":0.00227,"56":0.00227,"66":0.0136,"68":0.00227,"69":0.00227,"70":0.00227,"71":0.00453,"72":0.00227,"73":0.00227,"74":0.00453,"77":0.00227,"78":0.00227,"79":0.00906,"80":0.00453,"81":0.00453,"83":0.00453,"84":0.00227,"85":0.00227,"86":0.00453,"87":0.0136,"88":0.00453,"89":0.00227,"90":0.00227,"91":0.00453,"92":0.00227,"93":0.00227,"94":0.0068,"95":0.00453,"96":0.00227,"97":0.00453,"98":0.00906,"99":0.01133,"100":0.00227,"101":0.01586,"102":0.00453,"103":0.01813,"104":0.05665,"105":0.00906,"106":0.0136,"107":0.01133,"108":0.03852,"109":1.93516,"110":0.00906,"111":0.03172,"112":0.0136,"113":0.01586,"114":0.02946,"115":0.09064,"116":0.03626,"117":0.03626,"118":0.02719,"119":0.04305,"120":0.07025,"121":0.04985,"122":0.09744,"123":0.09744,"124":0.16089,"125":0.37162,"126":12.003,"127":1.46157,"128":0.01133,"129":0.00227,_:"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 57 58 59 60 61 62 63 64 65 67 75 76 130"},F:{"79":0.00227,"83":0.06571,"84":0.00227,"95":0.01813,"109":0.02493,"110":0.00227,"111":0.09064,_:"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 80 81 82 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00227,"17":0.00227,"18":0.00453,"92":0.0068,"100":0.00227,"107":0.00227,"108":0.00227,"109":0.01133,"110":0.00227,"113":0.00227,"114":0.00227,"118":0.00227,"119":0.00227,"120":0.00453,"121":0.00453,"122":0.00453,"123":0.00453,"124":0.00906,"125":0.02266,"126":0.93359,"127":0.13369,_:"12 13 14 15 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 111 112 115 116 117"},E:{"14":0.00453,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.2-15.3 15.4","11.1":0.00227,"13.1":0.00227,"14.1":0.00453,"15.1":0.00227,"15.5":0.00227,"15.6":0.01133,"16.0":0.00227,"16.1":0.00227,"16.2":0.00227,"16.3":0.00453,"16.4":0.00227,"16.5":0.0068,"16.6":0.0136,"17.0":0.00227,"17.1":0.00453,"17.2":0.0068,"17.3":0.00453,"17.4":0.01813,"17.5":0.1269,"17.6":0.00227,"18.0":0.00453},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00042,"5.0-5.1":0.00021,"6.0-6.1":0.00127,"7.0-7.1":0.00127,"8.1-8.4":0,"9.0-9.2":0.00106,"9.3":0.00422,"10.0-10.2":0.00084,"10.3":0.00739,"11.0-11.2":0.01943,"11.3-11.4":0.00211,"12.0-12.1":0.00148,"12.2-12.5":0.02724,"13.0-13.1":0.00042,"13.2":0.00443,"13.3":0.00148,"13.4-13.7":0.00633,"14.0-14.4":0.01457,"14.5-14.8":0.01647,"15.0-15.1":0.00824,"15.2-15.3":0.00887,"15.4":0.01014,"15.5":0.01225,"15.6-15.8":0.11234,"16.0":0.02259,"16.1":0.04793,"16.2":0.02407,"16.3":0.04033,"16.4":0.0095,"16.5":0.0171,"16.6-16.7":0.14021,"17.0":0.01267,"17.1":0.02048,"17.2":0.01985,"17.3":0.02977,"17.4":0.07454,"17.5":1.36497,"17.6":0.01056,"18.0":0.01394},P:{"4":0.03267,"20":0.01089,"21":0.03267,"22":0.03267,"23":0.05445,"24":0.04356,"25":0.44649,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0","7.2-7.4":0.04356,"17.0":0.01089,"19.0":0.01089},I:{"0":0.03854,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00007},K:{"0":3.06041,_:"10 11 12 11.1 11.5 12.1"},A:{"9":0.02039,"10":0.00227,"11":0.02266,_:"6 7 8 5.5"},S:{"2.5":0.4641,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":72.22734},R:{_:"0"},M:{"0":0.1547},Q:{_:"14.9"},O:{"0":1.34589},H:{"0":0.08}}; 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..79d4151 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/IQ.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.0012,"52":0.0012,"66":0.0012,"68":0.0036,"69":0.01081,"97":0.0012,"115":0.08287,"121":0.0012,"122":0.0012,"123":0.0024,"125":0.0012,"126":0.0012,"127":0.04924,"128":0.08047,_:"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 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 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 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 124 129 130 131 3.5 3.6"},D:{"11":0.00841,"34":0.0012,"37":0.0012,"38":0.01201,"40":0.0012,"43":0.00721,"47":0.0024,"49":0.0012,"50":0.0012,"53":0.0024,"55":0.0012,"56":0.0048,"57":0.0012,"58":0.01321,"60":0.0012,"63":0.0036,"64":0.0012,"65":0.0024,"66":0.0036,"67":0.0012,"68":0.0048,"69":0.00601,"70":0.02402,"71":0.0024,"72":0.0024,"73":0.01201,"74":0.0012,"75":0.00721,"76":0.0012,"77":0.0012,"78":0.0024,"79":0.05525,"80":0.0024,"81":0.00841,"83":0.04924,"84":0.0012,"85":0.0024,"86":0.0036,"87":0.03963,"88":0.01081,"89":0.0048,"90":0.0024,"91":0.0024,"92":0.0024,"93":0.0036,"94":0.00961,"95":0.02882,"96":0.0024,"97":0.0012,"98":0.04924,"99":0.01922,"100":0.0036,"101":0.0012,"102":0.01321,"103":0.04804,"104":0.0024,"105":0.00841,"106":0.00601,"107":0.0036,"108":0.0036,"109":0.68577,"110":0.02762,"111":0.0024,"112":0.0048,"113":0.0036,"114":0.01561,"115":0.0024,"116":0.01321,"117":0.0048,"118":0.00841,"119":0.04444,"120":0.03483,"121":0.00841,"122":0.02042,"123":0.02042,"124":0.02882,"125":0.06005,"126":3.03253,"127":0.40234,"128":0.0024,"129":0.0012,_:"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 39 41 42 44 45 46 48 51 52 54 59 61 62 130"},F:{"28":0.0012,"46":0.0048,"79":0.0024,"83":0.01441,"84":0.0012,"85":0.0024,"95":0.01681,"109":0.03723,"110":0.0012,"111":0.07566,_:"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 71 72 73 74 75 76 77 78 80 81 82 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0024,"84":0.0012,"92":0.00721,"100":0.0012,"109":0.01321,"114":0.0012,"117":0.0012,"119":0.0012,"120":0.0012,"121":0.0024,"122":0.0036,"123":0.0012,"124":0.0048,"125":0.04444,"126":0.38072,"127":0.06125,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116 118"},E:{"13":0.0012,"14":0.00601,"15":0.0012,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1","5.1":0.0048,"13.1":0.0024,"14.1":0.01561,"15.1":0.0012,"15.2-15.3":0.0012,"15.4":0.0036,"15.5":0.01081,"15.6":0.03843,"16.0":0.0024,"16.1":0.01561,"16.2":0.01201,"16.3":0.03123,"16.4":0.0048,"16.5":0.00961,"16.6":0.07446,"17.0":0.0048,"17.1":0.01201,"17.2":0.00961,"17.3":0.01081,"17.4":0.03963,"17.5":0.54045,"17.6":0.0024,"18.0":0.00721},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00227,"5.0-5.1":0.00114,"6.0-6.1":0.00681,"7.0-7.1":0.00681,"8.1-8.4":0,"9.0-9.2":0.00568,"9.3":0.0227,"10.0-10.2":0.00454,"10.3":0.03973,"11.0-11.2":0.10443,"11.3-11.4":0.01135,"12.0-12.1":0.00795,"12.2-12.5":0.14642,"13.0-13.1":0.00227,"13.2":0.02384,"13.3":0.00795,"13.4-13.7":0.03405,"14.0-14.4":0.07832,"14.5-14.8":0.08854,"15.0-15.1":0.04427,"15.2-15.3":0.04767,"15.4":0.05448,"15.5":0.06583,"15.6-15.8":0.60386,"16.0":0.12145,"16.1":0.25766,"16.2":0.1294,"16.3":0.2168,"16.4":0.05108,"16.5":0.09194,"16.6-16.7":0.75369,"17.0":0.0681,"17.1":0.1101,"17.2":0.1067,"17.3":0.16005,"17.4":0.40068,"17.5":7.3371,"17.6":0.05675,"18.0":0.07491},P:{"4":0.07192,"20":0.0411,"21":0.15412,"22":0.17467,"23":0.23632,"24":0.17467,"25":2.76396,"5.0-5.4":0.01027,"6.2-6.4":0.05137,"7.2-7.4":0.18495,_:"8.2","9.2":0.02055,"10.1":0.01027,"11.1-11.2":0.0822,"12.0":0.02055,"13.0":0.07192,"14.0":0.05137,"15.0":0.02055,"16.0":0.06165,"17.0":0.10275,"18.0":0.02055,"19.0":0.06165},I:{"0":0.05261,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00009},K:{"0":0.58073,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00129,"11":0.01552,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":75.85779},R:{_:"0"},M:{"0":0.07919},Q:{_:"14.9"},O:{"0":0.32556},H:{"0":0}}; 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..0de61b8 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/IR.js @@ -0,0 +1 @@ +module.exports={C:{"47":0.00248,"48":0.00248,"50":0.00248,"52":0.02233,"56":0.00248,"60":0.00248,"68":0.00248,"72":0.00744,"77":0.00248,"78":0.00248,"84":0.00248,"88":0.00248,"89":0.00248,"90":0.00248,"91":0.00248,"92":0.00248,"94":0.00496,"95":0.00248,"96":0.00248,"97":0.00248,"98":0.00248,"99":0.00496,"100":0.00496,"101":0.00248,"102":0.00248,"103":0.00248,"104":0.00248,"105":0.00248,"106":0.00496,"107":0.00248,"108":0.00496,"109":0.00248,"110":0.00248,"111":0.00496,"112":0.00496,"113":0.00496,"114":0.00496,"115":1.37199,"116":0.00248,"117":0.00496,"118":0.00496,"119":0.00496,"120":0.00496,"121":0.00744,"122":0.00992,"123":0.01241,"124":0.01489,"125":0.02481,"126":0.0521,"127":0.93038,"128":1.32485,"129":0.00248,_:"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 49 51 53 54 55 57 58 59 61 62 63 64 65 66 67 69 70 71 73 74 75 76 79 80 81 82 83 85 86 87 93 130 131 3.5 3.6"},D:{"38":0.00248,"48":0.00248,"49":0.00496,"58":0.00248,"61":0.00248,"62":0.00248,"63":0.00248,"64":0.00248,"65":0.00248,"66":0.00248,"67":0.00248,"68":0.00248,"69":0.00248,"70":0.00248,"71":0.01489,"72":0.00496,"73":0.00248,"74":0.00248,"75":0.00248,"76":0.00248,"77":0.00248,"78":0.00992,"79":0.01241,"80":0.01241,"81":0.00992,"83":0.01241,"84":0.00992,"85":0.00992,"86":0.01737,"87":0.01737,"88":0.00992,"89":0.00744,"90":0.00744,"91":0.00992,"92":0.00992,"93":0.00248,"94":0.00744,"95":0.00744,"96":0.00992,"97":0.00744,"98":0.00992,"99":0.00992,"100":0.01241,"101":0.00744,"102":0.00744,"103":0.02729,"104":0.01985,"105":0.01489,"106":0.02233,"107":0.02977,"108":0.04466,"109":3.56272,"110":0.01241,"111":0.01985,"112":0.02977,"113":0.00992,"114":0.01985,"115":0.01241,"116":0.03225,"117":0.02233,"118":0.0397,"119":0.03225,"120":0.08684,"121":0.05458,"122":0.08435,"123":0.11413,"124":0.13149,"125":0.23818,"126":9.96122,"127":1.41417,"128":0.00248,_:"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 47 50 51 52 53 54 55 56 57 59 60 129 130"},F:{"46":0.00248,"64":0.00248,"79":0.01241,"83":0.00496,"84":0.00248,"85":0.00248,"95":0.04218,"101":0.00248,"106":0.00248,"107":0.00248,"108":0.00496,"109":0.0521,"110":0.01241,"111":0.14142,_:"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 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 86 87 88 89 90 91 92 93 94 96 97 98 99 100 102 103 104 105 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00248,"13":0.00248,"14":0.00496,"15":0.00248,"16":0.00496,"17":0.00496,"18":0.01737,"81":0.00248,"84":0.00248,"88":0.00248,"89":0.00496,"90":0.00496,"92":0.07195,"100":0.01737,"107":0.00248,"108":0.00248,"109":0.10916,"110":0.00248,"114":0.00248,"115":0.00248,"116":0.00248,"117":0.00248,"118":0.00248,"119":0.00248,"120":0.00992,"121":0.00744,"122":0.00744,"123":0.00744,"124":0.01737,"125":0.02977,"126":0.77159,"127":0.12653,_:"79 80 83 85 86 87 91 93 94 95 96 97 98 99 101 102 103 104 105 106 111 112 113"},E:{_:"0 4 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 15.1 15.2-15.3 15.4 15.5 16.2 17.6 18.0","13.1":0.00248,"14.1":0.00248,"15.6":0.01241,"16.0":0.00248,"16.1":0.00248,"16.3":0.00248,"16.4":0.00248,"16.5":0.00248,"16.6":0.00992,"17.0":0.00248,"17.1":0.00248,"17.2":0.00248,"17.3":0.00496,"17.4":0.00744,"17.5":0.03722},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00107,"5.0-5.1":0.00053,"6.0-6.1":0.0032,"7.0-7.1":0.0032,"8.1-8.4":0,"9.0-9.2":0.00267,"9.3":0.01066,"10.0-10.2":0.00213,"10.3":0.01866,"11.0-11.2":0.04904,"11.3-11.4":0.00533,"12.0-12.1":0.00373,"12.2-12.5":0.06877,"13.0-13.1":0.00107,"13.2":0.0112,"13.3":0.00373,"13.4-13.7":0.01599,"14.0-14.4":0.03678,"14.5-14.8":0.04158,"15.0-15.1":0.02079,"15.2-15.3":0.02239,"15.4":0.02559,"15.5":0.03092,"15.6-15.8":0.28361,"16.0":0.05704,"16.1":0.12101,"16.2":0.06077,"16.3":0.10182,"16.4":0.02399,"16.5":0.04318,"16.6-16.7":0.35398,"17.0":0.03199,"17.1":0.05171,"17.2":0.05011,"17.3":0.07517,"17.4":0.18818,"17.5":3.44594,"17.6":0.02665,"18.0":0.03518},P:{"4":0.05038,"20":0.12092,"21":0.20153,"22":0.40306,"23":0.46352,"24":0.54413,"25":2.37805,"5.0-5.4":0.01008,"6.2-6.4":0.02015,"7.2-7.4":0.18138,"8.2":0.03023,"9.2":0.03023,"10.1":0.02015,"11.1-11.2":0.11084,"12.0":0.04031,"13.0":0.13099,"14.0":0.11084,"15.0":0.04031,"16.0":0.12092,"17.0":0.1713,"18.0":0.10076,"19.0":0.15115},I:{"0":0.00749,"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.00001},K:{"0":0.38106,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00995,"9":0.00249,"10":0.00249,"11":1.92522,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":63.22365},R:{_:"0"},M:{"0":1.01507},Q:{_:"14.9"},O:{"0":0.05263},H:{"0":0.04}}; 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..b0c29aa --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/IS.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.02104,"52":0.00526,"78":0.03155,"91":0.00526,"102":0.0263,"103":0.04207,"104":0.00526,"109":0.01052,"113":0.01578,"115":0.49435,"116":0.00526,"117":0.00526,"118":0.00526,"120":0.01052,"123":0.00526,"125":0.0263,"126":0.04207,"127":1.04654,"128":1.71969,"129":0.01052,_:"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 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 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 105 106 107 108 110 111 112 114 119 121 122 124 130 131 3.5 3.6"},D:{"49":0.0263,"51":0.00526,"67":0.05259,"69":0.00526,"77":0.00526,"78":0.00526,"79":0.03681,"81":0.00526,"85":0.00526,"87":0.01052,"90":0.00526,"93":0.00526,"94":0.00526,"95":0.00526,"96":0.02104,"97":0.00526,"98":0.01578,"99":0.00526,"102":0.01578,"103":0.16303,"104":0.06311,"106":0.03681,"109":0.48909,"111":0.00526,"112":0.05785,"113":3.07652,"114":3.43413,"115":0.02104,"116":0.39968,"117":0.01578,"118":0.21562,"119":0.01578,"120":0.09992,"121":0.03681,"122":0.18932,"123":0.13148,"124":0.23666,"125":1.00973,"126":21.36732,"127":1.7828,"128":0.01052,"129":0.01578,_:"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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 70 71 72 73 74 75 76 80 83 84 86 88 89 91 92 100 101 105 107 108 110 130"},F:{"83":0.02104,"89":0.00526,"95":0.12622,"109":1.43045,"110":0.02104,"111":0.94136,_:"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 84 85 86 87 88 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00526,"105":0.00526,"109":0.01052,"112":0.00526,"114":0.00526,"115":0.00526,"116":0.00526,"119":0.03155,"120":0.06311,"121":0.04207,"122":0.09992,"123":0.00526,"124":0.02104,"125":0.33132,"126":4.91717,"127":0.67841,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 106 107 108 110 111 113 117 118"},E:{"9":0.00526,"14":0.03155,"15":0.00526,_:"0 4 5 6 7 8 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00526,"13.1":0.06837,"14.1":0.09466,"15.1":0.03155,"15.2-15.3":0.01052,"15.4":0.03681,"15.5":0.04733,"15.6":0.42598,"16.0":0.16829,"16.1":0.03155,"16.2":0.13673,"16.3":0.10518,"16.4":0.01052,"16.5":0.0894,"16.6":0.52064,"17.0":0.03681,"17.1":0.18932,"17.2":0.13673,"17.3":0.27347,"17.4":0.24191,"17.5":3.13436,"17.6":0.00526,"18.0":0.03155},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00359,"5.0-5.1":0.0018,"6.0-6.1":0.01077,"7.0-7.1":0.01077,"8.1-8.4":0,"9.0-9.2":0.00898,"9.3":0.03591,"10.0-10.2":0.00718,"10.3":0.06284,"11.0-11.2":0.16518,"11.3-11.4":0.01795,"12.0-12.1":0.01257,"12.2-12.5":0.23161,"13.0-13.1":0.00359,"13.2":0.0377,"13.3":0.01257,"13.4-13.7":0.05386,"14.0-14.4":0.12388,"14.5-14.8":0.14004,"15.0-15.1":0.07002,"15.2-15.3":0.07541,"15.4":0.08618,"15.5":0.10413,"15.6-15.8":0.95516,"16.0":0.19211,"16.1":0.40756,"16.2":0.20468,"16.3":0.34292,"16.4":0.08079,"16.5":0.14543,"16.6-16.7":1.19216,"17.0":0.10773,"17.1":0.17416,"17.2":0.16877,"17.3":0.25315,"17.4":0.63378,"17.5":11.60557,"17.6":0.08977,"18.0":0.1185},P:{"4":0.02094,"20":0.01047,"21":0.03141,"22":0.30367,"23":0.06283,"24":0.03141,"25":3.59173,"5.0-5.4":0.01047,_:"6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 17.0","14.0":0.05236,"18.0":0.01047,"19.0":0.01047},I:{"0":0.0378,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.44091,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.02104,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":24.16716},R:{_:"0"},M:{"0":0.46936},Q:{"14.9":0.00948},O:{"0":0.11378},H:{"0":0}}; 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..6ecb509 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/IT.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00868,"52":0.05641,"56":0.00434,"59":0.08678,"68":0.00868,"75":0.00434,"76":0.00434,"78":0.04773,"88":0.03037,"91":0.01302,"93":0.02603,"94":0.03905,"101":0.00434,"102":0.00434,"103":0.00434,"106":0.00434,"107":0.00434,"108":0.00434,"109":0.00434,"110":0.00434,"113":0.00868,"114":0.00434,"115":0.56841,"116":0.00434,"118":0.00868,"119":0.00434,"120":0.00434,"121":0.01302,"122":0.00868,"123":0.00868,"124":0.00868,"125":0.0217,"126":0.62916,"127":1.30604,"128":2.11309,"129":0.00868,_:"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 53 54 55 57 58 60 61 62 63 64 65 66 67 69 70 71 72 73 74 77 79 80 81 82 83 84 85 86 87 89 90 92 95 96 97 98 99 100 104 105 111 112 117 130 131 3.5 3.6"},D:{"38":0.00868,"47":0.00434,"49":0.03471,"58":0.00434,"63":0.08244,"65":0.00434,"66":0.3558,"67":0.00434,"68":0.00434,"70":0.00434,"71":0.00434,"74":0.00434,"76":0.00434,"77":0.0217,"78":0.00434,"79":0.03037,"80":0.00434,"81":0.01736,"83":0.00434,"84":0.00434,"85":0.01736,"86":0.0217,"87":0.04773,"88":0.01302,"89":0.01302,"90":0.00868,"91":0.00868,"92":0.7897,"93":0.09112,"94":0.01736,"95":0.04773,"96":0.01302,"97":0.00434,"98":0.00434,"99":0.01302,"100":0.00434,"101":0.00434,"102":0.01302,"103":0.0781,"104":0.00868,"105":0.0217,"106":0.01302,"107":0.01736,"108":0.01736,"109":2.06536,"110":0.01302,"111":0.01736,"112":0.01736,"113":0.06509,"114":0.07376,"115":0.00868,"116":0.22129,"117":0.01302,"118":0.05207,"119":0.05641,"120":0.09112,"121":0.05207,"122":0.15187,"123":0.12149,"124":0.21695,"125":0.45126,"126":19.17404,"127":2.2476,"128":0.00868,_:"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 51 52 53 54 55 56 57 59 60 61 62 64 69 72 73 75 129 130"},F:{"36":0.00434,"46":0.00868,"79":0.00434,"83":0.0217,"85":0.00434,"89":0.00434,"95":0.03905,"109":0.21695,"110":0.01302,"111":0.45126,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 80 81 82 84 86 87 88 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.03905,"18":0.00434,"85":0.00434,"90":0.14319,"92":0.00868,"107":0.00434,"108":0.00434,"109":0.0781,"110":0.00434,"112":0.01302,"113":0.00434,"114":0.00434,"115":0.04773,"116":0.00434,"117":0.00434,"119":0.01302,"120":0.02603,"121":0.01302,"122":0.00868,"123":0.00868,"124":0.03037,"125":0.08678,"126":3.6274,"127":0.49031,_:"12 13 14 15 16 79 80 81 83 84 86 87 88 89 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 111 118"},E:{"8":0.00434,"11":0.00434,"13":0.00434,"14":0.03905,"15":0.01302,_:"0 4 5 6 7 9 10 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.00868,"11.1":0.06942,"12.1":0.01302,"13.1":0.09546,"14.1":0.3558,"15.1":0.01736,"15.2-15.3":0.01302,"15.4":0.0217,"15.5":0.03037,"15.6":0.256,"16.0":0.03037,"16.1":0.03905,"16.2":0.03037,"16.3":0.06942,"16.4":0.02603,"16.5":0.05207,"16.6":0.23865,"17.0":0.03037,"17.1":0.05207,"17.2":0.06509,"17.3":0.05207,"17.4":0.13451,"17.5":1.51865,"17.6":0.00868,"18.0":0.01736},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00276,"5.0-5.1":0.00138,"6.0-6.1":0.00827,"7.0-7.1":0.00827,"8.1-8.4":0,"9.0-9.2":0.00689,"9.3":0.02755,"10.0-10.2":0.00551,"10.3":0.04821,"11.0-11.2":0.12674,"11.3-11.4":0.01378,"12.0-12.1":0.00964,"12.2-12.5":0.17771,"13.0-13.1":0.00276,"13.2":0.02893,"13.3":0.00964,"13.4-13.7":0.04133,"14.0-14.4":0.09505,"14.5-14.8":0.10745,"15.0-15.1":0.05373,"15.2-15.3":0.05786,"15.4":0.06612,"15.5":0.0799,"15.6-15.8":0.73286,"16.0":0.1474,"16.1":0.31271,"16.2":0.15704,"16.3":0.26311,"16.4":0.06199,"16.5":0.11158,"16.6-16.7":0.9147,"17.0":0.08265,"17.1":0.13362,"17.2":0.12949,"17.3":0.19424,"17.4":0.48628,"17.5":8.90458,"17.6":0.06888,"18.0":0.09092},P:{"4":0.0837,"20":0.03139,"21":0.05232,"22":0.06278,"23":0.0837,"24":0.09417,"25":2.34374,_:"5.0-5.4 7.2-7.4 8.2 10.1 15.0","6.2-6.4":0.15695,"9.2":0.04185,"11.1-11.2":0.04185,"12.0":0.01046,"13.0":0.01046,"14.0":0.01046,"16.0":0.01046,"17.0":0.01046,"18.0":0.01046,"19.0":0.03139},I:{"0":0.05642,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.0001},K:{"0":0.45296,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01367,"9":0.00456,"10":0.00456,"11":0.25058,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":38.15375},R:{_:"0"},M:{"0":1.0871},Q:{"14.9":0.00566},O:{"0":0.1189},H:{"0":0}}; 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..56718b4 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/JE.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00386,"78":0.00772,"80":0.00386,"81":0.01158,"110":0.00386,"115":0.0849,"121":0.00386,"126":0.00386,"127":0.65217,"128":0.99176,_:"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 67 68 69 70 71 72 73 74 75 76 77 79 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 111 112 113 114 116 117 118 119 120 122 123 124 125 129 130 131 3.5 3.6"},D:{"34":0.00386,"38":0.00386,"49":0.00772,"58":0.00386,"79":0.00772,"80":0.06174,"84":0.00386,"87":0.01158,"88":0.00386,"90":0.00386,"92":0.02701,"93":0.02315,"94":0.00386,"98":0.03087,"99":0.00772,"101":0.00386,"103":0.34345,"106":0.00772,"107":0.00386,"109":0.31258,"111":0.0193,"113":0.00386,"115":0.00386,"116":0.09648,"117":0.00772,"118":0.01158,"119":0.00386,"120":0.39748,"121":0.01158,"122":0.0656,"123":0.03087,"124":0.20839,"125":0.60586,"126":9.32334,"127":0.8567,"128":0.00386,_:"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 47 48 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 81 83 85 86 89 91 95 96 97 100 102 104 105 108 110 112 114 129 130"},F:{"83":0.01158,"109":0.35889,"111":0.18909,_:"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 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 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00772,"100":0.00772,"108":0.0193,"109":0.0656,"114":0.0193,"123":0.00386,"124":0.01158,"125":0.11191,"126":7.92253,"127":1.03035,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103 104 105 106 107 110 111 112 113 115 116 117 118 119 120 121 122"},E:{"14":0.10033,"15":0.00386,_:"0 4 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.00772,"13.1":0.13892,"14.1":0.18909,"15.1":0.0193,"15.2-15.3":0.10033,"15.4":0.02315,"15.5":0.06174,"15.6":1.14998,"16.0":0.0193,"16.1":0.27399,"16.2":0.04631,"16.3":0.23926,"16.4":0.0849,"16.5":0.07718,"16.6":1.03807,"17.0":0.01544,"17.1":0.03087,"17.2":0.06174,"17.3":0.09648,"17.4":0.21225,"17.5":9.69381,"17.6":0.0656,"18.0":0.01544},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00688,"5.0-5.1":0.00344,"6.0-6.1":0.02063,"7.0-7.1":0.02063,"8.1-8.4":0,"9.0-9.2":0.01719,"9.3":0.06875,"10.0-10.2":0.01375,"10.3":0.12032,"11.0-11.2":0.31627,"11.3-11.4":0.03438,"12.0-12.1":0.02406,"12.2-12.5":0.44347,"13.0-13.1":0.00688,"13.2":0.07219,"13.3":0.02406,"13.4-13.7":0.10313,"14.0-14.4":0.2372,"14.5-14.8":0.26814,"15.0-15.1":0.13407,"15.2-15.3":0.14438,"15.4":0.16501,"15.5":0.19939,"15.6-15.8":1.82887,"16.0":0.36784,"16.1":0.78037,"16.2":0.3919,"16.3":0.65661,"16.4":0.1547,"16.5":0.27846,"16.6-16.7":2.28265,"17.0":0.20626,"17.1":0.33346,"17.2":0.32315,"17.3":0.48472,"17.4":1.21352,"17.5":22.2215,"17.6":0.17189,"18.0":0.22689},P:{"4":0.17685,"20":0.02358,"21":0.01179,"22":0.02358,"23":0.10611,"24":0.03537,"25":3.60777,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 19.0","18.0":0.01179},I:{"0":0.01224,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.06141,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.00386,"11":0.01544,_:"7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":22.17836},R:{_:"0"},M:{"0":0.38688},Q:{_:"14.9"},O:{"0":0.00614},H:{"0":0}}; 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..7915220 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/JM.js @@ -0,0 +1 @@ +module.exports={C:{"78":0.02212,"88":0.00277,"100":0.00277,"115":0.07466,"121":0.0083,"124":0.00277,"125":0.00277,"126":0.0083,"127":0.19079,"128":0.52535,"129":0.02212,_:"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 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 123 130 131 3.5 3.6"},D:{"11":0.00277,"47":0.00277,"49":0.00277,"50":0.00277,"59":0.00277,"60":0.00277,"63":0.00277,"65":0.00277,"69":0.02212,"70":0.03871,"73":0.02765,"74":0.00277,"75":0.0083,"76":0.02489,"79":0.01383,"81":0.02212,"83":0.14378,"84":0.0083,"85":0.00553,"86":0.00553,"87":0.04977,"88":0.0083,"89":0.00277,"90":0.00277,"91":0.00277,"93":0.04424,"94":0.00553,"95":0.0083,"96":0.00277,"97":0.00277,"98":0.00553,"99":0.00553,"101":0.00553,"102":0.0083,"103":0.19908,"104":0.00277,"105":0.01106,"106":0.00277,"107":0.00277,"108":0.0083,"109":0.40369,"110":0.01383,"111":0.02212,"112":0.01383,"113":0.00277,"114":0.01383,"115":0.01659,"116":0.04977,"117":0.03318,"118":0.02489,"119":0.04977,"120":0.04701,"121":0.03318,"122":0.05807,"123":0.04424,"124":0.10784,"125":0.63872,"126":13.99367,"127":1.57329,"128":0.02765,_:"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 48 51 52 53 54 55 56 57 58 61 62 64 66 67 68 71 72 77 78 80 92 100 129 130"},F:{"28":0.03318,"83":0.04701,"89":0.0083,"95":0.00277,"109":0.29033,"110":0.00553,"111":0.28203,_:"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 79 80 81 82 84 85 86 87 88 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00277,"15":0.00277,"16":0.00277,"18":0.00277,"92":0.01106,"100":0.00277,"107":0.00277,"109":0.01383,"110":0.0083,"114":0.00553,"117":0.00277,"119":0.00277,"120":0.01659,"121":0.00277,"122":0.00277,"123":0.00277,"124":0.01936,"125":0.12443,"126":3.29588,"127":0.49494,_:"12 13 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 108 111 112 113 115 116 118"},E:{"14":0.00553,"15":0.00277,_:"0 4 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1","11.1":0.00277,"12.1":0.00553,"13.1":0.15208,"14.1":0.02765,"15.2-15.3":0.00277,"15.4":0.00277,"15.5":0.0083,"15.6":0.09125,"16.0":0.0083,"16.1":0.04977,"16.2":0.01106,"16.3":0.03595,"16.4":0.02212,"16.5":0.01383,"16.6":0.16037,"17.0":0.0083,"17.1":0.01659,"17.2":0.02765,"17.3":0.01106,"17.4":0.08572,"17.5":0.81015,"17.6":0.00553,"18.0":0.01659},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00449,"5.0-5.1":0.00224,"6.0-6.1":0.01347,"7.0-7.1":0.01347,"8.1-8.4":0,"9.0-9.2":0.01122,"9.3":0.04489,"10.0-10.2":0.00898,"10.3":0.07856,"11.0-11.2":0.20651,"11.3-11.4":0.02245,"12.0-12.1":0.01571,"12.2-12.5":0.28957,"13.0-13.1":0.00449,"13.2":0.04714,"13.3":0.01571,"13.4-13.7":0.06734,"14.0-14.4":0.15489,"14.5-14.8":0.17509,"15.0-15.1":0.08754,"15.2-15.3":0.09428,"15.4":0.10775,"15.5":0.13019,"15.6-15.8":1.19419,"16.0":0.24018,"16.1":0.50955,"16.2":0.2559,"16.3":0.42874,"16.4":0.10101,"16.5":0.18182,"16.6-16.7":1.49049,"17.0":0.13468,"17.1":0.21774,"17.2":0.211,"17.3":0.3165,"17.4":0.79238,"17.5":14.50981,"17.6":0.11224,"18.0":0.14815},P:{"4":0.08824,"20":0.05515,"21":0.04412,"22":0.17649,"23":0.09927,"24":0.09927,"25":2.4267,"5.0-5.4":0.01103,"6.2-6.4":0.03309,"7.2-7.4":0.31988,_:"8.2 9.2 10.1 12.0 14.0 15.0","11.1-11.2":0.01103,"13.0":0.01103,"16.0":0.03309,"17.0":0.01103,"18.0":0.01103,"19.0":0.05515},I:{"0":0.03604,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.26042,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00277,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":47.19935},R:{_:"0"},M:{"0":0.18085},Q:{"14.9":0.00723},O:{"0":0.20255},H:{"0":0}}; 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..4b30c80 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/JO.js @@ -0,0 +1 @@ +module.exports={C:{"7":0.00196,"34":0.00392,"52":0.00196,"56":0.00392,"103":0.01177,"107":0.00196,"108":0.00196,"110":0.00392,"115":0.15688,"121":0.00196,"124":0.00196,"125":0.00196,"126":0.00981,"127":0.11178,"128":0.18237,"129":0.00196,_:"2 3 4 5 6 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 43 44 45 46 47 48 49 50 51 53 54 55 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 104 105 106 109 111 112 113 114 116 117 118 119 120 122 123 130 131 3.5 3.6"},D:{"11":0.01569,"38":0.00392,"41":0.00196,"43":0.00196,"47":0.00196,"49":0.00784,"55":0.00196,"58":0.09021,"61":0.00196,"65":0.00784,"66":0.00392,"68":0.00392,"69":0.00392,"70":0.00196,"72":0.00196,"73":0.00784,"76":0.00196,"77":0.00196,"78":0.00588,"79":0.02157,"80":0.00196,"81":0.00196,"83":0.03922,"85":0.00392,"86":0.00196,"87":0.02549,"88":0.01373,"89":0.00196,"90":0.00588,"91":0.00392,"92":0.00196,"93":0.00784,"94":0.01177,"95":0.00392,"96":0.00392,"97":0.00196,"98":0.05491,"99":0.03726,"100":0.00588,"102":0.00392,"103":0.01569,"104":0.00981,"105":0.01765,"106":0.01765,"107":0.02353,"108":0.01961,"109":0.79421,"110":0.01177,"111":0.01373,"112":0.00784,"113":0.00588,"114":0.00981,"115":0.01373,"116":0.01569,"117":0.00784,"118":0.00981,"119":0.02745,"120":0.0353,"121":0.0451,"122":0.06079,"123":0.03726,"124":0.08236,"125":0.14511,"126":10.52665,"127":1.01384,"128":0.00196,_:"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 39 40 42 44 45 46 48 50 51 52 53 54 56 57 59 60 62 63 64 67 71 74 75 84 101 129 130"},F:{"79":0.00196,"82":0.00196,"83":0.01765,"85":0.00392,"91":0.00196,"95":0.01569,"101":0.00196,"105":0.00392,"106":0.00392,"107":0.00588,"108":0.00392,"109":0.0804,"110":0.00588,"111":0.08628,_:"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 80 81 84 86 87 88 89 90 92 93 94 96 97 98 99 100 102 103 104 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00784,"84":0.00196,"89":0.00196,"92":0.00981,"98":0.00196,"106":0.00392,"107":0.00196,"109":0.01373,"110":0.00784,"111":0.00392,"117":0.00196,"118":0.00588,"119":0.00196,"120":0.00392,"121":0.00392,"122":0.00392,"123":0.00196,"124":0.01177,"125":0.03138,"126":1.18444,"127":0.19022,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88 90 91 93 94 95 96 97 99 100 101 102 103 104 105 108 112 113 114 115 116"},E:{"14":0.00392,"15":0.00392,_:"0 4 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","13.1":0.01569,"14.1":0.00784,"15.1":0.00196,"15.2-15.3":0.00196,"15.4":0.00392,"15.5":0.00392,"15.6":0.02549,"16.0":0.00392,"16.1":0.00588,"16.2":0.00588,"16.3":0.01373,"16.4":0.00196,"16.5":0.00588,"16.6":0.0353,"17.0":0.00784,"17.1":0.00784,"17.2":0.01569,"17.3":0.02353,"17.4":0.0353,"17.5":0.29023,"17.6":0.00784,"18.0":0.00392},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00232,"5.0-5.1":0.00116,"6.0-6.1":0.00697,"7.0-7.1":0.00697,"8.1-8.4":0,"9.0-9.2":0.00581,"9.3":0.02325,"10.0-10.2":0.00465,"10.3":0.04069,"11.0-11.2":0.10694,"11.3-11.4":0.01162,"12.0-12.1":0.00814,"12.2-12.5":0.14995,"13.0-13.1":0.00232,"13.2":0.02441,"13.3":0.00814,"13.4-13.7":0.03487,"14.0-14.4":0.08021,"14.5-14.8":0.09067,"15.0-15.1":0.04534,"15.2-15.3":0.04882,"15.4":0.0558,"15.5":0.06742,"15.6-15.8":0.61842,"16.0":0.12438,"16.1":0.26387,"16.2":0.13252,"16.3":0.22203,"16.4":0.05231,"16.5":0.09416,"16.6-16.7":0.77186,"17.0":0.06975,"17.1":0.11276,"17.2":0.10927,"17.3":0.1639,"17.4":0.41034,"17.5":7.51401,"17.6":0.05812,"18.0":0.07672},P:{"4":0.06148,"20":0.03074,"21":0.06148,"22":0.14346,"23":0.18445,"24":0.14346,"25":2.93068,"5.0-5.4":0.01025,"6.2-6.4":0.01025,"7.2-7.4":0.13321,_:"8.2 10.1","9.2":0.01025,"11.1-11.2":0.04099,"12.0":0.01025,"13.0":0.02049,"14.0":0.03074,"15.0":0.05124,"16.0":0.04099,"17.0":0.04099,"18.0":0.03074,"19.0":0.04099},I:{"0":0.06409,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00011},K:{"0":0.40803,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00618,"9":0.00206,"11":0.03294,_:"6 7 10 5.5"},S:{"2.5":0.00804,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":66.05279},R:{_:"0"},M:{"0":0.21705},Q:{_:"14.9"},O:{"0":0.28137},H:{"0":0.01}}; 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..a619760 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/JP.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.01157,"52":0.02314,"54":0.40495,"56":0.00579,"78":0.01736,"83":0.00579,"89":0.00579,"102":0.01157,"103":0.01736,"105":0.00579,"106":0.00579,"107":0.01157,"108":0.01157,"109":0.01157,"110":0.01157,"111":0.01157,"112":0.00579,"113":0.00579,"115":0.30082,"116":0.00579,"118":0.00579,"119":0.00579,"121":0.01157,"122":0.01157,"123":0.00579,"124":0.01157,"125":0.01157,"126":0.06364,"127":0.87354,"128":1.42311,"129":0.00579,_:"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 53 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 87 88 90 91 92 93 94 95 96 97 98 99 100 101 104 114 117 120 130 131 3.5 3.6"},D:{"15":0.00579,"44":0.00579,"49":0.03471,"52":0.01157,"53":0.00579,"65":0.00579,"67":0.00579,"68":0.00579,"70":0.00579,"71":0.00579,"74":0.01157,"75":0.00579,"78":0.00579,"79":0.01157,"80":0.01157,"81":0.05207,"83":0.01736,"85":0.00579,"86":0.02893,"87":0.02893,"89":0.01157,"90":0.01157,"91":0.14463,"92":0.00579,"93":0.01157,"94":0.00579,"95":0.04628,"96":0.00579,"97":0.02314,"98":0.02314,"99":0.01157,"100":0.00579,"101":0.01736,"102":0.01736,"103":0.09256,"104":0.0405,"105":0.03471,"106":0.08099,"107":0.10413,"108":0.12149,"109":0.90825,"110":0.08099,"111":0.09256,"112":0.09256,"113":0.0405,"114":0.06364,"115":0.01157,"116":0.1562,"117":0.02314,"118":0.04628,"119":0.14463,"120":0.13884,"121":0.12149,"122":0.10413,"123":0.15041,"124":0.26611,"125":0.87932,"126":21.52599,"127":2.46441,"128":0.02893,"129":0.00579,_:"4 5 6 7 8 9 10 11 12 13 14 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 46 47 48 50 51 54 55 56 57 58 59 60 61 62 63 64 66 69 72 73 76 77 84 88 130"},F:{"83":0.05207,"91":0.00579,"93":0.00579,"94":0.00579,"95":0.01736,"101":0.00579,"109":0.0405,"110":0.00579,"111":0.16198,_:"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 84 85 86 87 88 89 90 92 96 97 98 99 100 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00579,"18":0.00579,"92":0.01736,"100":0.01157,"103":0.00579,"105":0.00579,"106":0.01157,"107":0.02314,"108":0.02314,"109":0.25454,"110":0.01157,"111":0.01736,"112":0.01736,"113":0.01736,"114":0.02314,"115":0.01157,"116":0.01157,"117":0.01157,"118":0.01157,"119":0.01736,"120":0.0405,"121":0.02893,"122":0.04628,"123":0.02893,"124":0.09256,"125":0.19091,"126":10.36672,"127":1.29006,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 104"},E:{"9":0.00579,"13":0.01157,"14":0.03471,"15":0.00579,_:"0 4 5 6 7 8 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00579,"11.1":0.00579,"12.1":0.01157,"13.1":0.05207,"14.1":0.1157,"15.1":0.01157,"15.2-15.3":0.00579,"15.4":0.02893,"15.5":0.02893,"15.6":0.21983,"16.0":0.03471,"16.1":0.03471,"16.2":0.0405,"16.3":0.08099,"16.4":0.01736,"16.5":0.03471,"16.6":0.26611,"17.0":0.02314,"17.1":0.0405,"17.2":0.03471,"17.3":0.04628,"17.4":0.1157,"17.5":1.51567,"17.6":0.00579,"18.0":0.01157},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00416,"5.0-5.1":0.00208,"6.0-6.1":0.01248,"7.0-7.1":0.01248,"8.1-8.4":0,"9.0-9.2":0.0104,"9.3":0.04161,"10.0-10.2":0.00832,"10.3":0.07282,"11.0-11.2":0.19141,"11.3-11.4":0.02081,"12.0-12.1":0.01456,"12.2-12.5":0.26839,"13.0-13.1":0.00416,"13.2":0.04369,"13.3":0.01456,"13.4-13.7":0.06242,"14.0-14.4":0.14356,"14.5-14.8":0.16228,"15.0-15.1":0.08114,"15.2-15.3":0.08738,"15.4":0.09987,"15.5":0.12067,"15.6-15.8":1.10684,"16.0":0.22262,"16.1":0.47228,"16.2":0.23718,"16.3":0.39738,"16.4":0.09362,"16.5":0.16852,"16.6-16.7":1.38147,"17.0":0.12483,"17.1":0.20181,"17.2":0.19557,"17.3":0.29335,"17.4":0.73442,"17.5":13.44851,"17.6":0.10403,"18.0":0.13731},P:{"20":0.01086,"21":0.01086,"22":0.01086,"23":0.01086,"24":0.01086,"25":0.62978,_:"4 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 14.0 15.0 16.0 18.0","11.1-11.2":0.01086,"12.0":0.01086,"13.0":0.01086,"17.0":0.01086,"19.0":0.01086},I:{"0":0.15121,"3":0,"4":0.00002,"2.1":0,"2.2":0.00003,"2.3":0,"4.1":0.00009,"4.2-4.3":0.00006,"4.4":0,"4.4.3-4.4.4":0.00026},K:{"0":0.15174,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.01384,"8":0.08306,"9":0.02769,"10":0.01384,"11":0.24917,_:"7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":27.93415},R:{_:"0"},M:{"0":0.44679},Q:{"14.9":0.10116},O:{"0":0.33299},H:{"0":0}}; 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..4469fd1 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KE.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00291,"44":0.00291,"47":0.00583,"48":0.00291,"51":0.00291,"52":0.0204,"66":0.00291,"72":0.00291,"78":0.00583,"96":0.00291,"102":0.00291,"103":0.00291,"106":0.00291,"107":0.00291,"108":0.00874,"109":0.00291,"110":0.00291,"111":0.00291,"112":0.00291,"113":0.00583,"115":0.30597,"116":0.00291,"118":0.00583,"119":0.00874,"120":0.00291,"121":0.01166,"122":0.00874,"123":0.01457,"124":0.00583,"125":0.01457,"126":0.03497,"127":0.5828,"128":0.88294,"129":0.02623,_:"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 43 45 46 49 50 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 97 98 99 100 101 104 105 114 117 130 131 3.5 3.6"},D:{"11":0.00583,"41":0.04371,"43":0.00291,"47":0.00291,"49":0.01457,"50":0.00291,"51":0.01166,"53":0.00291,"54":0.00583,"56":0.00874,"58":0.00291,"65":0.00291,"66":0.00874,"68":0.00291,"69":0.01166,"70":0.00874,"71":0.00291,"72":0.00583,"73":0.01457,"74":0.00291,"75":0.00291,"76":0.00583,"77":0.00291,"78":0.00291,"79":0.0204,"80":0.00583,"81":0.00583,"83":0.08742,"85":0.00291,"86":0.00583,"87":0.06119,"88":0.02331,"89":0.01166,"91":0.00583,"92":0.00291,"93":0.21272,"94":0.00583,"95":0.03497,"97":0.00874,"98":0.01166,"99":0.00583,"100":0.00583,"101":0.00583,"102":0.00291,"103":0.07285,"104":0.00583,"105":0.00583,"106":0.03497,"107":0.02331,"108":0.0204,"109":1.1656,"110":0.01748,"111":0.02623,"112":0.01457,"113":0.00583,"114":0.03205,"115":0.01457,"116":0.06119,"117":0.01457,"118":0.01457,"119":0.04954,"120":0.06119,"121":0.03788,"122":0.09033,"123":0.07576,"124":0.16901,"125":0.36425,"126":14.21741,"127":1.81542,"128":0.01166,_:"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 42 44 45 46 48 52 55 57 59 60 61 62 63 64 67 84 90 96 129 130"},F:{"36":0.00291,"46":0.00291,"79":0.00291,"83":0.07285,"85":0.00291,"95":0.0204,"106":0.00291,"107":0.00291,"109":0.06411,"110":0.01166,"111":0.32054,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 80 81 82 84 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00291,"13":0.00291,"14":0.00291,"15":0.00291,"16":0.00291,"17":0.00291,"18":0.03497,"84":0.00291,"89":0.00583,"90":0.00583,"92":0.03497,"100":0.00583,"105":0.00291,"106":0.00291,"107":0.00583,"109":0.0204,"111":0.00291,"112":0.00291,"113":0.00583,"114":0.00874,"115":0.00291,"116":0.00583,"117":0.00583,"118":0.00583,"119":0.00291,"120":0.00583,"121":0.01166,"122":0.01748,"123":0.00874,"124":0.02331,"125":0.04954,"126":2.13888,"127":0.28557,_:"79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 108 110"},E:{"14":0.00291,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3","5.1":0.02914,"12.1":0.00291,"13.1":0.01457,"14.1":0.01166,"15.4":0.00291,"15.5":0.00291,"15.6":0.04371,"16.0":0.00291,"16.1":0.00291,"16.2":0.00291,"16.3":0.00583,"16.4":0.00583,"16.5":0.00583,"16.6":0.13404,"17.0":0.00583,"17.1":0.01166,"17.2":0.01166,"17.3":0.01457,"17.4":0.02331,"17.5":0.22146,"17.6":0.00291,"18.0":0.00583},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00043,"5.0-5.1":0.00022,"6.0-6.1":0.0013,"7.0-7.1":0.0013,"8.1-8.4":0,"9.0-9.2":0.00108,"9.3":0.00434,"10.0-10.2":0.00087,"10.3":0.00759,"11.0-11.2":0.01995,"11.3-11.4":0.00217,"12.0-12.1":0.00152,"12.2-12.5":0.02798,"13.0-13.1":0.00043,"13.2":0.00455,"13.3":0.00152,"13.4-13.7":0.00651,"14.0-14.4":0.01496,"14.5-14.8":0.01692,"15.0-15.1":0.00846,"15.2-15.3":0.00911,"15.4":0.01041,"15.5":0.01258,"15.6-15.8":0.11537,"16.0":0.0232,"16.1":0.04923,"16.2":0.02472,"16.3":0.04142,"16.4":0.00976,"16.5":0.01757,"16.6-16.7":0.144,"17.0":0.01301,"17.1":0.02104,"17.2":0.02039,"17.3":0.03058,"17.4":0.07655,"17.5":1.4018,"17.6":0.01084,"18.0":0.01431},P:{"4":0.09166,"20":0.01018,"21":0.03055,"22":0.11203,"23":0.05092,"24":0.04074,"25":0.65179,_:"5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0","6.2-6.4":0.01018,"7.2-7.4":0.10184,"13.0":0.01018,"16.0":0.02037,"17.0":0.01018,"18.0":0.01018,"19.0":0.04074},I:{"0":0.06356,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00011},K:{"0":12.89425,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00613,"9":0.00306,"10":0.00306,"11":0.10722,_:"6 7 5.5"},S:{"2.5":0.01417,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":51.55213},R:{_:"0"},M:{"0":0.19844},Q:{"14.9":0.00709},O:{"0":0.24096},H:{"0":5.78}}; 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..5316bd9 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KG.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.04582,"90":0.02291,"94":0.00859,"107":0.00286,"112":0.00286,"113":0.00286,"115":0.30072,"116":0.00573,"119":0.02005,"120":0.01718,"121":0.00286,"124":0.00286,"125":0.0401,"126":0.00573,"127":0.20621,"128":0.44392,_:"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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 91 92 93 95 96 97 98 99 100 101 102 103 104 105 106 108 109 110 111 114 117 118 122 123 129 130 131 3.5 3.6"},D:{"38":0.00286,"47":0.00286,"48":0.00286,"49":0.0401,"50":0.00286,"52":0.00286,"53":0.00286,"56":0.01718,"57":0.00286,"58":0.00573,"68":0.00573,"69":0.00859,"73":0.02578,"77":0.00286,"79":0.00859,"81":0.00286,"83":0.01718,"84":0.01718,"85":0.00286,"86":0.00286,"87":0.01432,"88":0.00286,"89":0.00286,"90":0.01146,"91":0.00286,"95":0.00286,"96":0.00286,"97":0.00286,"99":0.00859,"100":0.00859,"101":0.07733,"102":0.01146,"103":0.00859,"106":0.03723,"107":0.00859,"108":0.00286,"109":3.39384,"110":0.02005,"111":0.04296,"112":0.05442,"113":0.00286,"114":0.01432,"115":0.00573,"116":0.02291,"117":0.01432,"118":0.1833,"119":0.00859,"120":0.34654,"121":0.0315,"122":0.03437,"123":0.06587,"124":0.1747,"125":0.31504,"126":12.20064,"127":1.66112,_:"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 51 54 55 59 60 61 62 63 64 65 66 67 70 71 72 74 75 76 78 80 92 93 94 98 104 105 128 129 130"},F:{"28":0.00286,"42":0.00859,"46":0.00286,"70":0.00859,"83":0.02005,"84":0.00286,"85":0.02578,"86":0.00859,"95":0.16038,"101":0.00286,"107":0.00286,"109":0.3179,"110":0.02005,"111":0.68736,_:"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 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 78 79 80 81 82 87 88 89 90 91 92 93 94 96 97 98 99 100 102 103 104 105 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.0315},B:{"14":0.00286,"15":0.00573,"17":0.00286,"18":0.01146,"92":0.00859,"100":0.00286,"102":0.02864,"109":0.00573,"110":0.00286,"111":0.00859,"114":0.00286,"119":0.03437,"120":0.00286,"122":0.00859,"123":0.00573,"124":0.02291,"125":0.00859,"126":1.07973,"127":0.18902,_:"12 13 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 103 104 105 106 107 108 112 113 115 116 117 118 121"},E:{"14":0.00286,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 13.1 15.4","5.1":0.07446,"12.1":0.00286,"14.1":0.00859,"15.1":0.00286,"15.2-15.3":0.00859,"15.5":0.00859,"15.6":0.03723,"16.0":0.00286,"16.1":0.16611,"16.2":0.00859,"16.3":0.08019,"16.4":0.00859,"16.5":0.01146,"16.6":0.12029,"17.0":0.00859,"17.1":0.03437,"17.2":0.02005,"17.3":0.01718,"17.4":0.07446,"17.5":0.32363,"17.6":0.00286,"18.0":0.00573},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0022,"5.0-5.1":0.0011,"6.0-6.1":0.00659,"7.0-7.1":0.00659,"8.1-8.4":0,"9.0-9.2":0.00549,"9.3":0.02198,"10.0-10.2":0.0044,"10.3":0.03846,"11.0-11.2":0.1011,"11.3-11.4":0.01099,"12.0-12.1":0.00769,"12.2-12.5":0.14176,"13.0-13.1":0.0022,"13.2":0.02308,"13.3":0.00769,"13.4-13.7":0.03297,"14.0-14.4":0.07583,"14.5-14.8":0.08572,"15.0-15.1":0.04286,"15.2-15.3":0.04616,"15.4":0.05275,"15.5":0.06374,"15.6-15.8":0.58464,"16.0":0.11759,"16.1":0.24946,"16.2":0.12528,"16.3":0.2099,"16.4":0.04945,"16.5":0.08901,"16.6-16.7":0.7297,"17.0":0.06594,"17.1":0.1066,"17.2":0.1033,"17.3":0.15495,"17.4":0.38793,"17.5":7.10357,"17.6":0.05495,"18.0":0.07253},P:{"4":0.10383,"20":0.02077,"21":0.05192,"22":0.09345,"23":0.10383,"24":0.08306,"25":1.11099,_:"5.0-5.4 8.2 10.1 13.0","6.2-6.4":0.01038,"7.2-7.4":0.10383,"9.2":0.01038,"11.1-11.2":0.01038,"12.0":0.01038,"14.0":0.01038,"15.0":0.01038,"16.0":0.01038,"17.0":0.01038,"18.0":0.01038,"19.0":0.03115},I:{"0":0.00711,"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.00001},K:{"0":0.57802,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01289,"11":0.03866,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":56.57206},R:{_:"0"},M:{"0":0.19267},Q:{"14.9":0.00714},O:{"0":0.94909},H:{"0":0}}; 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..e6e4564 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KH.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.00734,"47":0.02201,"50":0.00734,"51":0.01468,"52":0.02568,"67":0.00367,"68":0.00367,"72":0.00734,"75":0.02568,"78":0.04036,"82":0.00367,"102":0.00367,"103":0.01468,"105":0.00734,"106":0.00367,"107":0.00367,"108":0.00367,"109":0.00734,"110":0.01468,"111":0.00367,"112":0.00367,"113":0.00367,"115":0.13575,"117":0.00367,"118":0.00367,"122":0.00367,"124":0.00367,"125":0.01101,"126":0.01101,"127":0.52467,"128":0.71179,"129":0.00734,_:"2 3 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 48 49 53 54 55 56 57 58 59 60 61 62 63 64 65 66 69 70 71 73 74 76 77 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 104 114 116 119 120 121 123 130 131 3.5 3.6"},D:{"29":0.00367,"37":0.00367,"38":0.01468,"43":0.00367,"48":0.00367,"49":0.00367,"56":0.08439,"57":0.00734,"58":0.00734,"67":0.00367,"69":0.00734,"70":0.01468,"71":0.00367,"72":0.00734,"74":0.00367,"75":0.00367,"76":0.00734,"77":0.00367,"79":0.06604,"80":0.00367,"81":0.05137,"83":0.00367,"84":0.00734,"85":0.06604,"86":0.05137,"87":0.07338,"88":0.00367,"89":0.00367,"90":0.00367,"91":0.00367,"94":0.01835,"95":0.00367,"97":0.01468,"98":0.01101,"99":0.0477,"100":0.00734,"101":0.01468,"102":0.03302,"103":0.04036,"104":0.06604,"105":0.02201,"106":0.03302,"107":0.06971,"108":0.06604,"109":0.59071,"110":0.03302,"111":0.04403,"112":0.03302,"113":0.02568,"114":0.01468,"115":0.01468,"116":0.0587,"117":0.00367,"118":0.01835,"119":0.06237,"120":0.13208,"121":0.09173,"122":0.14676,"123":0.12475,"124":0.22748,"125":0.54301,"126":21.69847,"127":2.19406,"128":0.03669,"129":0.00367,_:"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 30 31 32 33 34 35 36 39 40 41 42 44 45 46 47 50 51 52 53 54 55 59 60 61 62 63 64 65 66 68 73 78 92 93 96 130"},F:{"44":0.00734,"65":0.00367,"83":0.00734,"89":0.00367,"93":0.00367,"94":0.00367,"95":0.01468,"109":0.14676,"110":0.00734,"111":0.48064,_:"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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 84 85 86 87 88 90 91 92 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00734,"17":0.00367,"18":0.01468,"84":0.00367,"89":0.00367,"92":0.03302,"100":0.00367,"102":0.00734,"103":0.00367,"106":0.00367,"107":0.00367,"108":0.01468,"109":0.01468,"110":0.00367,"111":0.00367,"112":0.08072,"113":0.00367,"114":0.00367,"116":0.00367,"117":0.02935,"118":0.00367,"119":0.00367,"120":0.01468,"121":0.01101,"122":0.00734,"123":0.02201,"124":0.02935,"125":0.02935,"126":1.8345,"127":0.22381,_:"12 13 15 16 79 80 81 83 85 86 87 88 90 91 93 94 95 96 97 98 99 101 104 105 115"},E:{"10":0.01468,"14":0.01101,"15":0.00734,_:"0 4 5 6 7 8 9 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.02201,"13.1":0.01835,"14.1":0.02568,"15.1":0.01101,"15.2-15.3":0.00367,"15.4":0.01468,"15.5":0.01835,"15.6":0.12475,"16.0":0.03302,"16.1":0.04036,"16.2":0.01468,"16.3":0.03669,"16.4":0.02201,"16.5":0.01468,"16.6":0.12842,"17.0":0.00734,"17.1":0.01468,"17.2":0.01101,"17.3":0.02935,"17.4":0.11374,"17.5":0.61272,"17.6":0.01101,"18.0":0.01468},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00408,"5.0-5.1":0.00204,"6.0-6.1":0.01224,"7.0-7.1":0.01224,"8.1-8.4":0,"9.0-9.2":0.0102,"9.3":0.0408,"10.0-10.2":0.00816,"10.3":0.07139,"11.0-11.2":0.18767,"11.3-11.4":0.0204,"12.0-12.1":0.01428,"12.2-12.5":0.26314,"13.0-13.1":0.00408,"13.2":0.04284,"13.3":0.01428,"13.4-13.7":0.0612,"14.0-14.4":0.14075,"14.5-14.8":0.15911,"15.0-15.1":0.07955,"15.2-15.3":0.08567,"15.4":0.09791,"15.5":0.11831,"15.6-15.8":1.0852,"16.0":0.21826,"16.1":0.46305,"16.2":0.23254,"16.3":0.38961,"16.4":0.09179,"16.5":0.16523,"16.6-16.7":1.35446,"17.0":0.12239,"17.1":0.19787,"17.2":0.19175,"17.3":0.28762,"17.4":0.72007,"17.5":13.18558,"17.6":0.10199,"18.0":0.13463},P:{"4":0.04207,"20":0.01052,"21":0.01052,"22":0.03155,"23":0.11569,"24":0.03155,"25":0.80986,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 18.0","16.0":0.01052,"17.0":0.01052,"19.0":0.01052},I:{"0":0.05047,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00009},K:{"0":0.43684,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.05643,"9":0.01209,"10":0.00806,"11":1.02779,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":41.39368},R:{_:"0"},M:{"0":0.16461},Q:{"14.9":0.04432},O:{"0":1.03828},H:{"0":0}}; 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..4713a48 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KI.js @@ -0,0 +1 @@ +module.exports={C:{"115":0.25398,"127":0.0249,"128":0.4565,_:"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 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 3.5 3.6"},D:{"72":0.15272,"99":0.05146,"109":0.0249,"114":0.0249,"123":0.25398,"125":0.17762,"126":2.158,"127":0.71048,_:"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 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 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119 120 121 122 124 128 129 130"},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 99 100 101 102 103 104 105 106 107 108 109 110 111 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"100":0.15272,"109":0.0249,"120":0.20252,"123":0.05146,"124":0.05146,"126":3.68022,"127":0.17762,_:"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 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 121 122 125"},E:{_:"0 4 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.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.2 17.4 17.6 18.0","15.6":0.0249,"16.6":0.60922,"17.1":0.0249,"17.3":0.07636,"17.5":0.22908},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00037,"5.0-5.1":0.00018,"6.0-6.1":0.00111,"7.0-7.1":0.00111,"8.1-8.4":0,"9.0-9.2":0.00092,"9.3":0.00369,"10.0-10.2":0.00074,"10.3":0.00645,"11.0-11.2":0.01696,"11.3-11.4":0.00184,"12.0-12.1":0.00129,"12.2-12.5":0.02378,"13.0-13.1":0.00037,"13.2":0.00387,"13.3":0.00129,"13.4-13.7":0.00553,"14.0-14.4":0.01272,"14.5-14.8":0.01438,"15.0-15.1":0.00719,"15.2-15.3":0.00774,"15.4":0.00885,"15.5":0.01069,"15.6-15.8":0.09806,"16.0":0.01972,"16.1":0.04184,"16.2":0.02101,"16.3":0.0352,"16.4":0.00829,"16.5":0.01493,"16.6-16.7":0.12238,"17.0":0.01106,"17.1":0.01788,"17.2":0.01733,"17.3":0.02599,"17.4":0.06506,"17.5":1.19141,"17.6":0.00922,"18.0":0.01216},P:{"21":0.23039,"24":0.03005,"25":0.76128,_:"4 20 22 23 5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 15.0 17.0 18.0","7.2-7.4":0.10017,"11.1-11.2":0.03005,"14.0":0.05008,"16.0":0.10017,"19.0":0.46077},I:{"0":0.33243,"3":0,"4":0.00003,"2.1":0,"2.2":0.00007,"2.3":0,"4.1":0.0002,"4.2-4.3":0.00013,"4.4":0,"4.4.3-4.4.4":0.00057},K:{"0":0.05004,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":83.78348},R:{_:"0"},M:{"0":0.02502},Q:{"14.9":0.07506},O:{"0":2.2518},H:{"0":0}}; 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..08260af --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KM.js @@ -0,0 +1 @@ +module.exports={C:{"42":0.0015,"51":0.00899,"52":0.0015,"60":0.00899,"72":0.02548,"81":0.006,"89":0.0045,"98":0.0075,"99":0.0015,"105":0.0015,"106":0.0075,"109":0.0075,"110":0.0015,"114":0.0015,"115":0.1484,"117":0.006,"118":0.0045,"120":0.0045,"121":0.0015,"126":0.0075,"127":0.11992,"128":0.3073,"129":0.0015,_:"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 43 44 45 46 47 48 49 50 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 82 83 84 85 86 87 88 90 91 92 93 94 95 96 97 100 101 102 103 104 107 108 111 112 113 116 119 122 123 124 125 130 131 3.5 3.6"},D:{"38":0.03748,"54":0.0015,"55":0.02698,"64":0.01649,"65":0.01199,"68":0.02548,"69":0.0015,"70":0.08394,"79":0.01949,"81":0.02548,"83":0.01649,"87":0.01499,"88":0.0075,"89":0.05846,"90":0.04047,"93":0.06296,"94":0.0045,"95":0.0015,"97":0.01499,"101":0.0015,"102":0.01649,"103":0.06146,"104":0.01349,"105":0.01349,"106":0.0045,"107":0.0075,"108":0.01649,"109":0.80047,"112":0.0015,"113":0.0045,"114":0.0015,"115":0.0045,"116":0.02998,"117":0.01199,"118":0.0015,"119":0.01649,"120":0.03298,"121":0.04647,"122":0.03298,"123":0.02548,"124":0.02698,"125":0.17388,"126":4.0488,"127":0.36576,_:"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 47 48 49 50 51 52 53 56 57 58 59 60 61 62 63 66 67 71 72 73 74 75 76 77 78 80 84 85 86 91 92 96 98 99 100 110 111 128 129 130"},F:{"44":0.02249,"50":0.006,"82":0.01649,"84":0.01199,"85":0.0015,"86":0.0015,"95":0.02698,"105":0.006,"106":0.0015,"110":0.01199,"111":0.16789,_:"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 45 46 47 48 49 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 83 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 107 108 109 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.03748,"13":0.0045,"15":0.0045,"16":0.0075,"17":0.006,"18":0.01349,"84":0.00899,"85":0.0075,"89":0.07195,"90":0.03298,"92":0.01499,"100":0.0045,"101":0.0015,"113":0.00899,"114":0.0045,"118":0.13491,"120":0.02998,"121":0.0045,"122":0.01649,"123":0.07045,"124":0.02848,"125":0.01349,"126":1.22768,"127":0.07795,_:"14 79 80 81 83 86 87 88 91 93 94 95 96 97 98 99 102 103 104 105 106 107 108 109 110 111 112 115 116 117 119"},E:{"13":0.01349,"14":0.01649,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.6 18.0","10.1":0.02998,"14.1":0.0015,"17.1":0.0045,"17.2":0.01199,"17.3":0.0015,"17.4":0.02099,"17.5":0.06895},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00149,"5.0-5.1":0.00074,"6.0-6.1":0.00447,"7.0-7.1":0.00447,"8.1-8.4":0,"9.0-9.2":0.00372,"9.3":0.01489,"10.0-10.2":0.00298,"10.3":0.02606,"11.0-11.2":0.06851,"11.3-11.4":0.00745,"12.0-12.1":0.00521,"12.2-12.5":0.09606,"13.0-13.1":0.00149,"13.2":0.01564,"13.3":0.00521,"13.4-13.7":0.02234,"14.0-14.4":0.05138,"14.5-14.8":0.05809,"15.0-15.1":0.02904,"15.2-15.3":0.03128,"15.4":0.03575,"15.5":0.04319,"15.6-15.8":0.39617,"16.0":0.07968,"16.1":0.16904,"16.2":0.08489,"16.3":0.14224,"16.4":0.03351,"16.5":0.06032,"16.6-16.7":0.49447,"17.0":0.04468,"17.1":0.07223,"17.2":0.07,"17.3":0.105,"17.4":0.26287,"17.5":4.81366,"17.6":0.03723,"18.0":0.04915},P:{"4":0.03037,"20":0.03037,"21":0.03037,"22":0.23287,"23":0.19237,"24":0.41512,"25":0.39487,"5.0-5.4":0.01012,_:"6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 17.0","7.2-7.4":0.17212,"13.0":0.01012,"16.0":0.05062,"18.0":0.10125,"19.0":0.06075},I:{"0":0.0593,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.0001},K:{"0":0.72809,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0075,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":80.06867},R:{_:"0"},M:{"0":0.034},Q:{"14.9":0.0085},O:{"0":0.19552},H:{"0":0.02}}; 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..99a5a7f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KN.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00707,"97":0.00707,"103":0.00354,"105":0.00354,"114":0.00354,"115":0.1379,"118":0.00354,"124":0.02122,"125":0.00354,"126":0.00354,"127":0.15558,"128":0.3147,_:"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 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 98 99 100 101 102 104 106 107 108 109 110 111 112 113 116 117 119 120 121 122 123 129 130 131 3.5 3.6"},D:{"41":0.00354,"50":0.00354,"58":0.00707,"70":0.00707,"76":0.06718,"77":0.00354,"79":0.07779,"81":0.01061,"83":0.0495,"87":1.89883,"88":0.02122,"92":0.00707,"93":0.00707,"94":0.08133,"97":1.21285,"98":0.00354,"99":0.00354,"103":0.06718,"107":0.00707,"108":0.00354,"109":0.40664,"110":0.02122,"111":0.00707,"112":0.01414,"113":0.00354,"114":0.00707,"115":0.10254,"116":0.00707,"117":0.0389,"119":0.03182,"120":0.02829,"121":0.03536,"122":0.13083,"123":0.04243,"124":0.05658,"125":0.64002,"126":14.34909,"127":1.83518,"128":0.00707,"129":0.00354,_:"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 42 43 44 45 46 47 48 49 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 78 80 84 85 86 89 90 91 95 96 100 101 102 104 105 106 118 130"},F:{"83":0.02475,"102":0.00354,"109":0.15912,"110":0.02475,"111":0.31117,_:"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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00707,"92":0.00354,"100":0.00354,"105":0.00354,"109":0.05304,"111":0.01414,"115":0.01414,"120":0.0389,"121":0.00354,"122":0.01414,"124":0.04597,"125":0.61526,"126":6.48149,"127":0.68598,_:"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 101 102 103 104 106 107 108 110 112 113 114 116 117 118 119 123"},E:{"14":0.02122,_:"0 4 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.2","12.1":0.00354,"13.1":0.02475,"14.1":0.03536,"15.1":0.00354,"15.2-15.3":0.01414,"15.4":0.00354,"15.5":0.00707,"15.6":0.07779,"16.0":0.00354,"16.1":0.02475,"16.3":0.08486,"16.4":0.00707,"16.5":0.02829,"16.6":0.10962,"17.0":0.01414,"17.1":0.0389,"17.2":0.0389,"17.3":0.04243,"17.4":0.04243,"17.5":1.39318,"17.6":0.01768,"18.0":0.00707},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00326,"5.0-5.1":0.00163,"6.0-6.1":0.00978,"7.0-7.1":0.00978,"8.1-8.4":0,"9.0-9.2":0.00815,"9.3":0.03259,"10.0-10.2":0.00652,"10.3":0.05704,"11.0-11.2":0.14992,"11.3-11.4":0.0163,"12.0-12.1":0.01141,"12.2-12.5":0.21022,"13.0-13.1":0.00326,"13.2":0.03422,"13.3":0.01141,"13.4-13.7":0.04889,"14.0-14.4":0.11244,"14.5-14.8":0.12711,"15.0-15.1":0.06355,"15.2-15.3":0.06844,"15.4":0.07822,"15.5":0.09452,"15.6-15.8":0.86693,"16.0":0.17436,"16.1":0.36991,"16.2":0.18577,"16.3":0.31125,"16.4":0.07333,"16.5":0.132,"16.6-16.7":1.08204,"17.0":0.09777,"17.1":0.15807,"17.2":0.15318,"17.3":0.22977,"17.4":0.57524,"17.5":10.53357,"17.6":0.08148,"18.0":0.10755},P:{"4":0.03279,"20":0.18582,"21":0.04372,"22":0.16396,"23":0.07652,"24":0.05465,"25":3.32295,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 17.0","7.2-7.4":0.33885,"13.0":0.01093,"16.0":0.02186,"18.0":0.01093,"19.0":0.02186},I:{"0":0.02577,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.59469,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.00354,"11":0.01414,_:"6 7 8 9 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":44.58899},R:{_:"0"},M:{"0":0.29734},Q:{_:"14.9"},O:{"0":0.00646},H:{"0":0}}; 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..594b4b2 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KP.js @@ -0,0 +1 @@ +module.exports={C:{_:"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 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 3.5 3.6"},D:{"98":0.51014,"108":0.34009,"109":1.02281,"121":0.34009,"122":0.34009,"126":2.89586,_:"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 99 100 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117 118 119 120 123 124 125 127 128 129 130"},F:{"95":0.17005,_:"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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"126":3.74863,_:"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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 127"},E:{_:"0 4 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.1 15.2-15.3 15.4 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.6 18.0","15.5":3.0659,"17.4":2.55577,"17.5":8.68757},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.01145,"5.0-5.1":0.00572,"6.0-6.1":0.03434,"7.0-7.1":0.03434,"8.1-8.4":0,"9.0-9.2":0.02862,"9.3":0.11448,"10.0-10.2":0.0229,"10.3":0.20034,"11.0-11.2":0.52662,"11.3-11.4":0.05724,"12.0-12.1":0.04007,"12.2-12.5":0.73841,"13.0-13.1":0.01145,"13.2":0.12021,"13.3":0.04007,"13.4-13.7":0.17172,"14.0-14.4":0.39496,"14.5-14.8":0.44648,"15.0-15.1":0.22324,"15.2-15.3":0.24041,"15.4":0.27476,"15.5":0.332,"15.6-15.8":3.04522,"16.0":0.61248,"16.1":1.29937,"16.2":0.65255,"16.3":1.0933,"16.4":0.25758,"16.5":0.46365,"16.6-16.7":3.8008,"17.0":0.34345,"17.1":0.55524,"17.2":0.53807,"17.3":0.8071,"17.4":2.02061,"17.5":37.00058,"17.6":0.28621,"18.0":0.37779},P:{_:"4 20 21 22 23 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.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":0.17163,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":13.63043},R:{_:"0"},M:{_:"0"},Q:{_:"14.9"},O:{"0":0.67904},H:{"0":0}}; 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..dfba7e4 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KR.js @@ -0,0 +1 @@ +module.exports={C:{"50":0.00742,"52":0.01114,"53":0.00742,"56":0.00742,"102":0.00371,"103":0.01114,"115":0.03341,"124":0.00371,"125":0.00371,"126":0.00371,"127":0.12621,"128":0.22272,_:"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 51 54 55 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 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 129 130 131 3.5 3.6"},D:{"33":0.00371,"42":0.01114,"49":0.00371,"56":0.00371,"61":0.00371,"75":0.00371,"77":0.00371,"79":0.00742,"80":0.00371,"81":0.02598,"83":0.00371,"85":0.00371,"86":0.00371,"87":0.00742,"89":0.00742,"90":0.00371,"91":0.01114,"94":0.03712,"95":0.00371,"96":0.00371,"97":0.00371,"98":0.02598,"100":0.00371,"101":0.00371,"102":0.00371,"103":0.01485,"104":0.03341,"105":0.00742,"106":0.04083,"107":0.01114,"108":0.01856,"109":0.63846,"110":0.01114,"111":0.5865,"112":0.01856,"113":0.0297,"114":0.04454,"115":0.00371,"116":0.07053,"117":0.01485,"118":0.01856,"119":0.02227,"120":0.04454,"121":0.15962,"122":0.06682,"123":0.08538,"124":0.14477,"125":0.39347,"126":20.01882,"127":2.46848,"128":0.00742,"129":0.00371,_:"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 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 62 63 64 65 66 67 68 69 70 71 72 73 74 76 78 84 88 92 93 99 130"},F:{"83":0.00742,"95":0.00371,"102":0.00371,"109":0.01114,"111":0.11878,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"13":0.00742,"16":0.00371,"18":0.00371,"92":0.00371,"100":0.00371,"103":0.00371,"104":0.00371,"106":0.00371,"107":0.02227,"108":0.00742,"109":0.08909,"110":0.00742,"111":0.01114,"112":0.01856,"113":0.00742,"114":0.01114,"115":0.00742,"116":0.00742,"117":0.00742,"118":0.00742,"119":0.01485,"120":0.02598,"121":0.01485,"122":0.02227,"123":0.01856,"124":0.07795,"125":0.06682,"126":5.41952,"127":0.69786,_:"12 14 15 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 105"},E:{"8":0.00371,"14":0.00371,_:"0 4 5 6 7 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3","13.1":0.00371,"14.1":0.01114,"15.1":0.00371,"15.4":0.00371,"15.5":0.00742,"15.6":0.04454,"16.0":0.00742,"16.1":0.00742,"16.2":0.00742,"16.3":0.01485,"16.4":0.00371,"16.5":0.01114,"16.6":0.04083,"17.0":0.00742,"17.1":0.01114,"17.2":0.01485,"17.3":0.01114,"17.4":0.04083,"17.5":0.464,"17.6":0.00371,"18.0":0.01114},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00232,"5.0-5.1":0.00116,"6.0-6.1":0.00697,"7.0-7.1":0.00697,"8.1-8.4":0,"9.0-9.2":0.00581,"9.3":0.02323,"10.0-10.2":0.00465,"10.3":0.04065,"11.0-11.2":0.10685,"11.3-11.4":0.01161,"12.0-12.1":0.00813,"12.2-12.5":0.14982,"13.0-13.1":0.00232,"13.2":0.02439,"13.3":0.00813,"13.4-13.7":0.03484,"14.0-14.4":0.08014,"14.5-14.8":0.09059,"15.0-15.1":0.04529,"15.2-15.3":0.04878,"15.4":0.05575,"15.5":0.06736,"15.6-15.8":0.61786,"16.0":0.12427,"16.1":0.26364,"16.2":0.1324,"16.3":0.22183,"16.4":0.05226,"16.5":0.09407,"16.6-16.7":0.77117,"17.0":0.06968,"17.1":0.11266,"17.2":0.10917,"17.3":0.16376,"17.4":0.40997,"17.5":7.50725,"17.6":0.05807,"18.0":0.07665},P:{"20":0.01019,"21":0.05095,"22":0.12228,"23":0.1019,"24":0.31588,"25":11.16789,_:"4 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 14.0 15.0 16.0","12.0":0.01019,"13.0":0.01019,"17.0":0.01019,"18.0":0.02038,"19.0":0.01019},I:{"0":0.11905,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00007,"4.2-4.3":0.00005,"4.4":0,"4.4.3-4.4.4":0.0002},K:{"0":0.21379,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.0087,"9":0.00435,"10":0.00435,"11":0.261,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":27.29826},R:{_:"0"},M:{"0":0.17606},Q:{"14.9":0.02515},O:{"0":0.09432},H:{"0":0}}; 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..911f87c --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KW.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00389,"48":0.00195,"52":0.00195,"66":0.00195,"68":0.00195,"78":0.00195,"94":0.00195,"107":0.00195,"108":0.00778,"115":0.05449,"117":0.00195,"119":0.00973,"120":0.00195,"121":0.00584,"122":0.00195,"125":0.00973,"126":0.00778,"127":0.144,"128":0.27828,"129":0.00389,_:"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 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 101 102 103 104 105 106 109 110 111 112 113 114 116 118 123 124 130 131 3.5 3.6"},D:{"38":0.00778,"41":0.00389,"47":0.00195,"49":0.00195,"56":0.00389,"58":0.04087,"63":0.00195,"64":0.00195,"68":0.00195,"70":0.00195,"73":0.00195,"75":0.01557,"76":0.00195,"78":0.01168,"79":0.02141,"80":0.00195,"81":0.00195,"83":0.07395,"84":0.00195,"85":0.00195,"86":0.00389,"87":0.0467,"88":0.0253,"89":0.00195,"90":0.02335,"91":0.00389,"92":0.00195,"93":0.00778,"94":0.00195,"95":0.00195,"96":0.00778,"98":0.00584,"99":0.02141,"101":0.00195,"102":0.00195,"103":0.07395,"104":0.01168,"105":0.00389,"106":0.00778,"107":0.01362,"108":0.01362,"109":0.61688,"110":0.01557,"111":0.02724,"112":0.00973,"113":0.00195,"114":0.00778,"115":0.00389,"116":0.02335,"117":0.00389,"118":0.00778,"119":0.02919,"120":0.06227,"121":0.03503,"122":0.06422,"123":0.0506,"124":0.05254,"125":0.17125,"126":8.48067,"127":1.2143,"128":0.00778,_:"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 42 43 44 45 46 48 50 51 52 53 54 55 57 59 60 61 62 65 66 67 69 71 72 74 77 97 100 129 130"},F:{"46":0.01168,"83":0.0467,"89":0.00195,"95":0.00973,"102":0.00195,"109":0.18682,"110":0.00195,"111":0.1693,_:"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 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 84 85 86 87 88 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00195,"17":0.00195,"18":0.00778,"84":0.00195,"92":0.01168,"100":0.00195,"105":0.00389,"107":0.00584,"109":0.03114,"114":0.00778,"115":0.00195,"119":0.00195,"120":0.00973,"121":0.00195,"122":0.00973,"123":0.01168,"124":0.02141,"125":0.11481,"126":2.18147,"127":0.32693,_:"13 14 15 16 79 80 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 106 108 110 111 112 113 116 117 118"},E:{"7":0.15568,"13":0.00195,"14":0.02335,"15":0.0253,_:"0 4 5 6 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.04865,"13.1":0.00973,"14.1":0.10119,"15.1":0.06422,"15.2-15.3":0.00778,"15.4":0.00973,"15.5":0.02919,"15.6":0.06811,"16.0":0.00389,"16.1":0.06422,"16.2":0.17903,"16.3":0.0506,"16.4":0.01168,"16.5":0.01751,"16.6":0.12649,"17.0":0.01168,"17.1":0.01946,"17.2":0.02141,"17.3":0.02724,"17.4":0.07006,"17.5":0.9983,"17.6":0.00584,"18.0":0.01362},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00597,"5.0-5.1":0.00298,"6.0-6.1":0.01791,"7.0-7.1":0.01791,"8.1-8.4":0,"9.0-9.2":0.01492,"9.3":0.0597,"10.0-10.2":0.01194,"10.3":0.10447,"11.0-11.2":0.2746,"11.3-11.4":0.02985,"12.0-12.1":0.02089,"12.2-12.5":0.38504,"13.0-13.1":0.00597,"13.2":0.06268,"13.3":0.02089,"13.4-13.7":0.08954,"14.0-14.4":0.20595,"14.5-14.8":0.23282,"15.0-15.1":0.11641,"15.2-15.3":0.12536,"15.4":0.14327,"15.5":0.17312,"15.6-15.8":1.58792,"16.0":0.31937,"16.1":0.67755,"16.2":0.34027,"16.3":0.5701,"16.4":0.13432,"16.5":0.24177,"16.6-16.7":1.98192,"17.0":0.17909,"17.1":0.28953,"17.2":0.28057,"17.3":0.42086,"17.4":1.05364,"17.5":19.29383,"17.6":0.14924,"18.0":0.197},P:{"4":0.05109,"20":0.04087,"21":0.09197,"22":0.31677,"23":0.28612,"24":0.33721,"25":3.44361,"5.0-5.4":0.01022,"6.2-6.4":0.01022,"7.2-7.4":0.07153,_:"8.2 9.2 10.1 12.0","11.1-11.2":0.05109,"13.0":0.02044,"14.0":0.02044,"15.0":0.01022,"16.0":0.05109,"17.0":0.01022,"18.0":0.02044,"19.0":0.03066},I:{"0":0.05618,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.0001},K:{"0":2.02766,_:"10 11 12 11.1 11.5 12.1"},A:{"9":0.00198,"11":0.10894,_:"6 7 8 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":42.90134},R:{_:"0"},M:{"0":0.13692},Q:{_:"14.9"},O:{"0":1.48999},H:{"0":0.01}}; 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..b871ef1 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KY.js @@ -0,0 +1 @@ +module.exports={C:{"76":0.0038,"78":0.0038,"94":0.11017,"115":0.0152,"117":0.0038,"120":0.0038,"121":0.0038,"123":0.02279,"124":0.0114,"125":0.03039,"126":0.27733,"127":0.54706,"128":0.89277,_:"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 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 118 119 122 129 130 131 3.5 3.6"},D:{"40":0.0038,"69":0.0038,"76":0.0114,"77":0.0076,"79":0.0076,"83":0.0114,"87":0.0038,"93":0.019,"94":0.0038,"98":0.05319,"99":0.03039,"102":0.0076,"103":0.0076,"105":0.0038,"109":0.31912,"111":0.0114,"112":0.0076,"113":0.0076,"114":0.03799,"115":0.0114,"116":0.17096,"119":0.04939,"120":0.07978,"121":0.04179,"122":0.11397,"123":0.05699,"124":0.3647,"125":0.61924,"126":17.19048,"127":1.61837,"129":0.0038,_:"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 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 70 71 72 73 74 75 78 80 81 84 85 86 88 89 90 91 92 95 96 97 100 101 104 106 107 108 110 117 118 128 130"},F:{"83":0.0076,"109":0.3723,"111":0.32292,_:"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 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 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0038,"92":0.0076,"98":0.0114,"108":0.0076,"109":0.0076,"110":0.09498,"114":0.0038,"115":0.0076,"123":0.0114,"124":0.03039,"125":0.24694,"126":7.44604,"127":0.95735,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 99 100 101 102 103 104 105 106 107 111 112 113 116 117 118 119 120 121 122"},E:{"14":0.0038,_:"0 4 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 12.1","13.1":0.02659,"14.1":0.05319,"15.1":0.0152,"15.2-15.3":0.0076,"15.4":0.0152,"15.5":0.0076,"15.6":0.3685,"16.0":0.0152,"16.1":0.02279,"16.2":0.04179,"16.3":0.17475,"16.4":0.02659,"16.5":0.05319,"16.6":0.30772,"17.0":0.03419,"17.1":0.06078,"17.2":0.06078,"17.3":0.019,"17.4":0.23174,"17.5":3.25194,"17.6":0.019,"18.0":0.0114},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00541,"5.0-5.1":0.0027,"6.0-6.1":0.01623,"7.0-7.1":0.01623,"8.1-8.4":0,"9.0-9.2":0.01352,"9.3":0.05409,"10.0-10.2":0.01082,"10.3":0.09465,"11.0-11.2":0.24879,"11.3-11.4":0.02704,"12.0-12.1":0.01893,"12.2-12.5":0.34885,"13.0-13.1":0.00541,"13.2":0.05679,"13.3":0.01893,"13.4-13.7":0.08113,"14.0-14.4":0.18659,"14.5-14.8":0.21093,"15.0-15.1":0.10547,"15.2-15.3":0.11358,"15.4":0.1298,"15.5":0.15685,"15.6-15.8":1.43866,"16.0":0.28936,"16.1":0.61387,"16.2":0.30829,"16.3":0.51651,"16.4":0.12169,"16.5":0.21904,"16.6-16.7":1.79563,"17.0":0.16226,"17.1":0.26231,"17.2":0.2542,"17.3":0.3813,"17.4":0.9546,"17.5":17.48031,"17.6":0.13521,"18.0":0.17848},P:{"4":0.19023,"21":0.05284,"22":0.05284,"23":0.09512,"24":0.02114,"25":4.03719,_:"20 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 16.0 18.0","5.0-5.4":0.01057,"7.2-7.4":0.04227,"15.0":0.01057,"17.0":0.02114,"19.0":0.01057},I:{"0":0.00618,"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.00001},K:{"0":0.07441,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0038,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":29.02087},R:{_:"0"},M:{"0":0.51468},Q:{_:"14.9"},O:{"0":0.08061},H:{"0":0}}; 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..d750148 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KZ.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.0106,"62":0.00353,"68":0.00353,"71":0.00706,"84":0.00706,"100":0.00353,"101":0.01413,"108":0.00353,"110":0.00353,"115":0.36733,"116":0.00353,"118":0.02826,"119":0.00353,"120":0.00353,"121":0.0106,"122":0.00353,"123":0.00353,"124":0.00353,"125":0.00706,"126":0.02119,"127":0.39205,"128":0.64636,"129":0.00353,_:"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 63 64 65 66 67 69 70 72 73 74 75 76 77 78 79 80 81 82 83 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 102 103 104 105 106 107 109 111 112 113 114 117 130 131 3.5 3.6"},D:{"26":0.01413,"34":0.00353,"38":0.03532,"49":0.01766,"53":0.00353,"64":0.01413,"66":0.00706,"68":0.00706,"69":0.00353,"71":0.00353,"74":0.02472,"79":0.02826,"80":0.0106,"81":0.02119,"83":0.00353,"84":0.00353,"85":0.00353,"86":0.00353,"87":0.02472,"88":0.00353,"89":0.00353,"90":0.01413,"91":0.05298,"92":0.02119,"93":0.00353,"94":0.00706,"95":0.00353,"96":0.00706,"97":0.00353,"98":0.01766,"99":0.00706,"100":0.0106,"101":0.00353,"102":0.02826,"103":0.0989,"104":0.00353,"105":0.02826,"106":0.15894,"107":0.0106,"108":0.05298,"109":2.07682,"110":0.0106,"111":0.0106,"112":0.01766,"113":0.01413,"114":0.01413,"115":0.00353,"116":0.12362,"117":0.01413,"118":0.06358,"119":0.02472,"120":0.06711,"121":0.06358,"122":0.0777,"123":0.08477,"124":0.1766,"125":0.34614,"126":12.71167,"127":1.61412,"128":0.00706,_:"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 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 62 63 65 67 70 72 73 75 76 77 78 129 130"},F:{"36":0.02472,"54":0.00353,"56":0.00706,"78":0.00353,"79":0.02826,"82":0.00353,"83":0.01413,"84":0.01413,"85":0.05651,"86":0.00706,"87":0.00706,"95":0.40265,"102":0.00353,"106":0.00353,"108":0.02119,"109":0.48742,"110":0.07064,"111":0.96424,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 80 81 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00353,"18":0.00353,"89":0.00353,"92":0.01413,"100":0.00353,"109":0.0106,"110":0.00353,"117":0.00353,"118":0.00353,"120":0.00353,"121":0.00706,"122":0.00353,"123":0.02119,"124":0.05298,"125":0.09536,"126":2.43708,"127":0.31788,_:"12 13 14 15 17 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 111 112 113 114 115 116 119"},E:{"14":0.01766,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 10.1 11.1 12.1","5.1":0.04238,"9.1":0.00353,"13.1":0.01413,"14.1":0.02826,"15.1":0.01413,"15.2-15.3":0.00353,"15.4":0.0106,"15.5":0.01413,"15.6":0.10949,"16.0":0.00706,"16.1":0.07064,"16.2":0.02472,"16.3":0.05298,"16.4":0.02826,"16.5":0.07417,"16.6":0.14481,"17.0":0.02472,"17.1":0.04238,"17.2":0.05298,"17.3":0.05651,"17.4":0.13775,"17.5":1.08786,"17.6":0.00706,"18.0":0.02119},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00411,"5.0-5.1":0.00206,"6.0-6.1":0.01234,"7.0-7.1":0.01234,"8.1-8.4":0,"9.0-9.2":0.01029,"9.3":0.04115,"10.0-10.2":0.00823,"10.3":0.07201,"11.0-11.2":0.18929,"11.3-11.4":0.02057,"12.0-12.1":0.0144,"12.2-12.5":0.26541,"13.0-13.1":0.00411,"13.2":0.04321,"13.3":0.0144,"13.4-13.7":0.06172,"14.0-14.4":0.14197,"14.5-14.8":0.16048,"15.0-15.1":0.08024,"15.2-15.3":0.08641,"15.4":0.09876,"15.5":0.11933,"15.6-15.8":1.09457,"16.0":0.22015,"16.1":0.46705,"16.2":0.23455,"16.3":0.39298,"16.4":0.09259,"16.5":0.16666,"16.6-16.7":1.36616,"17.0":0.12345,"17.1":0.19957,"17.2":0.1934,"17.3":0.2901,"17.4":0.72629,"17.5":13.29949,"17.6":0.10287,"18.0":0.13579},P:{"4":0.08114,"20":0.02029,"21":0.04057,"22":0.08114,"23":0.142,"24":0.09129,"25":1.69388,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0","7.2-7.4":0.06086,"11.1-11.2":0.01014,"13.0":0.02029,"14.0":0.01014,"15.0":0.01014,"16.0":0.01014,"17.0":0.04057,"18.0":0.01014,"19.0":0.04057},I:{"0":0.06445,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00011},K:{"0":0.32634,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.01766,"11":0.05298,_:"7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":39.18166},R:{_:"0"},M:{"0":0.09055},Q:{"14.9":0.00647},O:{"0":0.3428},H:{"0":0.01}}; 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..cf5d0c1 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LA.js @@ -0,0 +1 @@ +module.exports={C:{"56":0.00181,"66":0.00542,"78":0.01264,"94":0.00181,"101":0.00181,"103":0.00542,"106":0.0361,"107":0.00361,"108":0.00181,"111":0.00181,"112":0.00181,"115":0.05776,"119":0.00361,"120":0.00181,"121":0.00361,"125":0.00361,"126":0.02166,"127":0.18592,"128":0.30866,"129":0.00181,_:"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 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 102 104 105 109 110 113 114 116 117 118 122 123 124 130 131 3.5 3.6"},D:{"37":0.24548,"43":0.00181,"58":0.00181,"60":0.00181,"67":0.00181,"68":0.00181,"69":0.00181,"70":0.00903,"71":0.00181,"72":0.00361,"74":0.00542,"79":0.00181,"80":0.00361,"81":0.05415,"83":0.00181,"84":0.01805,"85":0.00181,"86":0.01264,"87":0.00903,"88":0.00361,"89":0.00361,"90":0.01264,"91":0.00181,"92":0.00181,"94":0.00361,"95":0.00181,"96":0.01083,"97":0.00361,"98":0.00903,"99":0.03069,"100":0.00181,"101":0.00542,"102":0.00361,"103":0.01444,"104":0.01805,"105":0.01083,"106":0.01264,"107":0.00722,"108":0.00542,"109":0.79059,"110":0.00361,"111":0.07942,"112":0.00181,"113":0.00722,"114":0.01264,"115":0.01625,"116":0.02166,"117":0.00542,"118":0.00903,"119":0.02166,"120":0.1083,"121":0.02708,"122":0.05957,"123":0.03249,"124":0.08123,"125":0.16606,"126":7.20556,"127":0.95304,"128":0.00903,"129":0.00181,_:"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 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 61 62 63 64 65 66 73 75 76 77 78 93 130"},F:{"79":0.00181,"83":0.00542,"85":0.00181,"95":0.01444,"109":0.0722,"110":0.00181,"111":0.07401,_:"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 80 81 82 84 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00181,"17":0.00181,"18":0.03249,"89":0.00181,"90":0.00181,"91":0.00181,"92":0.04874,"98":0.00181,"100":0.00361,"108":0.00722,"109":0.03791,"110":0.00542,"111":0.00361,"113":0.00181,"117":0.01264,"119":0.00722,"120":0.01264,"121":0.00181,"122":0.00542,"123":0.00181,"124":0.0361,"125":0.02527,"126":1.55772,"127":0.20397,_:"12 13 14 16 79 80 81 83 84 85 86 87 88 93 94 95 96 97 99 101 102 103 104 105 106 107 112 114 115 116 118"},E:{"13":0.00542,"14":0.00361,"15":0.00181,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1 11.1 15.2-15.3 16.2","9.1":0.00181,"12.1":0.00181,"13.1":0.01083,"14.1":0.01264,"15.1":0.00361,"15.4":0.00542,"15.5":0.00722,"15.6":0.09206,"16.0":0.00722,"16.1":0.01083,"16.3":0.01444,"16.4":0.00181,"16.5":0.00542,"16.6":0.04513,"17.0":0.00542,"17.1":0.00903,"17.2":0.01264,"17.3":0.01444,"17.4":0.02708,"17.5":0.32851,"17.6":0.00722,"18.0":0.00542},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00347,"5.0-5.1":0.00173,"6.0-6.1":0.01041,"7.0-7.1":0.01041,"8.1-8.4":0,"9.0-9.2":0.00867,"9.3":0.0347,"10.0-10.2":0.00694,"10.3":0.06072,"11.0-11.2":0.15961,"11.3-11.4":0.01735,"12.0-12.1":0.01214,"12.2-12.5":0.2238,"13.0-13.1":0.00347,"13.2":0.03643,"13.3":0.01214,"13.4-13.7":0.05205,"14.0-14.4":0.11971,"14.5-14.8":0.13532,"15.0-15.1":0.06766,"15.2-15.3":0.07287,"15.4":0.08327,"15.5":0.10062,"15.6-15.8":0.92296,"16.0":0.18563,"16.1":0.39382,"16.2":0.19778,"16.3":0.33136,"16.4":0.07807,"16.5":0.14053,"16.6-16.7":1.15196,"17.0":0.10409,"17.1":0.16828,"17.2":0.16308,"17.3":0.24462,"17.4":0.61241,"17.5":11.21427,"17.6":0.08674,"18.0":0.1145},P:{"4":0.01016,"20":0.04066,"21":0.06099,"22":0.25411,"23":0.15247,"24":0.13214,"25":1.43317,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0","7.2-7.4":0.10164,"11.1-11.2":0.03049,"13.0":0.01016,"14.0":0.02033,"15.0":0.01016,"16.0":0.02033,"17.0":0.02033,"18.0":0.01016,"19.0":0.04066},I:{"0":0.08166,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00014},K:{"0":0.21307,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.0049,"9":0.0098,"11":0.05389,_:"6 7 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":63.39299},R:{_:"0"},M:{"0":0.09015},Q:{"14.9":0.03278},O:{"0":1.61442},H:{"0":0}}; 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..89e40ce --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LB.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00182,"48":0.00182,"52":0.00363,"66":0.00182,"68":0.00182,"78":0.01271,"88":0.00726,"91":0.00726,"94":0.00182,"97":0.00182,"113":0.00182,"115":0.14528,"120":0.00363,"121":0.00182,"122":0.0109,"123":0.00363,"124":0.00182,"125":0.00182,"126":0.00363,"127":0.24516,"128":0.28874,"129":0.00363,"130":0.00182,_:"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 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 92 93 95 96 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 131 3.5 3.6"},D:{"11":0.00182,"34":0.00363,"38":0.00182,"49":0.03632,"56":0.00182,"58":0.12894,"65":0.0109,"66":0.00182,"69":0.00726,"70":0.00363,"73":0.00363,"74":0.00363,"75":0.00182,"76":0.00182,"77":0.00182,"79":0.01634,"80":0.00182,"81":0.0345,"83":0.02361,"84":0.00182,"85":0.00182,"86":0.00545,"87":0.03087,"88":0.00726,"89":0.00182,"90":0.0109,"91":0.04722,"92":0.00182,"93":0.00182,"95":0.00363,"96":0.00182,"97":0.00182,"98":0.0454,"99":0.00726,"100":0.00182,"102":0.00363,"103":0.03087,"104":0.00363,"105":0.00363,"106":0.00545,"107":0.00182,"108":0.01816,"109":1.20401,"110":0.00908,"111":0.00726,"112":0.00182,"113":0.00182,"114":0.0109,"115":0.00363,"116":0.0563,"117":0.00363,"118":0.00726,"119":0.05266,"120":0.04358,"121":0.01634,"122":0.06538,"123":0.03269,"124":0.06901,"125":0.17978,"126":7.0715,"127":0.90255,"128":0.00363,"129":0.00182,_:"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 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 59 60 61 62 63 64 67 68 71 72 78 94 101 130"},F:{"79":0.08172,"82":0.00182,"83":0.01816,"95":0.01453,"102":0.00363,"109":0.11804,"110":0.00545,"111":0.14528,_:"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 80 81 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00182,"18":0.00545,"84":0.00182,"89":0.00545,"90":0.00182,"92":0.01634,"100":0.00363,"104":0.00182,"109":0.0345,"110":0.00182,"113":0.00545,"114":0.01453,"117":0.00363,"118":0.00182,"119":0.00363,"120":0.00182,"121":0.00363,"122":0.00363,"123":0.04177,"124":0.01271,"125":0.02542,"126":1.47459,"127":0.19431,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 105 106 107 108 111 112 115 116"},E:{"14":0.00726,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00182,"11.1":0.00182,"12.1":0.00182,"13.1":0.01271,"14.1":0.03269,"15.1":0.00363,"15.2-15.3":0.00363,"15.4":0.00363,"15.5":0.07082,"15.6":0.05266,"16.0":0.00182,"16.1":0.00908,"16.2":0.01271,"16.3":0.0345,"16.4":0.00908,"16.5":0.01271,"16.6":0.08717,"17.0":0.01271,"17.1":0.02906,"17.2":0.0109,"17.3":0.01998,"17.4":0.03995,"17.5":0.51938,"17.6":0.00182,"18.0":0.00726},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00255,"5.0-5.1":0.00128,"6.0-6.1":0.00766,"7.0-7.1":0.00766,"8.1-8.4":0,"9.0-9.2":0.00638,"9.3":0.02552,"10.0-10.2":0.0051,"10.3":0.04466,"11.0-11.2":0.1174,"11.3-11.4":0.01276,"12.0-12.1":0.00893,"12.2-12.5":0.16461,"13.0-13.1":0.00255,"13.2":0.0268,"13.3":0.00893,"13.4-13.7":0.03828,"14.0-14.4":0.08805,"14.5-14.8":0.09953,"15.0-15.1":0.04977,"15.2-15.3":0.05359,"15.4":0.06125,"15.5":0.07401,"15.6-15.8":0.67885,"16.0":0.13654,"16.1":0.28966,"16.2":0.14547,"16.3":0.24372,"16.4":0.05742,"16.5":0.10336,"16.6-16.7":0.84729,"17.0":0.07656,"17.1":0.12378,"17.2":0.11995,"17.3":0.17992,"17.4":0.45044,"17.5":8.24833,"17.6":0.0638,"18.0":0.08422},P:{"4":0.16366,"20":0.06137,"21":0.23526,"22":0.45006,"23":0.33755,"24":0.37846,"25":4.58244,"5.0-5.4":0.02046,"6.2-6.4":0.04091,"7.2-7.4":0.36823,_:"8.2 10.1","9.2":0.01023,"11.1-11.2":0.06137,"12.0":0.01023,"13.0":0.08183,"14.0":0.03069,"15.0":0.02046,"16.0":0.05114,"17.0":0.16366,"18.0":0.03069,"19.0":0.0716},I:{"0":0.08156,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00014},K:{"0":0.70391,_:"10 11 12 11.1 11.5 12.1"},A:{"9":0.00182,"11":0.01453,_:"6 7 8 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":63.35966},R:{_:"0"},M:{"0":0.1637},Q:{_:"14.9"},O:{"0":0.27829},H:{"0":0}}; 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..53b5b2f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LC.js @@ -0,0 +1 @@ +module.exports={C:{"102":0.00391,"104":0.00391,"109":0.00391,"115":0.08215,"118":0.00391,"121":0.00782,"123":0.00391,"124":0.00782,"126":0.00391,"127":0.19169,"128":0.34034,_:"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 103 105 106 107 108 110 111 112 113 114 116 117 119 120 122 125 129 130 131 3.5 3.6"},D:{"69":0.01174,"70":0.00391,"74":0.01174,"76":0.01565,"77":0.00391,"79":0.0313,"81":0.00782,"87":0.03521,"88":0.01565,"91":0.00391,"93":0.02738,"94":0.00782,"95":0.00391,"96":0.00391,"102":0.00782,"103":0.53203,"104":0.07824,"105":0.00782,"106":0.00391,"107":0.00391,"108":0.00391,"109":0.4577,"111":0.00391,"114":0.01565,"115":0.00391,"116":0.05868,"117":0.00391,"118":0.00391,"119":0.02347,"120":0.10562,"121":0.02347,"122":0.03912,"123":0.0313,"124":0.08998,"125":1.87385,"126":20.10768,"127":1.43179,"128":0.92323,_:"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 71 72 73 75 78 80 83 84 85 86 89 90 92 97 98 99 100 101 110 112 113 129 130"},F:{"83":0.01565,"95":0.00391,"106":0.00391,"109":0.49682,"111":0.43032,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 107 108 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00391,"92":0.06259,"108":0.01174,"109":0.01174,"114":0.23081,"116":0.07433,"119":0.01174,"121":0.00391,"122":0.00782,"123":0.00391,"124":0.00782,"125":0.12518,"126":4.20931,"127":0.48509,_:"12 13 15 16 17 18 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 110 111 112 113 115 117 118 120"},E:{"13":0.00782,"14":0.1291,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 18.0","13.1":0.07824,"14.1":0.00782,"15.5":0.01956,"15.6":0.08998,"16.0":0.03912,"16.1":0.01174,"16.2":0.00391,"16.3":0.01956,"16.4":0.05868,"16.5":0.01956,"16.6":0.25037,"17.0":0.03912,"17.1":0.0665,"17.2":0.02347,"17.3":0.03521,"17.4":0.03521,"17.5":0.88411,"17.6":0.00391},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00244,"5.0-5.1":0.00122,"6.0-6.1":0.00731,"7.0-7.1":0.00731,"8.1-8.4":0,"9.0-9.2":0.00609,"9.3":0.02436,"10.0-10.2":0.00487,"10.3":0.04264,"11.0-11.2":0.11208,"11.3-11.4":0.01218,"12.0-12.1":0.00853,"12.2-12.5":0.15715,"13.0-13.1":0.00244,"13.2":0.02558,"13.3":0.00853,"13.4-13.7":0.03655,"14.0-14.4":0.08406,"14.5-14.8":0.09502,"15.0-15.1":0.04751,"15.2-15.3":0.05116,"15.4":0.05847,"15.5":0.07066,"15.6-15.8":0.64809,"16.0":0.13035,"16.1":0.27653,"16.2":0.13888,"16.3":0.23268,"16.4":0.05482,"16.5":0.09867,"16.6-16.7":0.80889,"17.0":0.07309,"17.1":0.11817,"17.2":0.11451,"17.3":0.17177,"17.4":0.43003,"17.5":7.8745,"17.6":0.06091,"18.0":0.0804},P:{"4":0.02157,"20":0.01078,"21":0.04313,"22":0.08626,"23":0.03235,"24":0.09705,"25":3.55838,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 15.0","7.2-7.4":0.28036,"11.1-11.2":0.01078,"13.0":0.01078,"14.0":0.01078,"16.0":0.02157,"17.0":0.02157,"18.0":0.01078,"19.0":0.03235},I:{"0":0.01213,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.21917,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":46.54849},R:{_:"0"},M:{"0":0.38354},Q:{_:"14.9"},O:{"0":0.04262},H:{"0":0}}; 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..660481f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LI.js @@ -0,0 +1 @@ +module.exports={C:{"2":0.02681,"3":0.04691,"4":0.02681,"5":0.02011,"6":0.0067,"9":0.0067,"10":0.0067,"11":0.0067,"12":0.0134,"14":0.0067,"15":0.02011,"17":0.0067,"18":0.0067,"19":0.0067,"20":0.0067,"21":0.0134,"23":0.02011,"24":0.02011,"25":0.0134,"26":0.02011,"28":0.0134,"30":0.0134,"31":0.02011,"32":0.0134,"33":0.0067,"34":0.0067,"35":0.02011,"36":0.0134,"37":0.0134,"38":0.02681,"39":0.04021,"40":0.05362,"41":0.0134,"42":0.0134,"43":0.0067,"45":0.0067,"53":0.0067,"56":0.0134,"78":0.02681,"103":0.44903,"104":0.0067,"105":0.0067,"106":0.12734,"107":0.02681,"108":0.02011,"109":0.0134,"110":0.62999,"111":0.02681,"113":0.02681,"115":2.31219,"119":0.07372,"120":0.0134,"121":0.02681,"122":0.0067,"123":0.0134,"124":0.0067,"125":0.27478,"126":0.28819,"127":2.3457,"128":3.81344,"129":0.03351,_:"7 8 13 16 22 27 29 44 46 47 48 49 50 51 52 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 112 114 116 117 118 130 131","3.5":0.02011,"3.6":0.07372},D:{"4":0.0067,"6":0.0067,"8":0.0067,"9":0.0067,"10":0.0067,"11":0.0134,"13":0.0067,"14":0.0067,"15":0.0067,"16":0.0134,"18":0.0067,"19":0.0067,"20":0.0067,"21":0.02011,"23":0.0134,"25":0.0067,"26":0.0067,"27":0.0067,"28":0.02681,"29":0.0067,"30":0.02011,"31":0.03351,"32":0.0067,"33":0.03351,"34":0.0134,"35":0.02681,"36":0.02681,"37":0.05362,"38":0.02011,"39":0.04021,"40":0.08042,"41":0.07372,"42":0.06032,"43":0.10053,"44":0.15415,"45":0.12064,"46":0.13404,"47":0.08713,"49":0.06032,"51":0.20776,"56":0.0067,"70":0.08042,"77":0.0067,"79":0.24127,"86":0.0067,"93":0.0067,"94":0.0134,"95":0.0067,"96":0.08042,"97":0.0067,"98":0.10723,"99":0.04021,"100":0.0067,"103":0.04021,"105":0.44903,"106":0.53616,"107":0.77073,"108":0.43563,"109":1.44093,"110":0.08042,"111":0.96509,"112":1.05221,"116":1.36051,"117":0.02011,"118":0.02681,"119":0.02681,"120":0.35521,"121":0.02011,"122":0.17425,"123":0.02681,"124":0.28819,"125":0.25468,"126":14.67738,"127":1.3471,_:"5 7 12 17 22 24 48 50 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 78 80 81 83 84 85 87 88 89 90 91 92 101 102 104 113 114 115 128 129 130"},F:{"11":0.0067,"12":0.0067,"18":0.0067,"20":0.0067,"23":0.0067,"27":0.0067,"28":0.0067,"30":0.0134,"31":0.05362,"32":0.02681,"33":0.0067,"83":0.0067,"84":0.0067,"89":0.0067,"93":0.0067,"94":0.0067,"95":0.10053,"96":0.54956,"109":0.18095,"110":0.0134,"111":0.42223,_:"9 15 16 17 19 21 22 24 25 26 29 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 85 86 87 88 90 91 92 97 98 99 100 101 102 103 104 105 106 107 108 10.0-10.1 10.5 10.6 11.1 11.6","9.5-9.6":0.0067,"11.5":0.0134,"12.1":0.04021},B:{"12":0.02011,"13":0.0067,"98":0.02011,"100":0.0134,"101":0.0067,"106":0.0134,"108":0.0067,"109":0.02681,"110":0.54956,"115":0.0134,"120":0.0067,"121":0.02681,"122":0.04691,"123":0.0067,"124":0.02681,"125":0.05362,"126":9.01419,"127":1.16615,_:"14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 99 102 103 104 105 107 111 112 113 114 116 117 118 119"},E:{"4":0.02011,"5":0.03351,"6":0.0067,"7":0.0067,"8":0.03351,"9":0.3217,"13":0.0067,_:"0 10 11 12 14 15 3.2 10.1 11.1 12.1 15.4 15.5","3.1":0.0067,"5.1":0.0067,"6.1":0.0067,"7.1":0.0067,"9.1":0.0067,"13.1":0.05362,"14.1":0.3485,"15.1":0.04691,"15.2-15.3":0.0134,"15.6":6.90976,"16.0":0.22117,"16.1":0.04691,"16.2":0.02011,"16.3":0.0134,"16.4":0.15415,"16.5":0.04691,"16.6":0.25468,"17.0":0.0067,"17.1":0.0134,"17.2":0.02011,"17.3":0.10053,"17.4":0.16085,"17.5":3.25047,"17.6":0.22117,"18.0":0.0067},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00246,"5.0-5.1":0.00123,"6.0-6.1":0.00738,"7.0-7.1":0.00738,"8.1-8.4":0,"9.0-9.2":0.00615,"9.3":0.02462,"10.0-10.2":0.00492,"10.3":0.04308,"11.0-11.2":0.11323,"11.3-11.4":0.01231,"12.0-12.1":0.00862,"12.2-12.5":0.15877,"13.0-13.1":0.00246,"13.2":0.02585,"13.3":0.00862,"13.4-13.7":0.03692,"14.0-14.4":0.08492,"14.5-14.8":0.096,"15.0-15.1":0.048,"15.2-15.3":0.05169,"15.4":0.05908,"15.5":0.07138,"15.6-15.8":0.65477,"16.0":0.13169,"16.1":0.27938,"16.2":0.14031,"16.3":0.23508,"16.4":0.05538,"16.5":0.09969,"16.6-16.7":0.81723,"17.0":0.07385,"17.1":0.11938,"17.2":0.11569,"17.3":0.17354,"17.4":0.43446,"17.5":7.9557,"17.6":0.06154,"18.0":0.08123},P:{"4":0.12106,"21":0.01101,"22":0.01101,"24":0.01101,"25":1.54077,_:"20 23 5.0-5.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","6.2-6.4":0.13207,"7.2-7.4":0.01101,"9.2":0.01101,"19.0":0.01101},I:{"0":1.70515,"3":0,"4":0.00017,"2.1":0,"2.2":0.00034,"2.3":0,"4.1":0.00103,"4.2-4.3":0.00068,"4.4":0,"4.4.3-4.4.4":0.00291},K:{"0":0.36245,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.0411,"7":0.10959,"8":1.17808,"9":0.16438,"10":0.22603,"11":0.67123,"5.5":0.00685},S:{"2.5":0.05275,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":13.05195},R:{_:"0"},M:{"0":0.64951},Q:{"14.9":0.0033},O:{"0":0.83744},H:{"0":0.02}}; 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..c14e6d1 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LK.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00544,"65":0.01088,"88":0.04351,"115":0.20124,"121":0.00544,"125":0.01088,"126":0.01632,"127":0.36441,"128":0.58741,"129":0.01088,_:"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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 123 124 130 131 3.5 3.6"},D:{"68":0.00544,"70":0.01088,"74":0.01088,"79":0.01088,"80":0.00544,"81":0.00544,"83":0.00544,"84":0.00544,"85":0.01088,"86":0.00544,"87":0.01632,"88":0.00544,"89":0.00544,"90":0.01088,"91":0.01632,"92":0.00544,"93":0.00544,"94":0.00544,"95":0.00544,"96":0.00544,"97":0.00544,"98":0.00544,"99":0.01088,"100":0.00544,"102":0.00544,"103":0.03263,"104":0.00544,"105":0.00544,"106":0.01632,"107":0.00544,"108":0.01632,"109":1.49029,"110":0.01088,"111":0.02176,"112":0.01088,"113":0.00544,"114":0.01632,"115":0.00544,"116":0.03263,"117":0.01088,"118":0.02176,"119":0.0272,"120":0.03263,"121":0.03807,"122":0.05983,"123":0.06527,"124":0.08702,"125":0.1958,"126":14.94637,"127":2.12121,"128":0.00544,_:"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 69 71 72 73 75 76 77 78 101 129 130"},F:{"83":0.03807,"95":0.06527,"109":0.09246,"110":0.01088,"111":0.40249,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00544,"18":0.01632,"90":0.00544,"92":0.03807,"100":0.01088,"106":0.00544,"109":0.01632,"114":0.00544,"116":0.00544,"117":0.00544,"119":0.00544,"120":0.01088,"121":0.01632,"122":0.01088,"123":0.01088,"124":0.03263,"125":0.07071,"126":27.23851,"127":2.82284,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 107 108 110 111 112 113 115 118"},E:{"14":0.00544,_:"0 4 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 12.1 15.1 15.4 17.6 18.0","13.1":0.00544,"14.1":0.00544,"15.2-15.3":0.00544,"15.5":0.00544,"15.6":0.0272,"16.0":0.00544,"16.1":0.00544,"16.2":0.00544,"16.3":0.00544,"16.4":0.00544,"16.5":0.01632,"16.6":0.02176,"17.0":0.00544,"17.1":0.00544,"17.2":0.00544,"17.3":0.00544,"17.4":0.02176,"17.5":0.16861},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00087,"5.0-5.1":0.00043,"6.0-6.1":0.0026,"7.0-7.1":0.0026,"8.1-8.4":0,"9.0-9.2":0.00216,"9.3":0.00866,"10.0-10.2":0.00173,"10.3":0.01515,"11.0-11.2":0.03982,"11.3-11.4":0.00433,"12.0-12.1":0.00303,"12.2-12.5":0.05584,"13.0-13.1":0.00087,"13.2":0.00909,"13.3":0.00303,"13.4-13.7":0.01299,"14.0-14.4":0.02987,"14.5-14.8":0.03376,"15.0-15.1":0.01688,"15.2-15.3":0.01818,"15.4":0.02078,"15.5":0.0251,"15.6-15.8":0.23027,"16.0":0.04631,"16.1":0.09825,"16.2":0.04934,"16.3":0.08267,"16.4":0.01948,"16.5":0.03506,"16.6-16.7":0.28741,"17.0":0.02597,"17.1":0.04199,"17.2":0.04069,"17.3":0.06103,"17.4":0.15279,"17.5":2.79787,"17.6":0.02164,"18.0":0.02857},P:{"4":0.0821,"20":0.03079,"21":0.13341,"22":0.19498,"23":0.20525,"24":0.15393,"25":0.8415,_:"5.0-5.4 8.2 10.1","6.2-6.4":0.02052,"7.2-7.4":0.49259,"9.2":0.03079,"11.1-11.2":0.05131,"12.0":0.01026,"13.0":0.03079,"14.0":0.02052,"15.0":0.01026,"16.0":0.03079,"17.0":0.03079,"18.0":0.03079,"19.0":0.06157},I:{"0":0.03636,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":1.15306,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00544,"11":0.01088,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":38.36431},R:{_:"0"},M:{"0":0.08666},Q:{_:"14.9"},O:{"0":0.98974},H:{"0":0.01}}; 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..2b2834b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LR.js @@ -0,0 +1 @@ +module.exports={C:{"15":0.002,"43":0.00401,"47":0.002,"54":0.002,"60":0.002,"72":0.002,"74":0.002,"85":0.00401,"101":0.01803,"102":0.00401,"103":0.002,"112":0.00401,"113":0.002,"115":0.3325,"116":0.00401,"119":0.00401,"121":0.01002,"123":0.01002,"124":0.01602,"125":0.002,"126":0.03205,"127":0.31247,"128":0.38858,"129":0.002,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 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 44 45 46 48 49 50 51 52 53 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 104 105 106 107 108 109 110 111 114 117 118 120 122 130 131 3.5 3.6"},D:{"11":0.002,"47":0.002,"49":0.01002,"50":0.002,"59":0.00801,"60":0.002,"62":0.00601,"63":0.002,"64":0.01202,"67":0.00401,"68":0.03005,"70":0.00401,"73":0.002,"75":0.00401,"76":0.01602,"77":0.01202,"78":0.00401,"79":0.01803,"80":0.00801,"81":0.00401,"83":0.00601,"84":0.00401,"85":0.002,"86":0.03005,"87":0.00401,"88":0.00801,"90":0.00401,"91":0.00601,"92":0.09815,"93":0.03405,"94":0.10015,"95":0.01002,"96":0.00601,"97":0.00401,"99":0.002,"101":0.002,"102":0.00801,"103":0.05208,"104":0.002,"105":0.03405,"106":0.00801,"107":0.00601,"108":0.02404,"109":0.49875,"110":0.00601,"111":0.04006,"112":0.00401,"113":0.00801,"114":0.01202,"115":0.00601,"116":0.05408,"117":0.00401,"118":0.01602,"119":0.01402,"120":0.03005,"121":0.87932,"122":0.04607,"123":0.08212,"124":0.10015,"125":0.21432,"126":5.60439,"127":0.65498,"128":0.002,_:"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 48 51 52 53 54 55 56 57 58 61 65 66 69 71 72 74 89 98 100 129 130"},F:{"21":0.00401,"54":0.002,"79":0.01602,"83":0.01202,"95":0.01803,"99":0.00401,"109":0.01202,"110":0.01602,"111":0.2664,_:"9 11 12 15 16 17 18 19 20 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 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.01402,"13":0.00401,"15":0.00401,"16":0.01402,"17":0.00801,"18":0.07411,"84":0.01402,"88":0.00801,"89":0.01202,"90":0.02804,"91":0.002,"92":0.04607,"98":0.00401,"100":0.01202,"104":0.002,"105":0.00401,"106":0.002,"107":0.002,"109":0.02203,"111":0.00401,"112":0.00401,"113":0.002,"115":0.00801,"116":0.002,"117":0.00601,"118":0.00601,"119":0.01002,"120":0.02804,"121":0.01402,"122":0.00601,"123":0.01602,"124":0.01803,"125":0.11617,"126":2.14321,"127":0.20431,_:"14 79 80 81 83 85 86 87 93 94 95 96 97 99 101 102 103 108 110 114"},E:{"11":0.00601,"13":0.05008,"15":0.002,_:"0 4 5 6 7 8 9 10 12 14 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.2-15.3 15.4 16.1 16.5 17.6","11.1":0.002,"12.1":0.00401,"13.1":0.01803,"14.1":0.00401,"15.1":0.00401,"15.5":0.00601,"15.6":0.02604,"16.0":0.00601,"16.2":0.00401,"16.3":0.00601,"16.4":0.002,"16.6":0.01402,"17.0":0.01002,"17.1":0.002,"17.2":0.02203,"17.3":0.002,"17.4":0.00601,"17.5":0.11017,"18.0":0.002},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00111,"5.0-5.1":0.00056,"6.0-6.1":0.00334,"7.0-7.1":0.00334,"8.1-8.4":0,"9.0-9.2":0.00278,"9.3":0.01113,"10.0-10.2":0.00223,"10.3":0.01948,"11.0-11.2":0.05121,"11.3-11.4":0.00557,"12.0-12.1":0.0039,"12.2-12.5":0.0718,"13.0-13.1":0.00111,"13.2":0.01169,"13.3":0.0039,"13.4-13.7":0.0167,"14.0-14.4":0.0384,"14.5-14.8":0.04341,"15.0-15.1":0.02171,"15.2-15.3":0.02338,"15.4":0.02672,"15.5":0.03228,"15.6-15.8":0.29611,"16.0":0.05956,"16.1":0.12635,"16.2":0.06345,"16.3":0.10631,"16.4":0.02505,"16.5":0.04508,"16.6-16.7":0.36958,"17.0":0.0334,"17.1":0.05399,"17.2":0.05232,"17.3":0.07848,"17.4":0.19648,"17.5":3.59781,"17.6":0.02783,"18.0":0.03674},P:{"4":0.08069,"21":0.03026,"22":0.10086,"23":0.06052,"24":0.18155,"25":0.38328,_:"20 5.0-5.4 6.2-6.4 8.2 10.1 12.0 15.0 17.0","7.2-7.4":0.04035,"9.2":0.05043,"11.1-11.2":0.04035,"13.0":0.02017,"14.0":0.01009,"16.0":0.03026,"18.0":0.01009,"19.0":0.04035},I:{"0":0.03188,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":3.82299,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.002,"11":0.01002,_:"6 7 8 9 5.5"},S:{"2.5":0.03999,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":70.40535},R:{_:"0"},M:{"0":0.03999},Q:{"14.9":0.06398},O:{"0":0.5358},H:{"0":4.19}}; 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..1c596d7 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LS.js @@ -0,0 +1 @@ +module.exports={C:{"38":0.00994,"52":0.00331,"113":0.00663,"114":0.00331,"115":0.1657,"121":0.00994,"124":0.00331,"125":0.02651,"126":0.01326,"127":0.36785,"128":0.36123,_:"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 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 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 112 116 117 118 119 120 122 123 129 130 131 3.5 3.6"},D:{"37":0.00331,"40":0.00331,"46":0.00331,"49":0.00331,"50":0.00331,"56":0.00331,"69":0.00331,"70":0.01657,"71":0.00331,"74":0.00663,"75":0.00663,"79":0.00331,"81":0.08616,"83":0.00331,"84":0.00331,"86":0.00331,"88":0.00663,"91":0.00663,"94":0.00663,"95":0.00994,"98":0.00331,"99":0.01988,"101":0.02983,"102":0.02651,"103":0.02651,"104":0.00331,"106":0.00331,"108":0.00663,"109":1.07705,"111":0.0232,"113":0.00331,"114":0.00331,"115":0.00331,"116":0.00994,"118":0.02651,"119":0.01326,"120":0.00331,"121":0.06628,"122":0.06297,"123":0.01657,"124":0.07954,"125":0.21541,"126":11.11184,"127":0.9478,_:"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 38 39 41 42 43 44 45 47 48 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 72 73 76 77 78 80 85 87 89 90 92 93 96 97 100 105 107 110 112 117 128 129 130"},F:{"38":0.00331,"40":0.00331,"74":0.00331,"82":0.00663,"83":0.00994,"95":0.05302,"99":0.00331,"109":0.00663,"110":0.00994,"111":0.32809,_:"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 39 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 75 76 77 78 79 80 81 84 85 86 87 88 89 90 91 92 93 94 96 97 98 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.03314,"15":0.00331,"18":0.00663,"84":0.06628,"89":0.00331,"92":0.05965,"100":0.00331,"106":0.00331,"109":0.09279,"111":0.01326,"112":0.00331,"113":0.0232,"114":0.01326,"118":0.00331,"119":0.00331,"120":0.09942,"121":0.00331,"122":0.01657,"123":0.03645,"124":0.0464,"125":0.10605,"126":3.51615,"127":0.35791,_:"13 14 16 17 79 80 81 83 85 86 87 88 90 91 93 94 95 96 97 98 99 101 102 103 104 105 107 108 110 115 116 117"},E:{"14":0.00331,_:"0 4 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 12.1 13.1 15.1 15.2-15.3 15.4 16.0 16.1 16.2 16.4 16.5 17.0 17.3 17.6 18.0","14.1":0.00331,"15.5":0.00331,"15.6":0.01326,"16.3":0.00663,"16.6":0.01988,"17.1":0.00663,"17.2":0.00663,"17.4":0.03645,"17.5":0.06959},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00043,"5.0-5.1":0.00022,"6.0-6.1":0.0013,"7.0-7.1":0.0013,"8.1-8.4":0,"9.0-9.2":0.00109,"9.3":0.00435,"10.0-10.2":0.00087,"10.3":0.0076,"11.0-11.2":0.01999,"11.3-11.4":0.00217,"12.0-12.1":0.00152,"12.2-12.5":0.02803,"13.0-13.1":0.00043,"13.2":0.00456,"13.3":0.00152,"13.4-13.7":0.00652,"14.0-14.4":0.01499,"14.5-14.8":0.01695,"15.0-15.1":0.00847,"15.2-15.3":0.00913,"15.4":0.01043,"15.5":0.0126,"15.6-15.8":0.11558,"16.0":0.02325,"16.1":0.04932,"16.2":0.02477,"16.3":0.0415,"16.4":0.00978,"16.5":0.0176,"16.6-16.7":0.14426,"17.0":0.01304,"17.1":0.02107,"17.2":0.02042,"17.3":0.03063,"17.4":0.07669,"17.5":1.40438,"17.6":0.01086,"18.0":0.01434},P:{"4":0.30844,"20":0.01028,"21":0.04113,"22":0.42154,"23":0.08225,"24":0.52436,"25":0.7197,"5.0-5.4":0.02056,"6.2-6.4":0.13366,"7.2-7.4":0.57576,_:"8.2 10.1 13.0 14.0","9.2":0.01028,"11.1-11.2":0.01028,"12.0":0.01028,"15.0":0.01028,"16.0":0.02056,"17.0":0.02056,"18.0":0.01028,"19.0":0.17479},I:{"0":0.05995,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.0001},K:{"0":4.07132,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.59321,_:"6 7 8 9 10 5.5"},S:{"2.5":0.10028,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":67.0488},R:{_:"0"},M:{"0":0.10028},Q:{"14.9":0.00669},O:{"0":0.76209},H:{"0":1.27}}; 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..7468914 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LT.js @@ -0,0 +1 @@ +module.exports={C:{"44":0.0062,"45":0.0062,"52":0.0124,"65":0.0062,"102":0.0062,"103":0.0186,"105":0.0062,"106":0.0248,"107":0.0248,"108":0.0186,"109":0.0062,"110":0.0124,"111":0.0124,"114":0.0062,"115":0.30385,"118":0.0124,"119":0.0062,"120":0.0062,"121":0.0062,"122":0.0062,"123":0.0062,"124":0.0248,"125":0.0124,"126":0.05581,"127":0.49608,"128":1.19679,"129":0.0062,_:"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 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 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 104 112 113 116 117 130 131 3.5 3.6"},D:{"34":0.0124,"43":0.0062,"44":0.0062,"45":0.0062,"46":0.0062,"47":0.0062,"49":0.0062,"51":0.0062,"53":0.0062,"56":0.0062,"58":0.0062,"74":0.0062,"79":0.0062,"80":0.0062,"83":0.0186,"85":0.0062,"86":0.0186,"87":0.0124,"88":0.0062,"91":0.0248,"92":0.0062,"94":0.0124,"96":0.0062,"97":0.0062,"98":0.0062,"99":0.0062,"100":0.0062,"102":0.0124,"103":0.06821,"104":0.0248,"105":0.0124,"106":0.11782,"107":0.07441,"108":0.11162,"109":1.37042,"110":0.04341,"111":0.10542,"112":0.05581,"113":0.0124,"114":0.32245,"115":0.06201,"116":0.08681,"117":0.06821,"118":0.0186,"119":0.0248,"120":0.09922,"121":0.03101,"122":0.26664,"123":0.57049,"124":0.40307,"125":2.53621,"126":36.23864,"127":3.99344,"128":0.0062,_:"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 48 50 52 54 55 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 78 81 84 89 90 93 95 101 129 130"},F:{"46":0.0062,"83":0.0124,"91":0.0124,"93":0.0062,"94":0.0062,"95":0.09922,"102":0.0124,"109":0.57049,"110":0.0186,"111":0.6201,_:"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 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 84 85 86 87 88 89 90 92 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0124,"92":0.0186,"106":0.0062,"107":0.0186,"108":0.0124,"109":0.08061,"110":0.0186,"111":0.0186,"113":0.0062,"114":0.0186,"115":0.0186,"116":0.0124,"117":0.0124,"119":0.0062,"120":0.0124,"121":0.0062,"122":0.0062,"123":0.16123,"124":0.16743,"125":0.56429,"126":7.4288,"127":0.93635,_:"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 112 118"},E:{"9":0.0124,"14":0.0062,"15":0.0062,_:"0 4 5 6 7 8 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.2-15.3 15.4 15.5 17.6 18.0","12.1":0.0062,"13.1":0.0124,"14.1":0.0186,"15.1":0.0062,"15.6":0.04961,"16.0":0.0124,"16.1":0.0186,"16.2":0.0124,"16.3":0.0248,"16.4":0.0186,"16.5":0.03101,"16.6":0.04341,"17.0":0.0124,"17.1":0.0186,"17.2":0.0186,"17.3":0.0248,"17.4":0.05581,"17.5":0.39066},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00508,"5.0-5.1":0.00254,"6.0-6.1":0.01524,"7.0-7.1":0.01524,"8.1-8.4":0,"9.0-9.2":0.0127,"9.3":0.0508,"10.0-10.2":0.01016,"10.3":0.0889,"11.0-11.2":0.23367,"11.3-11.4":0.0254,"12.0-12.1":0.01778,"12.2-12.5":0.32765,"13.0-13.1":0.00508,"13.2":0.05334,"13.3":0.01778,"13.4-13.7":0.0762,"14.0-14.4":0.17525,"14.5-14.8":0.19811,"15.0-15.1":0.09906,"15.2-15.3":0.10668,"15.4":0.12192,"15.5":0.14732,"15.6-15.8":1.35124,"16.0":0.27177,"16.1":0.57656,"16.2":0.28955,"16.3":0.48512,"16.4":0.1143,"16.5":0.20573,"16.6-16.7":1.68651,"17.0":0.1524,"17.1":0.24637,"17.2":0.23875,"17.3":0.35813,"17.4":0.89659,"17.5":16.41804,"17.6":0.127,"18.0":0.16763},P:{"4":0.02105,"21":0.01053,"22":0.02105,"23":0.02105,"24":0.06315,"25":0.97886,_:"20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0","17.0":0.01053,"19.0":0.01053},I:{"0":0.07952,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00014},K:{"0":0.218,_:"10 11 12 11.1 11.5 12.1"},A:{"7":0.00687,"8":0.06865,"9":0.01373,"10":0.01373,"11":0.08925,_:"6 5.5"},S:{"2.5":0.0038,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":10.74865},R:{_:"0"},M:{"0":0.1938},Q:{"14.9":0.0038},O:{"0":0.0342},H:{"0":0.01}}; 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..44a5bcb --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LU.js @@ -0,0 +1 @@ +module.exports={C:{"31":0.00431,"40":0.00431,"48":0.02585,"52":0.0474,"55":0.00431,"56":0.00431,"60":0.01724,"68":0.00431,"78":0.15943,"88":0.00431,"91":0.03447,"93":0.00431,"96":0.00431,"97":0.00862,"98":0.00431,"101":0.00431,"102":0.18529,"103":0.03016,"104":0.03016,"105":0.00431,"106":0.00862,"108":0.08187,"109":0.00862,"110":0.00431,"113":0.00431,"115":3.4946,"117":0.00431,"118":0.00862,"119":0.00431,"121":0.00862,"122":0.01724,"123":0.06033,"124":0.02155,"125":0.02585,"126":0.15082,"127":1.75376,"128":3.28777,"129":0.02155,_:"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 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 49 50 51 53 54 57 58 59 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 92 94 95 99 100 107 111 112 114 116 120 130 131","3.5":0.00431,"3.6":0.00431},D:{"38":0.00431,"39":0.00431,"40":0.00431,"41":0.00431,"42":0.00431,"43":0.00431,"44":0.00862,"45":0.00431,"46":0.00862,"47":0.00431,"49":0.00431,"51":0.01724,"57":0.00862,"70":0.00431,"71":0.00431,"72":0.00431,"79":0.02585,"80":0.00431,"81":0.00431,"84":0.00431,"85":0.00431,"86":0.00431,"87":0.03016,"88":0.00431,"89":0.00431,"91":0.04309,"92":0.00431,"94":0.01293,"95":0.00862,"98":0.00862,"99":0.01724,"101":0.00431,"102":0.01293,"103":0.12496,"104":0.06894,"105":0.01293,"106":0.03447,"107":0.02585,"108":0.06033,"109":0.6722,"110":0.01724,"111":0.03447,"112":0.05602,"113":0.09911,"114":0.12927,"115":0.00431,"116":0.26285,"117":0.04309,"118":1.02123,"119":0.05602,"120":0.24561,"121":0.10773,"122":0.18529,"123":0.15943,"124":0.23269,"125":0.71099,"126":11.66446,"127":1.34441,"128":0.00862,_:"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 48 50 52 53 54 55 56 58 59 60 61 62 63 64 65 66 67 68 69 73 74 75 76 77 78 83 90 93 96 97 100 129 130"},F:{"83":0.0474,"89":0.01293,"95":0.03447,"96":0.03447,"108":0.00862,"109":0.4783,"110":0.00862,"111":0.37488,_:"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 84 85 86 87 88 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.00431},B:{"12":0.00431,"18":0.00431,"92":0.00431,"105":0.00431,"108":0.01293,"109":0.05171,"110":0.00862,"111":0.03447,"112":0.00431,"113":0.00431,"116":0.00431,"117":0.00862,"118":0.00431,"119":0.0474,"120":0.07325,"121":0.03878,"122":0.06033,"123":0.01724,"124":0.19821,"125":0.15943,"126":5.42934,"127":0.54724,_:"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 106 107 114 115"},E:{"9":0.02585,"11":0.00431,"14":0.05171,_:"0 4 5 6 7 8 10 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00431,"12.1":0.01724,"13.1":0.12927,"14.1":0.14651,"15.1":0.00862,"15.2-15.3":0.01724,"15.4":0.03878,"15.5":0.07325,"15.6":0.41797,"16.0":0.09911,"16.1":0.13789,"16.2":0.05602,"16.3":0.0948,"16.4":0.02585,"16.5":0.07756,"16.6":0.42228,"17.0":0.08187,"17.1":0.17236,"17.2":0.09911,"17.3":0.07756,"17.4":0.27147,"17.5":3.47736,"17.6":0.02155,"18.0":0.03016},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00358,"5.0-5.1":0.00179,"6.0-6.1":0.01075,"7.0-7.1":0.01075,"8.1-8.4":0,"9.0-9.2":0.00895,"9.3":0.03582,"10.0-10.2":0.00716,"10.3":0.06268,"11.0-11.2":0.16477,"11.3-11.4":0.01791,"12.0-12.1":0.01254,"12.2-12.5":0.23103,"13.0-13.1":0.00358,"13.2":0.03761,"13.3":0.01254,"13.4-13.7":0.05373,"14.0-14.4":0.12358,"14.5-14.8":0.13969,"15.0-15.1":0.06985,"15.2-15.3":0.07522,"15.4":0.08597,"15.5":0.10388,"15.6-15.8":0.95279,"16.0":0.19163,"16.1":0.40655,"16.2":0.20417,"16.3":0.34207,"16.4":0.08059,"16.5":0.14507,"16.6-16.7":1.1892,"17.0":0.10746,"17.1":0.17372,"17.2":0.16835,"17.3":0.25253,"17.4":0.63221,"17.5":11.57675,"17.6":0.08955,"18.0":0.1182},P:{"4":0.16611,"20":0.02076,"21":0.03115,"22":0.05191,"23":0.1142,"24":0.1142,"25":3.5299,"5.0-5.4":0.03115,"6.2-6.4":0.05191,"7.2-7.4":0.01038,_:"8.2 9.2 10.1 11.1-11.2 12.0 15.0","13.0":0.03115,"14.0":0.01038,"16.0":0.01038,"17.0":0.02076,"18.0":0.01038,"19.0":0.02076},I:{"0":0.27221,"3":0,"4":0.00003,"2.1":0,"2.2":0.00005,"2.3":0,"4.1":0.00016,"4.2-4.3":0.00011,"4.4":0,"4.4.3-4.4.4":0.00046},K:{"0":0.81381,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.00608,"7":0.00608,"8":0.07908,"9":0.01217,"10":0.01217,"11":0.08517,_:"5.5"},S:{"2.5":0.00569,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":30.48061},R:{_:"0"},M:{"0":0.87072},Q:{"14.9":0.8878},O:{"0":1.1382},H:{"0":0}}; 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..d0f5ebf --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LV.js @@ -0,0 +1 @@ +module.exports={C:{"16":0.03498,"48":0.01399,"52":0.01399,"88":0.007,"102":0.03498,"103":0.01399,"110":0.02099,"111":0.007,"113":0.007,"114":0.007,"115":0.65753,"118":0.01399,"121":0.01399,"122":0.01399,"123":0.02099,"124":0.01399,"125":0.02798,"126":0.04197,"127":1.18915,"128":2.45525,"129":0.01399,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 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 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 89 90 91 92 93 94 95 96 97 98 99 100 101 104 105 106 107 108 109 112 116 117 119 120 130 131 3.5 3.6"},D:{"49":0.007,"51":0.007,"76":0.007,"79":0.12591,"80":0.02099,"86":0.007,"87":0.02798,"90":0.007,"91":0.007,"92":0.007,"93":0.09094,"94":0.01399,"97":0.02798,"99":0.01399,"100":0.007,"101":0.007,"102":0.02099,"103":0.13291,"104":0.03498,"105":0.007,"106":0.04897,"107":0.01399,"108":0.06995,"109":1.80471,"110":0.02798,"111":0.02099,"112":0.04197,"113":0.02099,"114":0.04197,"115":0.09793,"116":0.2868,"117":0.02798,"118":0.03498,"119":0.06296,"120":0.1469,"121":0.13291,"122":0.22384,"123":0.74847,"124":1.2661,"125":3.30864,"126":40.66194,"127":4.28094,"128":0.01399,_:"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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 81 83 84 85 88 89 95 96 98 129 130"},F:{"83":0.02099,"94":0.007,"95":0.11192,"104":0.007,"109":0.60157,"110":0.02099,"111":0.83241,_:"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 84 85 86 87 88 89 90 91 92 93 96 97 98 99 100 101 102 103 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.007,"103":0.007,"107":0.007,"109":0.04197,"110":0.007,"111":0.007,"114":0.02798,"119":0.007,"120":0.01399,"121":0.01399,"122":0.007,"123":0.007,"124":0.02798,"125":0.1469,"126":5.52605,"127":0.60157,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 104 105 106 108 112 113 115 116 117 118"},E:{"9":0.007,"14":0.007,_:"0 4 5 6 7 8 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1","12.1":0.02798,"13.1":0.02798,"14.1":0.03498,"15.2-15.3":0.007,"15.4":0.007,"15.5":0.01399,"15.6":0.1469,"16.0":0.007,"16.1":0.02099,"16.2":0.01399,"16.3":0.04897,"16.4":0.03498,"16.5":0.01399,"16.6":0.13291,"17.0":0.01399,"17.1":0.02798,"17.2":0.04197,"17.3":0.04197,"17.4":0.09094,"17.5":0.89536,"17.6":0.01399,"18.0":0.01399},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0014,"5.0-5.1":0.0007,"6.0-6.1":0.0042,"7.0-7.1":0.0042,"8.1-8.4":0,"9.0-9.2":0.0035,"9.3":0.014,"10.0-10.2":0.0028,"10.3":0.02451,"11.0-11.2":0.06442,"11.3-11.4":0.007,"12.0-12.1":0.0049,"12.2-12.5":0.09032,"13.0-13.1":0.0014,"13.2":0.0147,"13.3":0.0049,"13.4-13.7":0.021,"14.0-14.4":0.04831,"14.5-14.8":0.05461,"15.0-15.1":0.02731,"15.2-15.3":0.02941,"15.4":0.03361,"15.5":0.04061,"15.6-15.8":0.37249,"16.0":0.07492,"16.1":0.15894,"16.2":0.07982,"16.3":0.13373,"16.4":0.03151,"16.5":0.05671,"16.6-16.7":0.46491,"17.0":0.04201,"17.1":0.06792,"17.2":0.06582,"17.3":0.09872,"17.4":0.24716,"17.5":4.52587,"17.6":0.03501,"18.0":0.04621},P:{"4":0.01042,"20":0.02083,"21":0.04167,"22":0.04167,"23":0.05209,"24":0.0625,"25":2.00013,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 15.0 16.0 18.0","13.0":0.01042,"14.0":0.01042,"17.0":0.01042,"19.0":0.01042},I:{"0":0.07187,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00012},K:{"0":0.31252,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.04691,"9":0.00782,"10":0.00782,"11":0.07036,_:"6 7 5.5"},S:{"2.5":0.00301,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":20.08239},R:{_:"0"},M:{"0":0.40568},Q:{"14.9":0.00902},O:{"0":0.06311},H:{"0":0}}; 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..70cac1a --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LY.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00157,"43":0.00078,"45":0.00078,"47":0.00078,"48":0.00078,"49":0.00078,"52":0.01254,"72":0.00078,"102":0.00157,"103":0.01254,"115":0.0784,"121":0.00078,"123":0.00078,"124":0.00235,"125":0.00157,"126":0.00549,"127":0.06586,"128":0.11054,"129":0.00314,_:"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 46 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 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 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 130 131 3.5 3.6"},D:{"11":0.00314,"33":0.00078,"35":0.00078,"38":0.00078,"40":0.00392,"41":0.00078,"43":0.00157,"47":0.00078,"49":0.00078,"51":0.00078,"53":0.00157,"55":0.00078,"56":0.00157,"58":0.17405,"59":0.00078,"60":0.00078,"61":0.00078,"62":0.00078,"63":0.00235,"65":0.00078,"66":0.00078,"68":0.00078,"69":0.00157,"70":0.01254,"71":0.00157,"73":0.00157,"75":0.00078,"76":0.00157,"77":0.00157,"78":0.00235,"79":0.01019,"80":0.00157,"81":0.00078,"83":0.01098,"85":0.00078,"86":0.00314,"87":0.00941,"88":0.0047,"89":0.00235,"90":0.0047,"91":0.00314,"92":0.03528,"93":0.00392,"94":0.00235,"95":0.00314,"96":0.00314,"97":0.00235,"98":0.01333,"99":0.00941,"100":0.00549,"101":0.00157,"102":0.01019,"103":0.01882,"104":0.02274,"105":0.0047,"106":0.01019,"107":0.00314,"108":0.00549,"109":0.80125,"110":0.0047,"111":0.0047,"112":0.00392,"113":0.00078,"114":0.00235,"115":0.00078,"116":0.01333,"117":0.0047,"118":0.00784,"119":0.01019,"120":0.04704,"121":0.01333,"122":0.02274,"123":0.0196,"124":0.0439,"125":0.05174,"126":2.45627,"127":0.29714,_:"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 34 36 37 39 42 44 45 46 48 50 52 54 57 64 67 72 74 84 128 129 130"},F:{"46":0.00235,"73":0.00078,"79":0.01098,"82":0.00078,"83":0.0392,"84":0.00157,"85":0.00078,"86":0.00078,"95":0.0392,"107":0.0047,"109":0.04782,"110":0.00392,"111":0.11603,_:"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 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 78 80 81 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00078,"17":0.00078,"18":0.0047,"84":0.00078,"89":0.00235,"90":0.00235,"92":0.00862,"100":0.00235,"102":0.00078,"103":0.00078,"107":0.00078,"109":0.01254,"113":0.00078,"114":0.00157,"117":0.00078,"118":0.00078,"119":0.00784,"120":0.00392,"121":0.00235,"122":0.00314,"123":0.00314,"124":0.00549,"125":0.02117,"126":0.67502,"127":0.15131,_:"12 13 14 16 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 104 105 106 108 110 111 112 115 116"},E:{"12":0.00078,"13":0.00078,"14":0.00235,"15":0.00078,_:"0 4 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 17.6","5.1":0.00157,"12.1":0.00157,"13.1":0.00157,"14.1":0.01333,"15.4":0.00078,"15.5":0.00157,"15.6":0.01019,"16.0":0.00078,"16.1":0.00235,"16.2":0.00314,"16.3":0.00314,"16.4":0.00862,"16.5":0.00157,"16.6":0.01176,"17.0":0.00078,"17.1":0.00078,"17.2":0.0047,"17.3":0.00314,"17.4":0.01254,"17.5":0.08624,"18.0":0.00157},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00214,"5.0-5.1":0.00107,"6.0-6.1":0.00641,"7.0-7.1":0.00641,"8.1-8.4":0,"9.0-9.2":0.00535,"9.3":0.02138,"10.0-10.2":0.00428,"10.3":0.03742,"11.0-11.2":0.09835,"11.3-11.4":0.01069,"12.0-12.1":0.00748,"12.2-12.5":0.13791,"13.0-13.1":0.00214,"13.2":0.02245,"13.3":0.00748,"13.4-13.7":0.03207,"14.0-14.4":0.07376,"14.5-14.8":0.08339,"15.0-15.1":0.04169,"15.2-15.3":0.0449,"15.4":0.05131,"15.5":0.06201,"15.6-15.8":0.56874,"16.0":0.11439,"16.1":0.24268,"16.2":0.12187,"16.3":0.20419,"16.4":0.04811,"16.5":0.08659,"16.6-16.7":0.70985,"17.0":0.06414,"17.1":0.1037,"17.2":0.10049,"17.3":0.15074,"17.4":0.37738,"17.5":6.91038,"17.6":0.05345,"18.0":0.07056},P:{"4":0.10162,"20":0.0813,"21":0.25406,"22":0.60975,"23":0.4065,"24":0.41666,"25":2.27638,"5.0-5.4":0.01016,"6.2-6.4":0.05081,"7.2-7.4":0.74186,_:"8.2 10.1","9.2":0.03049,"11.1-11.2":0.0813,"12.0":0.03049,"13.0":0.04065,"14.0":0.07114,"15.0":0.03049,"16.0":0.11179,"17.0":0.07114,"18.0":0.0813,"19.0":0.22357},I:{"0":0.11939,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00007,"4.2-4.3":0.00005,"4.4":0,"4.4.3-4.4.4":0.0002},K:{"0":9.07541,_:"10 11 12 11.1 11.5 12.1"},A:{"7":0.00089,"8":0.00178,"11":0.01066,_:"6 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":67.22309},R:{_:"0"},M:{"0":0.07373},Q:{_:"14.9"},O:{"0":0.49766},H:{"0":0.03}}; 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..9e0cdc5 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MA.js @@ -0,0 +1 @@ +module.exports={C:{"3":0.00335,"10":0.00335,"15":0.00335,"52":0.08363,"65":0.01673,"72":0.00335,"75":0.00335,"76":0.00335,"78":0.01338,"84":0.00335,"88":0.00335,"93":0.00335,"94":0.00335,"99":0.00335,"101":0.00335,"102":0.01004,"103":0.00669,"105":0.00335,"106":0.00335,"107":0.00335,"108":0.00669,"109":0.00669,"110":0.00669,"111":0.00335,"114":0.00335,"115":0.41478,"118":0.01004,"119":0.00335,"121":0.00335,"122":0.00335,"123":0.01004,"124":0.01338,"125":0.01004,"126":0.03345,"127":0.56196,"128":0.80949,"129":0.01004,_:"2 4 5 6 7 8 9 11 12 13 14 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 66 67 68 69 70 71 73 74 77 79 80 81 82 83 85 86 87 89 90 91 92 95 96 97 98 100 104 112 113 116 117 120 130 131 3.5 3.6"},D:{"11":0.00335,"29":0.00335,"34":0.00335,"38":0.00335,"43":0.01004,"49":0.02676,"50":0.00335,"51":0.00335,"55":0.00669,"56":0.01004,"58":0.11373,"63":0.00335,"65":0.00335,"66":0.00335,"67":0.00669,"68":0.00669,"69":0.00669,"70":0.01004,"72":0.01004,"73":0.00669,"74":0.00335,"75":0.00335,"76":0.00335,"77":0.00335,"78":0.00335,"79":0.12377,"80":0.00335,"81":0.01004,"83":0.1037,"84":0.00669,"85":0.03011,"86":0.01338,"87":0.1338,"88":0.02342,"89":0.00335,"90":0.00669,"91":0.02342,"92":0.00669,"93":0.01338,"94":0.04349,"95":0.01338,"96":0.04014,"97":0.01338,"98":0.01673,"99":0.01338,"100":0.00669,"101":0.01004,"102":0.01004,"103":0.04683,"104":0.01673,"105":0.01338,"106":0.06021,"107":0.05352,"108":0.0669,"109":2.97036,"110":0.07025,"111":0.04014,"112":0.04349,"113":0.01338,"114":0.01673,"115":0.01673,"116":0.12042,"117":0.01004,"118":0.03011,"119":0.07694,"120":0.11708,"121":0.04349,"122":0.11708,"123":0.10035,"124":0.21743,"125":0.55862,"126":16.10618,"127":2.41509,"128":0.01004,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 35 36 37 39 40 41 42 44 45 46 47 48 52 53 54 57 59 60 61 62 64 71 129 130"},F:{"28":0.00335,"40":0.00335,"46":0.00335,"79":0.01004,"83":0.01338,"84":0.00335,"85":0.01338,"91":0.00335,"92":0.00335,"94":0.00335,"95":0.07694,"102":0.00335,"105":0.00335,"106":0.00335,"107":0.00335,"108":0.00335,"109":0.29436,"110":0.03011,"111":0.69576,_:"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 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 80 81 82 86 87 88 89 90 93 96 97 98 99 100 101 103 104 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00669,"84":0.00335,"86":0.00335,"89":0.00335,"92":0.03011,"100":0.00335,"102":0.00335,"103":0.00335,"106":0.00335,"107":0.01338,"108":0.01338,"109":0.04349,"110":0.00669,"111":0.00335,"114":0.00335,"116":0.00335,"117":0.00669,"118":0.00669,"119":0.00335,"120":0.00669,"121":0.01673,"122":0.01004,"123":0.00669,"124":0.01673,"125":0.07694,"126":2.41509,"127":0.32447,_:"12 13 14 15 16 17 79 80 81 83 85 87 88 90 91 93 94 95 96 97 98 99 101 104 105 112 113 115"},E:{"4":0.00335,"9":0.00335,"14":0.01004,_:"0 5 6 7 8 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 17.6","12.1":0.00335,"13.1":0.02342,"14.1":0.04014,"15.1":0.01004,"15.2-15.3":0.00335,"15.4":0.00335,"15.5":0.00669,"15.6":0.12042,"16.0":0.00669,"16.1":0.01004,"16.2":0.01004,"16.3":0.01338,"16.4":0.00669,"16.5":0.01004,"16.6":0.04683,"17.0":0.00669,"17.1":0.01004,"17.2":0.01338,"17.3":0.01673,"17.4":0.04014,"17.5":0.22746,"18.0":0.00335},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00139,"5.0-5.1":0.0007,"6.0-6.1":0.00418,"7.0-7.1":0.00418,"8.1-8.4":0,"9.0-9.2":0.00348,"9.3":0.01394,"10.0-10.2":0.00279,"10.3":0.02439,"11.0-11.2":0.0641,"11.3-11.4":0.00697,"12.0-12.1":0.00488,"12.2-12.5":0.08988,"13.0-13.1":0.00139,"13.2":0.01463,"13.3":0.00488,"13.4-13.7":0.0209,"14.0-14.4":0.04808,"14.5-14.8":0.05435,"15.0-15.1":0.02717,"15.2-15.3":0.02926,"15.4":0.03345,"15.5":0.04041,"15.6-15.8":0.37069,"16.0":0.07456,"16.1":0.15817,"16.2":0.07943,"16.3":0.13308,"16.4":0.03136,"16.5":0.05644,"16.6-16.7":0.46266,"17.0":0.04181,"17.1":0.06759,"17.2":0.0655,"17.3":0.09825,"17.4":0.24596,"17.5":4.50398,"17.6":0.03484,"18.0":0.04599},P:{"4":0.27779,"20":0.04115,"21":0.12346,"22":0.0926,"23":0.11317,"24":0.07202,"25":1.8725,"5.0-5.4":0.03087,"6.2-6.4":0.10288,"7.2-7.4":0.2675,_:"8.2 10.1","9.2":0.01029,"11.1-11.2":0.01029,"12.0":0.01029,"13.0":0.05144,"14.0":0.02058,"15.0":0.01029,"16.0":0.02058,"17.0":0.04115,"18.0":0.02058,"19.0":0.07202},I:{"0":0.21885,"3":0,"4":0.00002,"2.1":0,"2.2":0.00004,"2.3":0,"4.1":0.00013,"4.2-4.3":0.00009,"4.4":0,"4.4.3-4.4.4":0.00037},K:{"0":0.3793,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.04959,"9":0.01526,"10":0.01144,"11":0.14114,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":56.34907},R:{_:"0"},M:{"0":0.16638},Q:{_:"14.9"},O:{"0":0.10648},H:{"0":0.02}}; 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..59bab6b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MC.js @@ -0,0 +1 @@ +module.exports={C:{"2":0.01754,"3":0.02924,"4":0.01754,"5":0.00585,"6":0.01754,"7":0.00585,"12":0.01754,"13":0.00585,"14":0.00585,"15":0.00585,"17":0.00585,"18":0.00585,"20":0.00585,"21":0.00585,"22":0.00585,"23":0.01754,"24":0.00585,"25":0.00585,"26":0.00585,"27":0.00585,"28":0.0117,"29":0.00585,"31":0.02924,"32":0.00585,"33":0.0117,"34":0.02924,"35":0.02339,"36":0.01754,"37":0.0117,"38":0.03509,"39":0.01754,"40":0.05263,"41":0.01754,"42":0.01754,"43":0.00585,"44":0.00585,"46":0.00585,"60":0.09357,"76":0.00585,"78":0.70176,"82":0.17544,"89":0.00585,"99":0.03509,"102":0.00585,"103":0.0117,"106":0.0117,"108":0.00585,"109":0.00585,"111":0.0117,"112":0.00585,"115":0.72515,"120":0.00585,"121":0.01754,"123":0.00585,"124":0.0117,"125":0.00585,"126":0.1345,"127":1.80703,"128":3.13453,"129":0.00585,_:"8 9 10 11 16 19 30 45 47 48 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 77 79 80 81 83 84 85 86 87 88 90 91 92 93 94 95 96 97 98 100 101 104 105 107 110 113 114 116 117 118 119 122 130 131","3.5":0.0117,"3.6":0.04678},D:{"4":0.00585,"6":0.00585,"7":0.00585,"9":0.00585,"11":0.00585,"12":0.00585,"13":0.00585,"14":0.0117,"16":0.01754,"17":0.00585,"18":0.0117,"19":0.00585,"20":0.00585,"21":0.01754,"24":0.00585,"25":0.00585,"26":0.0117,"27":0.01754,"28":0.0117,"29":0.00585,"30":0.00585,"31":0.0117,"32":0.00585,"33":0.0117,"34":0.00585,"35":0.0117,"36":0.02339,"37":0.01754,"38":0.01754,"39":0.03509,"40":0.05263,"41":0.08187,"42":0.04678,"43":0.04678,"44":0.12866,"45":0.06433,"46":0.05848,"47":0.07018,"49":0.00585,"51":0.11696,"57":0.02924,"62":0.00585,"65":0.01754,"70":0.11111,"72":0.02339,"74":0.02339,"76":0.04094,"78":0.02339,"79":0.09942,"80":0.07602,"81":0.02924,"83":0.03509,"84":0.08187,"85":0.26316,"86":0.14035,"87":0.07018,"88":0.0117,"90":0.01754,"91":0.00585,"93":0.00585,"95":0.00585,"96":0.00585,"97":0.00585,"98":0.09942,"99":0.01754,"100":0.0117,"102":0.00585,"103":1.7544,"105":0.00585,"106":0.4386,"107":0.85381,"108":0.07602,"109":0.40936,"110":0.00585,"111":0.0117,"112":0.04678,"114":0.00585,"116":1.66083,"117":0.01754,"118":0.02924,"119":0.03509,"120":0.11111,"121":0.61404,"122":0.28655,"123":0.09357,"124":0.12281,"125":0.34503,"126":13.48549,"127":1.54387,_:"5 8 10 15 22 23 48 50 52 53 54 55 56 58 59 60 61 63 64 66 67 68 69 71 73 75 77 89 92 94 101 104 113 115 128 129 130"},F:{"12":0.00585,"20":0.00585,"25":0.00585,"28":0.00585,"29":0.00585,"30":0.01754,"31":0.02924,"32":0.0117,"33":0.0117,"75":0.00585,"94":0.00585,"97":0.00585,"98":0.00585,"108":0.00585,"109":0.3041,"110":0.00585,"111":5.01758,_:"9 11 15 16 17 18 19 21 22 23 24 26 27 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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 99 100 101 102 103 104 105 106 107 9.5-9.6 10.5 10.6 11.5","10.0-10.1":0.00585,"11.1":0.00585,"11.6":0.00585,"12.1":0.02924},B:{"12":0.02339,"13":0.00585,"86":0.05848,"92":0.0117,"98":0.0117,"106":0.05848,"107":0.0117,"109":0.0117,"111":0.31579,"118":0.00585,"120":0.00585,"121":0.0117,"122":0.0117,"123":0.02924,"124":0.02339,"125":0.32164,"126":3.47371,"127":0.30994,_:"14 15 16 17 18 79 80 81 83 84 85 87 88 89 90 91 93 94 95 96 97 99 100 101 102 103 104 105 108 110 112 113 114 115 116 117 119"},E:{"4":0.00585,"5":0.0117,"7":0.01754,"8":0.01754,"9":0.21053,"14":0.16374,_:"0 6 10 11 12 13 15 3.1 3.2 9.1 10.1 11.1 12.1","5.1":0.01754,"6.1":0.00585,"7.1":0.00585,"13.1":0.02924,"14.1":0.07018,"15.1":0.03509,"15.2-15.3":0.00585,"15.4":0.02924,"15.5":0.00585,"15.6":0.95907,"16.0":0.08187,"16.1":0.06433,"16.2":0.02339,"16.3":0.25731,"16.4":0.03509,"16.5":0.1345,"16.6":0.52632,"17.0":0.02339,"17.1":0.05263,"17.2":1.02925,"17.3":0.33334,"17.4":0.54386,"17.5":7.2983,"17.6":0.04094,"18.0":0.00585},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00487,"5.0-5.1":0.00243,"6.0-6.1":0.0146,"7.0-7.1":0.0146,"8.1-8.4":0,"9.0-9.2":0.01217,"9.3":0.04867,"10.0-10.2":0.00973,"10.3":0.08517,"11.0-11.2":0.22387,"11.3-11.4":0.02433,"12.0-12.1":0.01703,"12.2-12.5":0.3139,"13.0-13.1":0.00487,"13.2":0.0511,"13.3":0.01703,"13.4-13.7":0.073,"14.0-14.4":0.1679,"14.5-14.8":0.1898,"15.0-15.1":0.0949,"15.2-15.3":0.1022,"15.4":0.1168,"15.5":0.14113,"15.6-15.8":1.29452,"16.0":0.26036,"16.1":0.55236,"16.2":0.2774,"16.3":0.46476,"16.4":0.1095,"16.5":0.1971,"16.6-16.7":1.61572,"17.0":0.146,"17.1":0.23603,"17.2":0.22873,"17.3":0.3431,"17.4":0.85896,"17.5":15.72896,"17.6":0.12167,"18.0":0.1606},P:{"4":0.07555,"20":0.01079,"22":0.04317,"25":1.12243,_:"21 23 24 5.0-5.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 18.0 19.0","6.2-6.4":0.08634,"16.0":0.02159,"17.0":0.01079},I:{"0":1.24508,"3":0,"4":0.00012,"2.1":0,"2.2":0.00025,"2.3":0,"4.1":0.00075,"4.2-4.3":0.0005,"4.4":0,"4.4.3-4.4.4":0.00212},K:{"0":0.08717,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.04697,"7":0.06459,"8":0.57541,"9":0.12917,"10":0.1233,"11":0.48733,"5.5":0.00587},S:{"2.5":0.07057,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":13.51078},R:{_:"0"},M:{"0":0.24906},Q:{_:"14.9"},O:{"0":0.16189},H:{"0":0}}; 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..e846cab --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MD.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.04804,"74":0.00873,"78":0.03057,"88":0.4629,"91":0.00437,"92":0.01747,"102":0.03057,"103":0.0131,"105":0.0131,"109":0.00873,"110":0.00437,"113":0.0131,"115":0.65505,"116":0.00873,"117":0.00437,"118":0.00437,"121":0.0262,"122":0.00437,"123":0.0131,"124":0.00437,"125":0.00873,"126":0.05677,"127":0.74239,"128":1.03498,"129":0.00437,_:"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 67 68 69 70 71 72 73 75 76 77 79 80 81 82 83 84 85 86 87 89 90 93 94 95 96 97 98 99 100 101 104 106 107 108 111 112 114 119 120 130 131 3.5","3.6":0.0131},D:{"34":0.00437,"41":0.00873,"46":0.00437,"49":0.0131,"51":0.02184,"56":0.00437,"58":0.0131,"70":0.00437,"77":0.00873,"78":0.00437,"79":0.02184,"80":0.00437,"83":0.00437,"85":0.00437,"86":0.00873,"87":0.00873,"88":0.00437,"90":0.01747,"91":0.00437,"92":0.00437,"93":0.00437,"94":0.0262,"95":0.00437,"97":0.0131,"98":0.00873,"99":0.0524,"100":0.00437,"101":0.02184,"102":0.11791,"103":0.0262,"104":0.0262,"105":0.0131,"106":0.15721,"107":0.0131,"108":0.47164,"109":3.8779,"110":0.0393,"111":0.0131,"112":0.00873,"113":0.61138,"114":0.66378,"115":0.00437,"116":0.26202,"117":0.0131,"118":0.09607,"119":0.03057,"120":0.08734,"121":0.10044,"122":0.06551,"123":0.22708,"124":0.21835,"125":0.57644,"126":19.13619,"127":2.65514,"128":0.0262,_:"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 42 43 44 45 47 48 50 52 53 54 55 57 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 81 84 89 96 129 130"},F:{"20":0.00437,"46":0.00437,"73":0.02184,"79":0.0524,"82":0.00437,"83":0.0131,"85":0.09171,"86":0.00437,"87":0.00873,"95":0.45854,"101":0.0131,"108":0.00437,"109":0.54588,"110":0.03494,"111":1.44548,_:"9 11 12 15 16 17 18 19 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 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 78 80 81 84 88 89 90 91 92 93 94 96 97 98 99 100 102 103 104 105 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00873,"100":0.00437,"102":0.00437,"105":0.00873,"108":0.00437,"109":0.01747,"110":0.0131,"112":0.00437,"113":0.00437,"114":0.00437,"116":0.00437,"118":0.0262,"119":0.00873,"120":0.0393,"121":0.00437,"122":0.00437,"123":0.11791,"124":0.00873,"125":0.0524,"126":1.773,"127":0.34499,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 103 104 106 107 111 115 117"},E:{"9":0.0131,"14":0.0131,_:"0 4 5 6 7 8 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1","12.1":0.00437,"13.1":0.02184,"14.1":0.0262,"15.2-15.3":0.00437,"15.4":0.00437,"15.5":0.00437,"15.6":0.09607,"16.0":0.0131,"16.1":0.0131,"16.2":0.01747,"16.3":0.0262,"16.4":0.00873,"16.5":0.01747,"16.6":0.07424,"17.0":0.01747,"17.1":0.27512,"17.2":0.02184,"17.3":0.0262,"17.4":0.06987,"17.5":0.55024,"17.6":0.00437,"18.0":0.0131},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00256,"5.0-5.1":0.00128,"6.0-6.1":0.00769,"7.0-7.1":0.00769,"8.1-8.4":0,"9.0-9.2":0.00641,"9.3":0.02564,"10.0-10.2":0.00513,"10.3":0.04486,"11.0-11.2":0.11793,"11.3-11.4":0.01282,"12.0-12.1":0.00897,"12.2-12.5":0.16536,"13.0-13.1":0.00256,"13.2":0.02692,"13.3":0.00897,"13.4-13.7":0.03846,"14.0-14.4":0.08845,"14.5-14.8":0.09998,"15.0-15.1":0.04999,"15.2-15.3":0.05384,"15.4":0.06153,"15.5":0.07435,"15.6-15.8":0.68194,"16.0":0.13716,"16.1":0.29098,"16.2":0.14613,"16.3":0.24483,"16.4":0.05768,"16.5":0.10383,"16.6-16.7":0.85114,"17.0":0.07691,"17.1":0.12434,"17.2":0.12049,"17.3":0.18074,"17.4":0.45249,"17.5":8.28583,"17.6":0.06409,"18.0":0.0846},P:{"4":0.05212,"20":0.01042,"21":0.02085,"22":0.0417,"23":0.08339,"24":0.07297,"25":2.00147,_:"5.0-5.4 6.2-6.4 8.2 10.1 11.1-11.2 12.0 15.0 16.0 18.0","7.2-7.4":0.03127,"9.2":0.01042,"13.0":0.09382,"14.0":0.02085,"17.0":0.01042,"19.0":0.02085},I:{"0":0.07296,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00012},K:{"0":0.47309,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.0262,"11":0.14411,_:"6 7 9 10 5.5"},S:{"2.5":0.00563,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":40.85875},R:{_:"0"},M:{"0":0.22528},Q:{_:"14.9"},O:{"0":0.07322},H:{"0":0}}; 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..fa80460 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ME.js @@ -0,0 +1 @@ +module.exports={C:{"36":0.00261,"40":0.00261,"52":0.00782,"68":0.01043,"78":0.00782,"88":0.00261,"91":0.00261,"103":0.00261,"110":0.00521,"113":0.00782,"115":0.19292,"121":0.00261,"122":0.00521,"123":0.00261,"124":0.01043,"125":0.00261,"126":0.01304,"127":0.35195,"128":0.58658,"129":0.01564,"130":0.00782,_:"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 37 38 39 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 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 111 112 114 116 117 118 119 120 131","3.5":0.00261,"3.6":0.00261},D:{"21":0.00261,"31":0.00261,"38":0.00261,"39":0.00261,"40":0.00261,"41":0.00261,"43":0.00521,"44":0.00521,"45":0.00521,"46":0.00521,"47":0.00261,"49":0.03389,"51":0.00521,"53":0.00261,"66":0.00782,"70":0.00261,"77":0.00782,"79":0.40669,"81":0.00261,"83":0.02607,"85":0.00261,"86":0.00521,"87":0.21638,"88":0.01043,"89":0.00782,"90":0.03389,"92":0.00261,"93":0.02607,"94":0.08342,"95":0.01043,"96":0.00261,"98":0.00521,"99":0.00782,"100":0.01304,"102":0.01564,"103":0.0365,"104":0.00261,"105":0.00261,"106":0.07821,"107":0.01564,"108":0.00521,"109":1.94222,"110":0.01043,"111":0.01043,"112":0.05735,"114":0.00521,"115":0.01825,"116":0.16163,"117":0.05214,"118":0.01564,"119":0.04171,"120":0.13817,"121":0.04693,"122":0.10689,"123":0.06518,"124":0.16424,"125":0.27374,"126":12.34675,"127":1.42864,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 42 48 50 52 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 71 72 73 74 75 76 78 80 84 91 97 101 113 128 129 130"},F:{"31":0.00261,"36":0.00521,"40":0.00261,"46":0.03911,"68":1.07148,"83":0.00782,"95":0.02346,"109":0.4823,"110":0.01564,"111":0.34934,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.00261},B:{"92":0.00782,"107":0.00261,"109":0.00521,"118":0.00261,"119":0.00261,"120":0.00261,"121":0.00261,"122":0.00261,"123":0.00261,"124":0.00521,"125":0.01564,"126":0.91245,"127":0.08603,_:"12 13 14 15 16 17 18 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 108 110 111 112 113 114 115 116 117"},E:{"9":0.01043,"12":0.00261,"14":0.01043,_:"0 4 5 6 7 8 10 11 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.2-15.3 16.0 17.6","12.1":0.00261,"13.1":0.06257,"14.1":0.02346,"15.1":0.00782,"15.4":0.00782,"15.5":0.01304,"15.6":0.13556,"16.1":0.02086,"16.2":0.08603,"16.3":0.01564,"16.4":0.01043,"16.5":0.01304,"16.6":0.09646,"17.0":0.00521,"17.1":0.12253,"17.2":0.01564,"17.3":0.02868,"17.4":0.02346,"17.5":0.93591,"18.0":0.02346},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00315,"5.0-5.1":0.00158,"6.0-6.1":0.00946,"7.0-7.1":0.00946,"8.1-8.4":0,"9.0-9.2":0.00788,"9.3":0.03152,"10.0-10.2":0.0063,"10.3":0.05516,"11.0-11.2":0.14499,"11.3-11.4":0.01576,"12.0-12.1":0.01103,"12.2-12.5":0.2033,"13.0-13.1":0.00315,"13.2":0.0331,"13.3":0.01103,"13.4-13.7":0.04728,"14.0-14.4":0.10874,"14.5-14.8":0.12293,"15.0-15.1":0.06146,"15.2-15.3":0.06619,"15.4":0.07565,"15.5":0.09141,"15.6-15.8":0.83842,"16.0":0.16863,"16.1":0.35775,"16.2":0.17966,"16.3":0.30101,"16.4":0.07092,"16.5":0.12765,"16.6-16.7":1.04645,"17.0":0.09456,"17.1":0.15287,"17.2":0.14814,"17.3":0.22221,"17.4":0.55632,"17.5":10.1871,"17.6":0.0788,"18.0":0.10401},P:{"4":0.35015,"20":0.12358,"21":0.12358,"22":0.35015,"23":0.18537,"24":0.17507,"25":4.22237,"5.0-5.4":0.0103,"6.2-6.4":0.09269,"7.2-7.4":0.08239,_:"8.2 9.2 15.0 16.0","10.1":0.05149,"11.1-11.2":0.0206,"12.0":0.0206,"13.0":0.0206,"14.0":0.0103,"17.0":0.0103,"18.0":0.06179,"19.0":0.07209},I:{"0":0.10313,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00006,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00018},K:{"0":0.24394,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.00276,"7":0.00551,"8":0.04134,"9":0.00827,"10":0.00551,"11":0.03032,_:"5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":52.33061},R:{_:"0"},M:{"0":0.24394},Q:{_:"14.9"},O:{"0":0.05174},H:{"0":0}}; 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..2f9df76 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MG.js @@ -0,0 +1 @@ +module.exports={C:{"17":0.00417,"43":0.00417,"47":0.00417,"48":0.01668,"50":0.00417,"52":0.02502,"56":0.00834,"57":0.00417,"60":0.00417,"67":0.00417,"68":0.00417,"72":0.01668,"75":0.01668,"77":0.00417,"78":0.01251,"82":0.00417,"87":0.00417,"88":0.02085,"89":0.00417,"91":0.00834,"94":0.00417,"96":0.00417,"100":0.00417,"101":0.00417,"102":0.00834,"103":0.01251,"104":0.00417,"105":0.00417,"106":0.00417,"108":0.00417,"109":0.00417,"110":0.00834,"111":0.00834,"112":0.00834,"113":0.01251,"114":0.01668,"115":1.15509,"116":0.00417,"118":0.01251,"119":0.00417,"120":0.02502,"121":0.02502,"122":0.01251,"123":0.01251,"124":0.02085,"125":0.0417,"126":0.10425,"127":1.14675,"128":1.56792,"129":0.01251,"130":0.00417,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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 44 45 46 49 51 53 54 55 58 59 61 62 63 64 65 66 69 70 71 73 74 76 79 80 81 83 84 85 86 90 92 93 95 97 98 99 107 117 131 3.5 3.6"},D:{"11":0.03753,"18":0.00417,"33":0.00417,"37":0.00417,"42":0.02085,"43":0.01251,"48":0.00834,"49":0.00417,"50":0.00834,"51":0.00417,"53":0.00417,"54":0.00834,"55":0.00417,"56":0.00417,"57":0.00834,"58":0.02085,"60":0.00834,"64":0.00834,"65":0.00417,"66":0.00417,"67":0.00417,"68":0.00834,"69":0.00834,"70":0.02919,"71":0.01251,"72":0.00417,"73":0.00834,"74":0.00834,"75":0.00834,"76":0.00417,"77":0.00834,"78":0.00417,"79":0.0417,"80":0.00834,"81":0.06672,"83":0.00834,"84":0.00834,"85":0.04587,"86":0.02085,"87":0.04587,"88":0.01668,"89":0.00417,"90":0.00834,"91":0.01251,"92":0.00417,"93":0.00417,"94":0.01668,"95":0.03336,"96":0.01668,"97":0.00834,"98":0.00417,"99":0.00417,"100":0.00834,"101":0.01251,"102":0.01668,"103":0.02502,"104":0.01668,"105":0.01251,"106":0.03336,"107":0.00834,"108":0.02502,"109":4.33263,"110":0.00417,"111":0.00834,"112":0.02502,"113":0.00834,"114":0.02085,"115":0.01668,"116":0.04587,"117":0.01251,"118":0.02502,"119":0.07923,"120":0.07506,"121":0.07506,"122":0.11676,"123":0.13344,"124":0.22518,"125":0.41283,"126":15.79596,"127":1.78476,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 38 39 40 41 44 45 46 47 52 59 61 62 63 128 129 130"},F:{"34":0.00417,"36":0.00417,"37":0.00417,"42":0.00417,"47":0.00417,"64":0.00417,"72":0.01251,"79":0.01668,"83":0.01668,"85":0.00417,"95":0.07089,"100":0.00417,"101":0.00417,"106":0.00417,"107":0.00417,"109":0.15012,"110":0.01251,"111":0.51291,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 38 39 40 41 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 73 74 75 76 77 78 80 81 82 84 86 87 88 89 90 91 92 93 94 96 97 98 99 102 103 104 105 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.00417},B:{"13":0.00834,"14":0.00417,"15":0.00834,"16":0.00417,"17":0.00834,"18":0.0417,"84":0.00417,"85":0.00417,"89":0.01668,"90":0.00834,"92":0.17514,"100":0.03336,"103":0.00417,"107":0.00417,"109":0.22935,"113":0.00417,"114":0.00417,"115":0.01251,"116":0.00834,"117":0.00417,"118":0.01251,"119":0.02919,"120":0.02502,"121":0.02919,"122":0.02502,"123":0.04587,"124":0.04587,"125":0.10008,"126":3.61122,"127":0.61299,_:"12 79 80 81 83 86 87 88 91 93 94 95 96 97 98 99 101 102 104 105 106 108 110 111 112"},E:{_:"0 4 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 15.1 15.4 16.0 17.6 18.0","11.1":0.00834,"12.1":0.00417,"13.1":0.01668,"14.1":0.01251,"15.2-15.3":0.00417,"15.5":0.00417,"15.6":0.02502,"16.1":0.00417,"16.2":0.00417,"16.3":0.00834,"16.4":0.00417,"16.5":0.01251,"16.6":0.03336,"17.0":0.00417,"17.1":0.00417,"17.2":0.00417,"17.3":0.00417,"17.4":0.02502,"17.5":0.13761},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00071,"5.0-5.1":0.00035,"6.0-6.1":0.00213,"7.0-7.1":0.00213,"8.1-8.4":0,"9.0-9.2":0.00177,"9.3":0.00709,"10.0-10.2":0.00142,"10.3":0.01241,"11.0-11.2":0.03261,"11.3-11.4":0.00354,"12.0-12.1":0.00248,"12.2-12.5":0.04573,"13.0-13.1":0.00071,"13.2":0.00744,"13.3":0.00248,"13.4-13.7":0.01063,"14.0-14.4":0.02446,"14.5-14.8":0.02765,"15.0-15.1":0.01382,"15.2-15.3":0.01489,"15.4":0.01701,"15.5":0.02056,"15.6-15.8":0.18857,"16.0":0.03793,"16.1":0.08046,"16.2":0.04041,"16.3":0.0677,"16.4":0.01595,"16.5":0.02871,"16.6-16.7":0.23536,"17.0":0.02127,"17.1":0.03438,"17.2":0.03332,"17.3":0.04998,"17.4":0.12513,"17.5":2.29126,"17.6":0.01772,"18.0":0.02339},P:{"4":0.06462,"21":0.01077,"22":0.03231,"23":0.03231,"24":0.02154,"25":0.29081,_:"20 5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 18.0","6.2-6.4":0.01077,"7.2-7.4":0.01077,"13.0":0.03231,"14.0":0.01077,"15.0":0.04308,"16.0":0.01077,"17.0":0.01077,"19.0":0.01077},I:{"0":0.11038,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00007,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00019},K:{"0":2.46071,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01467,"9":0.00489,"10":0.00489,"11":0.11734,_:"6 7 5.5"},S:{"2.5":0.54219,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":55.1019},R:{_:"0"},M:{"0":0.20405},Q:{"14.9":0.00583},O:{"0":0.95029},H:{"0":0.67}}; 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..df9b6d1 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MH.js @@ -0,0 +1 @@ +module.exports={C:{"76":0.01216,"104":0.01216,"108":0.01216,"109":0.02432,"122":0.01216,"124":0.01216,"126":0.01216,"127":0.05472,"128":0.10336,_:"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 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 105 106 107 110 111 112 113 114 115 116 117 118 119 120 121 123 125 129 130 131 3.5 3.6"},D:{"73":0.1216,"81":0.02432,"83":0.01216,"97":0.07904,"103":0.2128,"108":0.02432,"109":0.06688,"111":0.03648,"113":0.01216,"116":2.45024,"119":0.02432,"120":0.87552,"121":0.13376,"124":0.13376,"125":1.3984,"126":23.03104,"127":1.8848,_:"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 74 75 76 77 78 79 80 84 85 86 87 88 89 90 91 92 93 94 95 96 98 99 100 101 102 104 105 106 107 110 112 114 115 117 118 122 123 128 129 130"},F:{"109":0.14592,_:"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 99 100 101 102 103 104 105 106 107 108 110 111 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01216,"81":0.01216,"84":0.01216,"92":0.02432,"109":0.01216,"114":0.01216,"119":0.10336,"120":1.11872,"121":0.15808,"124":0.01216,"125":0.05472,"126":16.43424,"127":0.304,_:"12 13 14 15 16 17 79 80 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 122 123"},E:{_:"0 4 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 17.0 17.2 17.3 17.6","13.1":0.03648,"15.6":0.07904,"16.1":0.04256,"16.2":0.03648,"16.3":0.05472,"16.4":0.01216,"16.5":0.02432,"16.6":0.02432,"17.1":0.04256,"17.4":0.43776,"17.5":1.41056,"18.0":0.03648},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00208,"5.0-5.1":0.00104,"6.0-6.1":0.00625,"7.0-7.1":0.00625,"8.1-8.4":0,"9.0-9.2":0.00521,"9.3":0.02082,"10.0-10.2":0.00416,"10.3":0.03644,"11.0-11.2":0.09579,"11.3-11.4":0.01041,"12.0-12.1":0.00729,"12.2-12.5":0.13431,"13.0-13.1":0.00208,"13.2":0.02186,"13.3":0.00729,"13.4-13.7":0.03123,"14.0-14.4":0.07184,"14.5-14.8":0.08121,"15.0-15.1":0.0406,"15.2-15.3":0.04373,"15.4":0.04998,"15.5":0.06039,"15.6-15.8":0.55389,"16.0":0.1114,"16.1":0.23634,"16.2":0.11869,"16.3":0.19886,"16.4":0.04685,"16.5":0.08433,"16.6-16.7":0.69132,"17.0":0.06247,"17.1":0.10099,"17.2":0.09787,"17.3":0.1468,"17.4":0.36753,"17.5":6.73001,"17.6":0.05206,"18.0":0.06872},P:{"21":0.01108,"22":0.18833,"24":0.02216,"25":1.12998,_:"4 20 23 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0 19.0","16.0":0.01108},I:{"0":0.08594,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00015},K:{"0":0.098,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.23712,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":34.19288},R:{_:"0"},M:{"0":0.32144},Q:{_:"14.9"},O:{"0":0.098},H:{"0":0}}; 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..ba74889 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MK.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00548,"50":0.00274,"51":0.00274,"52":0.05202,"56":0.02738,"61":0.00821,"68":0.00274,"77":0.00274,"78":0.00548,"89":0.00548,"94":0.01643,"95":0.00274,"99":0.00821,"105":0.00274,"106":0.01643,"107":0.00274,"108":0.01369,"109":0.00274,"110":0.00274,"111":0.00548,"113":0.00274,"114":0.00274,"115":0.34225,"118":0.00548,"121":0.00274,"122":0.00274,"123":0.00274,"124":0.01095,"125":0.00548,"126":0.01369,"127":0.54212,"128":0.87068,"129":0.00274,_:"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 53 54 55 57 58 59 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 79 80 81 82 83 84 85 86 87 88 90 91 92 93 96 97 98 100 101 102 103 104 112 116 117 119 120 130 131 3.5 3.6"},D:{"47":0.00274,"49":0.03286,"50":0.00274,"56":0.00548,"58":0.00821,"64":0.00274,"66":0.00821,"69":0.00548,"70":0.00274,"72":0.00821,"73":0.00274,"75":0.00548,"79":0.09583,"81":0.00274,"83":0.01917,"85":0.00274,"86":0.00548,"87":0.06571,"88":0.03012,"89":0.00274,"90":0.01643,"91":0.00548,"93":0.00821,"94":0.03286,"95":0.03012,"97":0.00821,"98":0.00274,"99":0.01369,"100":0.01095,"102":0.00274,"103":0.01369,"104":0.00274,"105":0.00821,"106":0.03286,"107":0.07119,"108":0.07119,"109":2.48337,"110":0.02464,"111":0.04107,"112":0.0219,"113":0.00274,"114":0.00821,"115":0.00821,"116":0.0794,"117":0.00274,"118":0.01369,"119":0.04107,"120":0.04928,"121":0.03559,"122":0.11226,"123":0.05476,"124":0.09309,"125":0.33951,"126":14.31153,"127":1.70851,"128":0.00274,_:"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 48 51 52 53 54 55 57 59 60 61 62 63 65 67 68 71 74 76 77 78 80 84 92 96 101 129 130"},F:{"46":0.01369,"83":0.00548,"85":0.01095,"92":0.00274,"94":0.01095,"95":0.08214,"109":0.23273,"110":0.00821,"111":0.39427,_:"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 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 84 86 87 88 89 90 91 93 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"84":0.00274,"92":0.00821,"103":0.00821,"105":0.00274,"107":0.00821,"108":0.01643,"109":0.0219,"111":0.00548,"116":0.00274,"117":0.00274,"122":0.00548,"123":0.00548,"124":0.00821,"125":0.02464,"126":1.75232,"127":0.14511,_:"12 13 14 15 16 17 18 79 80 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 104 106 110 112 113 114 115 118 119 120 121"},E:{_:"0 4 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 15.1 15.2-15.3 17.6","12.1":0.00274,"13.1":0.00548,"14.1":0.01917,"15.4":0.00274,"15.5":0.00274,"15.6":0.02464,"16.0":0.00274,"16.1":0.02464,"16.2":0.00274,"16.3":0.00548,"16.4":0.00548,"16.5":0.00274,"16.6":0.115,"17.0":0.00274,"17.1":0.00548,"17.2":0.00548,"17.3":0.01917,"17.4":0.01917,"17.5":0.25737,"18.0":0.00274},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00332,"5.0-5.1":0.00166,"6.0-6.1":0.00996,"7.0-7.1":0.00996,"8.1-8.4":0,"9.0-9.2":0.0083,"9.3":0.03321,"10.0-10.2":0.00664,"10.3":0.05812,"11.0-11.2":0.15277,"11.3-11.4":0.01661,"12.0-12.1":0.01162,"12.2-12.5":0.21422,"13.0-13.1":0.00332,"13.2":0.03487,"13.3":0.01162,"13.4-13.7":0.04982,"14.0-14.4":0.11458,"14.5-14.8":0.12953,"15.0-15.1":0.06476,"15.2-15.3":0.06974,"15.4":0.07971,"15.5":0.09631,"15.6-15.8":0.88343,"16.0":0.17768,"16.1":0.37695,"16.2":0.18931,"16.3":0.31717,"16.4":0.07473,"16.5":0.13451,"16.6-16.7":1.10263,"17.0":0.09964,"17.1":0.16108,"17.2":0.1561,"17.3":0.23414,"17.4":0.58619,"17.5":10.73406,"17.6":0.08303,"18.0":0.1096},P:{"4":0.26375,"20":0.06086,"21":0.03043,"22":0.06086,"23":0.06086,"24":0.07101,"25":2.79976,"5.0-5.4":0.06086,"6.2-6.4":0.07101,"7.2-7.4":0.01014,_:"8.2 10.1 12.0 15.0 17.0","9.2":0.02029,"11.1-11.2":0.02029,"13.0":0.06086,"14.0":0.02029,"16.0":0.01014,"18.0":0.01014,"19.0":0.02029},I:{"0":0.02894,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":0.167,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.02647,"9":0.00882,"11":0.04411,_:"6 7 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":53.01569},R:{_:"0"},M:{"0":0.24687},Q:{_:"14.9"},O:{"0":0.00726},H:{"0":0}}; 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..0e9e4f2 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ML.js @@ -0,0 +1 @@ +module.exports={C:{"43":0.00136,"69":0.00136,"70":0.00136,"72":0.00136,"78":0.01223,"82":0.00136,"92":0.00136,"95":0.00136,"99":0.00544,"108":0.00136,"111":0.00136,"112":0.00136,"115":0.09921,"120":0.00136,"122":0.00136,"123":0.00136,"124":0.00544,"125":0.00544,"126":0.00544,"127":0.22152,"128":0.32752,"129":0.00136,_:"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 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 71 73 74 75 76 77 79 80 81 83 84 85 86 87 88 89 90 91 93 94 96 97 98 100 101 102 103 104 105 106 107 109 110 113 114 116 117 118 119 121 130 131 3.5 3.6"},D:{"11":0.00136,"42":0.00136,"43":0.00136,"47":0.00136,"49":0.00272,"55":0.00272,"58":0.00272,"62":0.00136,"65":0.00272,"68":0.00136,"69":0.00408,"70":0.01087,"72":0.00408,"73":0.00408,"75":0.00136,"77":0.00136,"79":0.01223,"81":0.00544,"83":0.00272,"84":0.00272,"87":0.00544,"88":0.00272,"91":0.00136,"92":0.00136,"93":0.00272,"94":0.00272,"95":0.00136,"96":0.00136,"98":0.00272,"99":0.00408,"100":0.00136,"102":0.00136,"103":0.0068,"104":0.00136,"105":0.00136,"106":0.00272,"107":0.0231,"108":0.00136,"109":0.30713,"110":0.00136,"111":0.00951,"113":0.00544,"114":0.02039,"115":0.00136,"116":0.00544,"117":0.00544,"118":0.00272,"119":0.00815,"120":0.0068,"121":0.02582,"122":0.01903,"123":0.0231,"124":0.05572,"125":0.15764,"126":4.46567,"127":0.6564,_:"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 44 45 46 48 50 51 52 53 54 56 57 59 60 61 63 64 66 67 71 74 76 78 80 85 86 89 90 97 101 112 128 129 130"},F:{"34":0.00136,"79":0.00136,"86":0.00136,"95":0.00408,"108":0.00136,"109":0.00544,"110":0.00272,"111":0.14949,_:"9 11 12 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 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 85 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00951,"13":0.01903,"14":0.00136,"15":0.00272,"16":0.00272,"17":0.00272,"18":0.00544,"89":0.00272,"90":0.00272,"92":0.01359,"93":0.00136,"94":0.00136,"100":0.00272,"109":0.0299,"119":0.00136,"120":0.00951,"121":0.0068,"122":0.00544,"123":0.01087,"124":0.00815,"125":0.02718,"126":1.47452,"127":0.24054,_:"79 80 81 83 84 85 86 87 88 91 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118"},E:{"14":0.00272,_:"0 4 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 12.1 15.1 15.2-15.3 15.5 16.0 16.1 16.2 16.3 16.5 18.0","13.1":0.08018,"14.1":0.00272,"15.4":0.00408,"15.6":0.00815,"16.4":0.00272,"16.6":0.01223,"17.0":0.00136,"17.1":0.00272,"17.2":0.05708,"17.3":0.00136,"17.4":0.00408,"17.5":0.04757,"17.6":0.00136},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0022,"5.0-5.1":0.0011,"6.0-6.1":0.00659,"7.0-7.1":0.00659,"8.1-8.4":0,"9.0-9.2":0.0055,"9.3":0.02198,"10.0-10.2":0.0044,"10.3":0.03847,"11.0-11.2":0.10112,"11.3-11.4":0.01099,"12.0-12.1":0.00769,"12.2-12.5":0.14179,"13.0-13.1":0.0022,"13.2":0.02308,"13.3":0.00769,"13.4-13.7":0.03297,"14.0-14.4":0.07584,"14.5-14.8":0.08573,"15.0-15.1":0.04287,"15.2-15.3":0.04616,"15.4":0.05276,"15.5":0.06375,"15.6-15.8":0.58474,"16.0":0.11761,"16.1":0.2495,"16.2":0.1253,"16.3":0.20993,"16.4":0.04946,"16.5":0.08903,"16.6-16.7":0.72983,"17.0":0.06595,"17.1":0.10662,"17.2":0.10332,"17.3":0.15498,"17.4":0.38799,"17.5":7.10481,"17.6":0.05496,"18.0":0.07254},P:{"4":0.05099,"20":0.0102,"21":0.04079,"22":0.23455,"23":0.11218,"24":0.08158,"25":0.83623,"5.0-5.4":0.0102,_:"6.2-6.4 8.2 9.2 10.1 11.1-11.2 13.0 18.0","7.2-7.4":0.53029,"12.0":0.0102,"14.0":0.0204,"15.0":0.0102,"16.0":0.07139,"17.0":0.0102,"19.0":0.08158},I:{"0":0.00861,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":0.33156,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00136,_:"6 7 8 9 10 5.5"},S:{"2.5":0.1901,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":76.52451},R:{_:"0"},M:{"0":0.04321},Q:{_:"14.9"},O:{"0":0.23331},H:{"0":0.04}}; 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..a64ef30 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MM.js @@ -0,0 +1 @@ +module.exports={C:{"44":0.00203,"57":0.00203,"71":0.00203,"72":0.01014,"73":0.00203,"89":0.00203,"97":0.00203,"106":0.00203,"108":0.00203,"109":0.00203,"110":0.00203,"112":0.00203,"113":0.00203,"114":0.00203,"115":0.20067,"116":0.00203,"117":0.00405,"118":0.00203,"119":0.00203,"120":0.00608,"121":0.00811,"122":0.00203,"123":0.00405,"124":0.01014,"125":0.00608,"126":0.0223,"127":0.6304,"128":0.85539,"129":0.02027,_:"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 45 46 47 48 49 50 51 52 53 54 55 56 58 59 60 61 62 63 64 65 66 67 68 69 70 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 92 93 94 95 96 98 99 100 101 102 103 104 105 107 111 130 131 3.5 3.6"},D:{"11":0.00203,"32":0.00405,"37":0.00811,"43":0.00203,"44":0.00203,"47":0.00203,"49":0.00203,"50":0.00203,"51":0.00203,"55":0.00203,"56":0.00203,"57":0.00203,"58":0.00203,"59":0.00203,"61":0.00203,"62":0.00203,"65":0.00203,"67":0.00203,"68":0.00203,"69":0.00203,"70":0.01216,"71":0.00608,"74":0.00608,"75":0.00203,"78":0.00405,"79":0.02838,"80":0.00405,"81":0.00811,"83":0.00203,"84":0.00203,"85":0.00203,"86":0.00203,"87":0.01824,"88":0.00405,"89":0.01014,"90":0.00405,"91":0.00608,"92":0.00203,"93":0.00203,"94":0.00203,"95":0.00811,"96":0.00203,"97":0.01419,"98":0.00203,"99":0.02027,"100":0.00405,"101":0.00203,"102":0.00203,"103":0.00811,"104":0.00203,"105":0.00405,"106":0.01216,"107":0.01014,"108":0.00405,"109":0.55743,"110":0.00811,"111":0.02838,"112":0.00811,"113":0.00811,"114":0.02027,"115":0.00405,"116":0.04459,"117":0.00811,"118":0.02432,"119":0.01824,"120":0.03243,"121":0.0223,"122":0.0527,"123":0.04662,"124":0.08513,"125":0.13176,"126":8.34921,"127":1.11485,"128":0.00608,_:"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 33 34 35 36 38 39 40 41 42 45 46 48 52 53 54 60 63 64 66 72 73 76 77 129 130"},F:{"82":0.00203,"83":0.02027,"85":0.00203,"95":0.00405,"105":0.00203,"107":0.00203,"108":0.00203,"109":0.10135,"110":0.03243,"111":0.10743,_:"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 84 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 106 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00405,"17":0.00405,"18":0.03243,"84":0.00203,"86":0.00203,"89":0.00203,"90":0.00203,"92":0.02838,"100":0.00608,"104":0.00405,"107":0.00203,"109":0.01014,"112":0.00203,"114":0.00203,"117":0.00203,"119":0.00203,"120":0.00811,"121":0.00608,"122":0.00608,"123":0.00405,"124":0.02027,"125":0.02635,"126":1.64187,"127":0.22702,_:"12 13 14 15 79 80 81 83 85 87 88 91 93 94 95 96 97 98 99 101 102 103 105 106 108 110 111 113 115 116 118"},E:{"9":0.00203,"13":0.00203,"14":0.01419,"15":0.00203,_:"0 4 5 6 7 8 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00203,"13.1":0.00811,"14.1":0.01622,"15.1":0.00608,"15.2-15.3":0.00405,"15.4":0.00203,"15.5":0.01014,"15.6":0.04054,"16.0":0.00405,"16.1":0.01419,"16.2":0.00608,"16.3":0.03243,"16.4":0.00608,"16.5":0.00811,"16.6":0.07095,"17.0":0.00608,"17.1":0.01419,"17.2":0.01824,"17.3":0.01824,"17.4":0.03649,"17.5":0.47635,"17.6":0.00203,"18.0":0.00811},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00098,"5.0-5.1":0.00049,"6.0-6.1":0.00294,"7.0-7.1":0.00294,"8.1-8.4":0,"9.0-9.2":0.00245,"9.3":0.00979,"10.0-10.2":0.00196,"10.3":0.01713,"11.0-11.2":0.04504,"11.3-11.4":0.0049,"12.0-12.1":0.00343,"12.2-12.5":0.06315,"13.0-13.1":0.00098,"13.2":0.01028,"13.3":0.00343,"13.4-13.7":0.01469,"14.0-14.4":0.03378,"14.5-14.8":0.03818,"15.0-15.1":0.01909,"15.2-15.3":0.02056,"15.4":0.0235,"15.5":0.02839,"15.6-15.8":0.26044,"16.0":0.05238,"16.1":0.11113,"16.2":0.05581,"16.3":0.0935,"16.4":0.02203,"16.5":0.03965,"16.6-16.7":0.32506,"17.0":0.02937,"17.1":0.04749,"17.2":0.04602,"17.3":0.06903,"17.4":0.17281,"17.5":3.1644,"17.6":0.02448,"18.0":0.03231},P:{"4":0.04233,"20":0.01058,"21":0.03175,"22":0.03175,"23":0.04233,"24":0.03175,"25":0.79377,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0","7.2-7.4":0.01058,"13.0":0.04233,"17.0":0.01058,"18.0":0.01058,"19.0":0.01058},I:{"0":0.18274,"3":0,"4":0.00002,"2.1":0,"2.2":0.00004,"2.3":0,"4.1":0.00011,"4.2-4.3":0.00007,"4.4":0,"4.4.3-4.4.4":0.00031},K:{"0":0.30297,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00963,"9":0.00481,"11":0.02407,_:"6 7 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":76.00357},R:{_:"0"},M:{"0":0.11162},Q:{"14.9":0.05581},O:{"0":1.06041},H:{"0":0}}; 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..082c886 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MN.js @@ -0,0 +1 @@ +module.exports={C:{"2":0.00396,"3":0.00396,"4":0.00396,"17":0.00396,"31":0.00396,"35":0.00396,"38":0.00396,"39":0.00396,"40":0.00792,"41":0.00396,"42":0.00396,"52":0.00396,"89":0.00396,"99":0.00396,"105":0.00396,"115":0.09506,"121":0.00792,"125":0.00396,"126":0.03169,"127":0.55454,"128":0.81201,"129":0.13864,_:"5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 36 37 43 44 45 46 47 48 49 50 51 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 90 91 92 93 94 95 96 97 98 100 101 102 103 104 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 123 124 130 131","3.5":0.00396,"3.6":0.00396},D:{"21":0.00396,"28":0.00396,"35":0.00396,"36":0.00396,"37":0.00396,"38":0.00396,"39":0.00792,"40":0.00792,"41":0.01188,"42":0.00396,"43":0.00792,"44":0.01981,"45":0.01188,"46":0.01188,"47":0.00792,"49":0.00396,"50":0.00396,"51":0.01981,"52":0.00396,"55":0.00396,"56":0.00396,"58":0.00396,"59":0.00396,"63":0.00396,"68":0.00396,"70":0.03961,"73":0.00396,"74":0.01188,"78":0.00396,"79":0.01188,"81":0.01188,"83":0.00396,"86":0.00396,"87":0.01981,"88":0.00792,"89":0.00396,"90":0.00396,"91":0.00396,"94":0.00396,"95":0.00792,"96":0.01584,"97":0.00396,"98":0.01188,"99":0.05149,"100":0.00396,"102":0.00396,"103":0.03169,"104":0.01188,"105":0.01188,"106":0.00792,"107":0.01981,"108":0.00792,"109":2.43602,"110":0.00396,"111":0.01981,"112":0.00396,"113":0.00396,"114":0.01188,"115":0.01981,"116":0.10299,"117":0.04357,"118":0.27727,"119":0.05545,"120":0.06338,"121":0.03169,"122":0.11883,"123":0.10299,"124":0.16636,"125":0.43175,"126":17.14321,"127":2.09933,"128":0.01188,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 26 27 29 30 31 32 33 34 48 53 54 57 60 61 62 64 65 66 67 69 71 72 75 76 77 80 84 85 92 93 101 129 130"},F:{"31":0.00396,"79":0.00792,"83":0.01584,"95":0.01188,"102":0.00396,"109":0.69714,"110":0.01188,"111":0.73279,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.00396},B:{"12":0.00396,"18":0.01188,"89":0.00396,"90":0.00396,"92":0.01584,"98":0.00396,"100":0.00792,"108":0.00396,"109":0.03961,"114":0.00792,"119":0.00396,"120":0.01188,"121":0.00792,"122":0.01584,"123":0.02773,"124":0.02377,"125":0.10299,"126":5.11365,"127":0.71694,_:"13 14 15 16 17 79 80 81 83 84 85 86 87 88 91 93 94 95 96 97 99 101 102 103 104 105 106 107 110 111 112 113 115 116 117 118"},E:{"8":0.00396,"9":0.02773,"13":0.00792,"14":0.02377,"15":0.00396,_:"0 4 5 6 7 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.00396,"12.1":0.00396,"13.1":0.05149,"14.1":0.05545,"15.1":0.20201,"15.2-15.3":0.00396,"15.4":0.00792,"15.5":0.01584,"15.6":0.0713,"16.0":0.00792,"16.1":0.01584,"16.2":0.01584,"16.3":0.02377,"16.4":0.01188,"16.5":0.05149,"16.6":0.15052,"17.0":0.03169,"17.1":0.03565,"17.2":0.05942,"17.3":0.03961,"17.4":0.11487,"17.5":0.73279,"17.6":0.00396,"18.0":0.02773},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0033,"5.0-5.1":0.00165,"6.0-6.1":0.0099,"7.0-7.1":0.0099,"8.1-8.4":0,"9.0-9.2":0.00825,"9.3":0.03302,"10.0-10.2":0.0066,"10.3":0.05778,"11.0-11.2":0.15187,"11.3-11.4":0.01651,"12.0-12.1":0.01156,"12.2-12.5":0.21295,"13.0-13.1":0.0033,"13.2":0.03467,"13.3":0.01156,"13.4-13.7":0.04952,"14.0-14.4":0.1139,"14.5-14.8":0.12876,"15.0-15.1":0.06438,"15.2-15.3":0.06933,"15.4":0.07924,"15.5":0.09575,"15.6-15.8":0.87822,"16.0":0.17663,"16.1":0.37473,"16.2":0.18819,"16.3":0.3153,"16.4":0.07429,"16.5":0.13371,"16.6-16.7":1.09612,"17.0":0.09905,"17.1":0.16013,"17.2":0.15517,"17.3":0.23276,"17.4":0.58273,"17.5":10.6707,"17.6":0.08254,"18.0":0.10895},P:{"4":0.11184,"20":0.02034,"21":0.07117,"22":0.12201,"23":0.14235,"24":0.10168,"25":2.46056,"5.0-5.4":0.10168,"6.2-6.4":0.05084,"7.2-7.4":0.05084,_:"8.2 10.1 12.0 13.0 14.0 15.0","9.2":0.01017,"11.1-11.2":0.01017,"16.0":0.04067,"17.0":0.01017,"18.0":0.01017,"19.0":0.02034},I:{"0":0.17449,"3":0,"4":0.00002,"2.1":0,"2.2":0.00004,"2.3":0,"4.1":0.00011,"4.2-4.3":0.00007,"4.4":0,"4.4.3-4.4.4":0.0003},K:{"0":0.24756,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.00417,"7":0.00833,"8":0.08748,"9":0.01666,"10":0.01666,"11":0.10415,_:"5.5"},S:{"2.5":0.00604,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":42.5684},R:{_:"0"},M:{"0":0.15095},Q:{"14.9":0.02415},O:{"0":0.30794},H:{"0":0}}; 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..ef5bbfd --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MO.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00829,"81":0.00415,"100":0.00415,"109":0.00415,"115":0.10782,"116":0.00415,"122":0.02074,"123":0.00415,"124":0.00829,"125":0.00829,"126":0.00415,"127":0.31932,"128":0.47276,_:"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 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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 117 118 119 120 121 129 130 131 3.5 3.6"},D:{"22":0.00415,"26":0.00829,"34":0.0705,"38":0.14515,"49":0.0705,"53":0.02074,"55":0.00415,"56":0.00415,"57":0.01244,"58":0.00415,"61":0.12441,"68":0.00415,"69":0.00415,"72":0.00415,"73":0.00415,"74":0.08294,"75":0.00415,"76":0.02074,"77":0.00829,"78":0.02074,"79":0.52667,"80":0.02903,"81":0.04976,"83":0.04562,"86":0.02903,"87":0.30273,"89":0.02074,"90":0.00415,"91":0.01244,"93":0.00415,"94":0.23638,"96":0.01244,"97":0.04976,"98":0.04562,"99":0.09953,"100":0.01244,"101":0.02488,"102":0.01244,"103":0.0705,"104":0.06635,"105":0.03732,"106":0.01659,"107":0.03732,"108":0.04147,"109":1.47219,"110":0.00829,"111":0.00415,"112":0.01659,"113":0.01659,"114":0.07465,"115":0.01244,"116":0.22394,"117":0.00829,"118":0.02903,"119":0.12026,"120":0.13685,"121":0.2737,"122":0.18662,"123":0.15344,"124":0.282,"125":0.59302,"126":16.00742,"127":1.65465,"128":0.07465,"129":0.01244,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 59 60 62 63 64 65 66 67 70 71 84 85 88 92 95 130"},F:{"36":0.02488,"46":0.10782,"83":0.01244,"95":0.00829,"109":0.02903,"110":0.00415,"111":0.06221,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.01659,"18":0.01244,"92":0.00415,"109":0.05391,"113":0.02903,"115":0.00829,"118":0.00415,"119":0.00415,"120":0.01244,"121":0.00415,"122":0.02074,"123":0.04976,"124":0.02074,"125":0.06221,"126":3.68668,"127":0.43544,_:"12 13 14 15 16 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 108 110 111 112 114 116 117"},E:{"12":0.00415,"13":0.02488,"14":0.22394,"15":0.04147,_:"0 4 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00415,"12.1":0.03318,"13.1":0.18662,"14.1":0.46446,"15.1":0.07465,"15.2-15.3":0.07465,"15.4":0.08709,"15.5":0.25711,"15.6":0.72573,"16.0":0.07465,"16.1":0.08709,"16.2":0.07465,"16.3":0.26126,"16.4":0.05806,"16.5":0.12026,"16.6":0.81696,"17.0":0.02074,"17.1":0.12441,"17.2":0.04976,"17.3":0.11612,"17.4":0.25711,"17.5":4.79808,"17.6":0.02074,"18.0":0.03732},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00469,"5.0-5.1":0.00234,"6.0-6.1":0.01406,"7.0-7.1":0.01406,"8.1-8.4":0,"9.0-9.2":0.01172,"9.3":0.04687,"10.0-10.2":0.00937,"10.3":0.08202,"11.0-11.2":0.21561,"11.3-11.4":0.02344,"12.0-12.1":0.0164,"12.2-12.5":0.30232,"13.0-13.1":0.00469,"13.2":0.04921,"13.3":0.0164,"13.4-13.7":0.07031,"14.0-14.4":0.1617,"14.5-14.8":0.1828,"15.0-15.1":0.0914,"15.2-15.3":0.09843,"15.4":0.11249,"15.5":0.13593,"15.6-15.8":1.24676,"16.0":0.25076,"16.1":0.53198,"16.2":0.26716,"16.3":0.44762,"16.4":0.10546,"16.5":0.18983,"16.6-16.7":1.55611,"17.0":0.14061,"17.1":0.22732,"17.2":0.22029,"17.3":0.33044,"17.4":0.82727,"17.5":15.14865,"17.6":0.11718,"18.0":0.15467},P:{"4":0.82271,"21":0.06856,"22":0.01143,"23":0.03428,"24":0.04571,"25":2.76523,_:"20 7.2-7.4 8.2 10.1 12.0 14.0 15.0","5.0-5.4":0.11427,"6.2-6.4":0.04571,"9.2":0.01143,"11.1-11.2":0.01143,"13.0":0.02285,"16.0":0.01143,"17.0":0.03428,"18.0":0.01143,"19.0":0.03428},I:{"0":0.17498,"3":0,"4":0.00002,"2.1":0,"2.2":0.00004,"2.3":0,"4.1":0.00011,"4.2-4.3":0.00007,"4.4":0,"4.4.3-4.4.4":0.0003},K:{"0":0.06438,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.2737,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":30.80081},R:{_:"0"},M:{"0":0.42142},Q:{"14.9":0.15803},O:{"0":0.9833},H:{"0":0}}; 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..799f18e --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MP.js @@ -0,0 +1 @@ +module.exports={C:{"99":0.00474,"100":0.00474,"103":0.00474,"107":0.00474,"110":0.00474,"115":0.0474,"127":1.03332,"128":0.9006,_:"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 101 102 104 105 106 108 109 111 112 113 114 116 117 118 119 120 121 122 123 124 125 126 129 130 131 3.5 3.6"},D:{"63":0.00948,"79":0.00474,"81":0.05688,"85":0.01422,"87":0.00948,"91":0.00474,"93":0.16116,"100":0.01896,"103":0.69678,"105":0.00474,"106":0.00474,"107":0.01422,"108":0.00474,"109":0.79632,"110":0.0237,"112":0.01422,"113":0.00474,"115":0.01422,"116":0.04266,"118":0.0474,"119":0.01422,"120":0.01422,"121":0.0474,"122":0.04266,"123":0.03318,"124":0.30336,"125":0.89586,"126":18.10206,"127":9.20034,"128":0.0237,_:"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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 83 84 86 88 89 90 92 94 95 96 97 98 99 101 102 104 111 114 117 129 130"},F:{"83":0.0237,"84":0.00474,"107":0.00474,"109":0.711,"110":0.00948,"111":0.29862,_:"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 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00474,"100":0.00474,"109":0.00474,"121":0.01422,"122":0.00474,"124":0.0474,"125":0.22752,"126":5.96292,"127":0.72522,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 123"},E:{_:"0 4 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 15.1 15.2-15.3 15.4 16.4 18.0","13.1":0.0237,"14.1":0.08532,"15.5":0.00474,"15.6":0.04266,"16.0":0.00474,"16.1":0.03792,"16.2":0.03318,"16.3":0.02844,"16.5":0.02844,"16.6":0.13272,"17.0":0.00474,"17.1":0.00948,"17.2":0.00474,"17.3":0.01896,"17.4":0.03318,"17.5":1.3272,"17.6":0.00474},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0026,"5.0-5.1":0.0013,"6.0-6.1":0.00781,"7.0-7.1":0.00781,"8.1-8.4":0,"9.0-9.2":0.00651,"9.3":0.02603,"10.0-10.2":0.00521,"10.3":0.04555,"11.0-11.2":0.11972,"11.3-11.4":0.01301,"12.0-12.1":0.00911,"12.2-12.5":0.16787,"13.0-13.1":0.0026,"13.2":0.02733,"13.3":0.00911,"13.4-13.7":0.03904,"14.0-14.4":0.08979,"14.5-14.8":0.1015,"15.0-15.1":0.05075,"15.2-15.3":0.05466,"15.4":0.06246,"15.5":0.07548,"15.6-15.8":0.6923,"16.0":0.13924,"16.1":0.2954,"16.2":0.14835,"16.3":0.24855,"16.4":0.05856,"16.5":0.10541,"16.6-16.7":0.86408,"17.0":0.07808,"17.1":0.12623,"17.2":0.12232,"17.3":0.18349,"17.4":0.45937,"17.5":8.41176,"17.6":0.06507,"18.0":0.08589},P:{"21":0.05271,"23":0.03162,"24":0.03162,"25":4.13215,_:"4 20 22 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.02108,"19.0":0.11595},I:{"0":0.00524,"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.00001},K:{"0":0.15254,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00474,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":38.39532},R:{_:"0"},M:{"0":0.0526},Q:{_:"14.9"},O:{"0":0.09468},H:{"0":0}}; 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..1879f49 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MQ.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00446,"62":0.00446,"78":0.00446,"102":0.00446,"115":0.2183,"123":0.00446,"124":0.00446,"125":0.03119,"126":0.02673,"127":0.81081,"128":1.29641,_:"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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 129 130 131 3.5 3.6"},D:{"40":0.01337,"49":0.00446,"62":0.00446,"65":0.00446,"78":0.00446,"79":0.00446,"80":0.00446,"81":0.06237,"87":0.01782,"88":0.01337,"89":0.02673,"91":0.00446,"94":0.00446,"99":0.00446,"101":0.00446,"102":0.00446,"103":0.02228,"105":0.00446,"109":0.81081,"110":0.00891,"111":0.00446,"112":0.01782,"113":0.00446,"114":0.10247,"115":0.00891,"116":0.14702,"117":0.01337,"118":0.00891,"119":0.00446,"120":0.01337,"121":0.02673,"122":0.05792,"123":0.02228,"124":0.10692,"125":0.72617,"126":21.17016,"127":3.11405,"128":0.00446,_:"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 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 63 64 66 67 68 69 70 71 72 73 74 75 76 77 83 84 85 86 90 92 93 95 96 97 98 100 104 106 107 108 129 130"},F:{"36":0.00446,"46":0.01782,"83":0.38313,"95":0.06683,"107":0.00446,"108":0.00891,"109":0.63261,"110":0.02673,"111":0.4455,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00446,"92":0.00891,"108":0.00446,"109":0.02673,"110":0.00891,"114":0.01782,"115":0.00446,"116":0.00446,"118":0.00446,"119":0.04455,"120":0.01782,"121":0.05346,"122":0.00891,"123":0.00891,"124":0.02228,"125":0.12474,"126":5.94743,"127":1.40333,_:"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 111 112 113 117"},E:{"14":0.02228,"15":0.00446,_:"0 4 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 17.6","12.1":0.00446,"13.1":0.03119,"14.1":0.12474,"15.1":0.08019,"15.2-15.3":0.01782,"15.4":0.04455,"15.5":0.03564,"15.6":0.44105,"16.0":0.01337,"16.1":0.01782,"16.2":0.02673,"16.3":0.05792,"16.4":0.01337,"16.5":0.04455,"16.6":0.53906,"17.0":0.01337,"17.1":0.03119,"17.2":0.0401,"17.3":0.04901,"17.4":0.28958,"17.5":2.28096,"18.0":0.01782},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0031,"5.0-5.1":0.00155,"6.0-6.1":0.00931,"7.0-7.1":0.00931,"8.1-8.4":0,"9.0-9.2":0.00776,"9.3":0.03104,"10.0-10.2":0.00621,"10.3":0.05432,"11.0-11.2":0.14279,"11.3-11.4":0.01552,"12.0-12.1":0.01086,"12.2-12.5":0.20021,"13.0-13.1":0.0031,"13.2":0.03259,"13.3":0.01086,"13.4-13.7":0.04656,"14.0-14.4":0.10709,"14.5-14.8":0.12106,"15.0-15.1":0.06053,"15.2-15.3":0.06519,"15.4":0.0745,"15.5":0.09002,"15.6-15.8":0.82569,"16.0":0.16607,"16.1":0.35231,"16.2":0.17693,"16.3":0.29644,"16.4":0.06984,"16.5":0.12572,"16.6-16.7":1.03056,"17.0":0.09312,"17.1":0.15055,"17.2":0.14589,"17.3":0.21884,"17.4":0.54787,"17.5":10.03242,"17.6":0.0776,"18.0":0.10244},P:{"4":0.02226,"20":0.01113,"21":0.04451,"22":0.14466,"23":0.51187,"24":0.22255,"25":2.98218,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0","7.2-7.4":0.04451,"13.0":0.01113,"18.0":0.2003,"19.0":0.03338},I:{"0":0.01105,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.33825,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00446,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":35.49366},R:{_:"0"},M:{"0":0.46024},Q:{_:"14.9"},O:{"0":0.01109},H:{"0":0}}; 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..1c74dc3 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MR.js @@ -0,0 +1 @@ +module.exports={C:{"3":0.00401,"43":0.00201,"65":0.00201,"72":0.00201,"78":0.01004,"79":0.00201,"102":0.01004,"115":0.42147,"123":0.00201,"124":0.00602,"125":0.00201,"126":0.00803,"127":0.33116,"128":0.45559,_:"2 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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 73 74 75 76 77 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 129 130 131 3.5 3.6"},D:{"11":0.00602,"27":0.00201,"29":0.00803,"33":0.00602,"38":0.00602,"39":0.00201,"44":0.00401,"48":0.00201,"58":2.92019,"59":0.00201,"63":0.00201,"65":0.01004,"68":0.00201,"70":0.00201,"72":0.00602,"73":0.00602,"75":0.00602,"76":0.00201,"77":0.02007,"79":0.00803,"80":0.00201,"81":0.02007,"83":0.02408,"84":0.00201,"86":0.01405,"87":0.02007,"88":0.00401,"90":0.00401,"91":0.00201,"93":0.01004,"94":0.00401,"95":0.00803,"98":0.03813,"99":0.00401,"102":0.00201,"103":0.14852,"104":0.00201,"105":0.00401,"106":0.01204,"108":0.00401,"109":1.03762,"110":0.00201,"111":0.00803,"112":0.00201,"114":0.00401,"115":0.02208,"116":0.03211,"117":0.00401,"118":0.02208,"119":0.02007,"120":0.03813,"121":0.02609,"122":0.03011,"123":0.01806,"124":0.0582,"125":0.14651,"126":7.08471,"127":1.04364,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 30 31 32 34 35 36 37 40 41 42 43 45 46 47 49 50 51 52 53 54 55 56 57 60 61 62 64 66 67 69 71 74 78 85 89 92 96 97 100 101 107 113 128 129 130"},F:{"46":0.00602,"79":0.01004,"83":0.00201,"84":0.00201,"85":0.04215,"95":0.08831,"108":0.00201,"109":0.02208,"110":0.01405,"111":0.26492,_:"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 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 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00602,"18":0.02007,"84":0.00602,"89":0.00201,"90":0.00201,"92":0.02208,"100":0.00602,"104":0.00803,"106":0.00201,"107":0.00201,"109":0.01004,"110":0.00401,"116":0.00201,"118":0.01606,"120":0.00201,"123":0.00401,"124":0.00803,"125":0.06222,"126":2.11136,"127":0.26091,_:"12 13 14 16 17 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 105 108 111 112 113 114 115 117 119 121 122"},E:{"4":0.00401,_:"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 12.1 15.2-15.3 15.5 16.2 17.1","11.1":0.00201,"13.1":0.00803,"14.1":0.00201,"15.1":0.00201,"15.4":0.00602,"15.6":0.02609,"16.0":0.00201,"16.1":0.00201,"16.3":0.00803,"16.4":0.00201,"16.5":0.00401,"16.6":0.0281,"17.0":0.00201,"17.2":0.00602,"17.3":0.00803,"17.4":0.01606,"17.5":0.22278,"17.6":0.03211,"18.0":0.00201},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00308,"5.0-5.1":0.00154,"6.0-6.1":0.00925,"7.0-7.1":0.00925,"8.1-8.4":0,"9.0-9.2":0.00771,"9.3":0.03082,"10.0-10.2":0.00616,"10.3":0.05394,"11.0-11.2":0.14178,"11.3-11.4":0.01541,"12.0-12.1":0.01079,"12.2-12.5":0.1988,"13.0-13.1":0.00308,"13.2":0.03236,"13.3":0.01079,"13.4-13.7":0.04623,"14.0-14.4":0.10633,"14.5-14.8":0.1202,"15.0-15.1":0.0601,"15.2-15.3":0.06472,"15.4":0.07397,"15.5":0.08938,"15.6-15.8":0.81984,"16.0":0.16489,"16.1":0.34982,"16.2":0.17568,"16.3":0.29434,"16.4":0.06935,"16.5":0.12483,"16.6-16.7":1.02326,"17.0":0.09246,"17.1":0.14948,"17.2":0.14486,"17.3":0.21729,"17.4":0.54399,"17.5":9.96135,"17.6":0.07705,"18.0":0.10171},P:{"4":0.17274,"20":0.10161,"21":0.32516,"22":0.32516,"23":0.32516,"24":0.41661,"25":1.95095,"5.0-5.4":0.01016,"6.2-6.4":0.03048,"7.2-7.4":1.79853,_:"8.2 9.2 10.1 12.0","11.1-11.2":0.03048,"13.0":0.04064,"14.0":0.03048,"15.0":0.02032,"16.0":0.04064,"17.0":0.04064,"18.0":0.03048,"19.0":0.40645},I:{"0":0.03983,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00007},K:{"0":1.07106,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.09118,"9":0.0192,"10":0.03839,"11":0.28073,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":57.87741},R:{_:"0"},M:{"0":0.03197},Q:{_:"14.9"},O:{"0":0.27976},H:{"0":0}}; 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..e202782 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MS.js @@ -0,0 +1 @@ +module.exports={C:{"99":0.01693,"103":0.01693,"114":0.01693,"115":0.25958,"118":0.01693,"128":0.01693,_:"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 100 101 102 104 105 106 107 108 109 110 111 112 113 116 117 119 120 121 122 123 124 125 126 127 129 130 131 3.5 3.6"},D:{"49":0.01693,"91":0.01693,"94":0.16929,"102":0.01693,"103":0.37244,"106":0.01693,"109":0.31601,"112":0.01693,"114":0.01693,"116":0.01693,"119":0.0395,"121":0.01693,"122":0.46273,"123":0.01693,"125":0.16929,"126":39.45586,"127":2.52806,_:"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 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 92 93 95 96 97 98 99 100 101 104 105 107 108 110 111 113 115 117 118 120 124 128 129 130"},F:{"110":0.0395,"111":0.09029,_:"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 99 100 101 102 103 104 105 106 107 108 109 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"124":0.0395,"125":0.11286,"126":3.70181,"127":0.38937,_:"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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123"},E:{_:"0 4 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 15.1 15.2-15.3 15.4 15.5 16.2 16.4 16.5 17.0 17.1 17.3 17.6 18.0","13.1":0.09029,"14.1":0.01693,"15.6":0.0395,"16.0":0.37244,"16.1":0.0395,"16.3":0.0395,"16.6":0.16929,"17.2":0.55866,"17.4":0.20315,"17.5":1.13424},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00215,"5.0-5.1":0.00108,"6.0-6.1":0.00646,"7.0-7.1":0.00646,"8.1-8.4":0,"9.0-9.2":0.00538,"9.3":0.02154,"10.0-10.2":0.00431,"10.3":0.03769,"11.0-11.2":0.09907,"11.3-11.4":0.01077,"12.0-12.1":0.00754,"12.2-12.5":0.13891,"13.0-13.1":0.00215,"13.2":0.02261,"13.3":0.00754,"13.4-13.7":0.0323,"14.0-14.4":0.0743,"14.5-14.8":0.08399,"15.0-15.1":0.042,"15.2-15.3":0.04523,"15.4":0.05169,"15.5":0.06245,"15.6-15.8":0.57286,"16.0":0.11522,"16.1":0.24443,"16.2":0.12276,"16.3":0.20567,"16.4":0.04846,"16.5":0.08722,"16.6-16.7":0.715,"17.0":0.06461,"17.1":0.10445,"17.2":0.10122,"17.3":0.15183,"17.4":0.38011,"17.5":6.96046,"17.6":0.05384,"18.0":0.07107},P:{"4":0.044,"23":0.044,"24":0.077,"25":1.21003,_:"20 21 22 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.066,"19.0":0.077},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":0.0392,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":34.86325},R:{_:"0"},M:{_:"0"},Q:{_:"14.9"},O:{"0":0.02178},H:{"0":0}}; 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..bffcfee --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MT.js @@ -0,0 +1 @@ +module.exports={C:{"68":0.11912,"78":0.01324,"88":0.00441,"103":0.00441,"108":0.02206,"112":0.00441,"113":0.00441,"115":0.1103,"120":0.00882,"122":0.00441,"125":0.01324,"126":0.01765,"127":0.55591,"128":0.80298,_:"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 69 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 99 100 101 102 104 105 106 107 109 110 111 114 116 117 118 119 121 123 124 129 130 131 3.5 3.6"},D:{"11":0.00441,"26":0.00441,"49":0.02647,"58":0.00441,"76":0.00882,"79":0.02647,"80":0.00441,"81":0.01324,"86":0.00882,"87":0.00882,"88":0.00441,"91":0.075,"93":0.45002,"94":0.00882,"98":0.01324,"99":0.00441,"102":0.04853,"103":0.04412,"105":0.00441,"106":0.00441,"107":0.01765,"108":0.00441,"109":0.93976,"111":0.00882,"112":0.00441,"113":0.00882,"114":0.07059,"115":0.01324,"116":0.28678,"117":0.01765,"118":0.00882,"119":0.30443,"120":0.02647,"121":0.03971,"122":0.45885,"123":2.0957,"124":0.21619,"125":0.87799,"126":21.77763,"127":2.55014,"128":0.01765,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 83 84 85 89 90 92 95 96 97 100 101 104 110 129 130"},F:{"28":0.00441,"83":0.00441,"94":0.01324,"95":0.00441,"109":0.41914,"110":0.00882,"111":0.45444,_:"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 79 80 81 82 84 85 86 87 88 89 90 91 92 93 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00441,"107":0.00441,"108":0.01324,"109":0.03088,"112":0.09265,"113":0.00441,"115":0.00441,"117":0.00882,"119":0.02206,"120":0.00441,"121":0.00882,"122":0.00882,"123":0.03088,"124":0.01324,"125":0.2956,"126":4.50024,"127":0.63533,_:"12 13 14 15 16 17 18 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 110 111 114 116 118"},E:{"13":0.00882,"14":0.01765,"15":0.00441,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.01324,"14.1":0.06618,"15.1":0.00441,"15.2-15.3":0.02647,"15.4":0.00441,"15.5":0.00882,"15.6":0.15883,"16.0":0.0353,"16.1":0.03088,"16.2":0.07059,"16.3":0.06618,"16.4":0.02206,"16.5":0.09265,"16.6":0.23384,"17.0":0.01765,"17.1":0.02206,"17.2":0.07942,"17.3":0.05736,"17.4":0.11912,"17.5":2.81927,"17.6":0.00882,"18.0":0.01765},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00337,"5.0-5.1":0.00169,"6.0-6.1":0.01012,"7.0-7.1":0.01012,"8.1-8.4":0,"9.0-9.2":0.00843,"9.3":0.03373,"10.0-10.2":0.00675,"10.3":0.05903,"11.0-11.2":0.15515,"11.3-11.4":0.01686,"12.0-12.1":0.01181,"12.2-12.5":0.21755,"13.0-13.1":0.00337,"13.2":0.03542,"13.3":0.01181,"13.4-13.7":0.05059,"14.0-14.4":0.11637,"14.5-14.8":0.13154,"15.0-15.1":0.06577,"15.2-15.3":0.07083,"15.4":0.08095,"15.5":0.09781,"15.6-15.8":0.8972,"16.0":0.18045,"16.1":0.38283,"16.2":0.19226,"16.3":0.32211,"16.4":0.07589,"16.5":0.1366,"16.6-16.7":1.11981,"17.0":0.10119,"17.1":0.16359,"17.2":0.15853,"17.3":0.23779,"17.4":0.59532,"17.5":10.90127,"17.6":0.08432,"18.0":0.11131},P:{"4":0.03148,"20":0.01049,"21":0.03148,"22":0.03148,"23":0.03148,"24":0.07346,"25":2.41365,_:"5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0","6.2-6.4":0.05247,"7.2-7.4":0.01049,"16.0":0.01049,"19.0":0.02099},I:{"0":0.1949,"3":0,"4":0.00002,"2.1":0,"2.2":0.00004,"2.3":0,"4.1":0.00012,"4.2-4.3":0.00008,"4.4":0,"4.4.3-4.4.4":0.00033},K:{"0":0.3744,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01324,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":34.54687},R:{_:"0"},M:{"0":0.28499},Q:{_:"14.9"},O:{"0":0.31852},H:{"0":0}}; 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..c418ce5 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MU.js @@ -0,0 +1 @@ +module.exports={C:{"20":0.00353,"52":0.00353,"56":0.00353,"78":0.00353,"80":0.00353,"95":0.00353,"112":0.00353,"114":0.02826,"115":0.24724,"120":0.00353,"121":0.0106,"122":0.00353,"123":0.00706,"124":0.00353,"125":0.03532,"126":0.0106,"127":0.58278,"128":1.01015,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 116 117 118 119 129 130 131 3.5 3.6"},D:{"38":0.00353,"49":0.01413,"56":0.00353,"58":3.51787,"59":0.00353,"67":0.00353,"68":0.00353,"69":0.00706,"73":0.00353,"74":0.00353,"78":0.09183,"79":0.03532,"80":0.00353,"81":0.0106,"83":0.01766,"86":0.00706,"87":0.04238,"88":0.02119,"89":0.00353,"91":0.03179,"92":0.00353,"94":0.02119,"95":0.00706,"98":0.00353,"99":0.02472,"100":0.0106,"101":0.00353,"103":0.01766,"104":0.00353,"106":0.0106,"107":0.0106,"108":0.00706,"109":1.38101,"110":0.01413,"111":0.00353,"112":0.00353,"113":0.01413,"114":0.02826,"115":0.01413,"116":0.0777,"117":0.01413,"118":0.0106,"119":0.04238,"120":0.04945,"121":0.02826,"122":0.07417,"123":0.04592,"124":0.15894,"125":0.3638,"126":16.611,"127":1.91081,"128":0.00353,_:"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 47 48 50 51 52 53 54 55 57 60 61 62 63 64 65 66 70 71 72 75 76 77 84 85 90 93 96 97 102 105 129 130"},F:{"28":0.00353,"83":0.01413,"86":0.00353,"95":0.02119,"107":0.00353,"109":0.25077,"110":0.01413,"111":0.31435,_:"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 79 80 81 82 84 85 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00353,"18":0.00353,"92":0.0106,"100":0.00353,"109":0.04592,"110":0.0106,"114":0.00353,"116":0.00353,"120":0.00706,"121":0.00353,"122":0.00706,"123":0.00706,"124":0.00706,"125":0.04238,"126":3.44017,"127":0.37086,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 111 112 113 115 117 118 119"},E:{"14":0.0106,_:"0 4 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","12.1":0.0106,"13.1":0.02472,"14.1":0.0989,"15.1":0.01413,"15.2-15.3":0.00353,"15.4":0.0106,"15.5":0.03532,"15.6":0.13068,"16.0":0.02119,"16.1":0.02119,"16.2":0.0106,"16.3":0.04592,"16.4":0.00353,"16.5":0.03885,"16.6":0.12009,"17.0":0.0106,"17.1":0.03179,"17.2":0.03885,"17.3":0.03179,"17.4":0.06004,"17.5":0.79823,"17.6":0.00353,"18.0":0.00706},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00154,"5.0-5.1":0.00077,"6.0-6.1":0.00462,"7.0-7.1":0.00462,"8.1-8.4":0,"9.0-9.2":0.00385,"9.3":0.01539,"10.0-10.2":0.00308,"10.3":0.02694,"11.0-11.2":0.07081,"11.3-11.4":0.0077,"12.0-12.1":0.00539,"12.2-12.5":0.09929,"13.0-13.1":0.00154,"13.2":0.01616,"13.3":0.00539,"13.4-13.7":0.02309,"14.0-14.4":0.05311,"14.5-14.8":0.06004,"15.0-15.1":0.03002,"15.2-15.3":0.03233,"15.4":0.03695,"15.5":0.04464,"15.6-15.8":0.40948,"16.0":0.08236,"16.1":0.17472,"16.2":0.08774,"16.3":0.14701,"16.4":0.03464,"16.5":0.06235,"16.6-16.7":0.51108,"17.0":0.04618,"17.1":0.07466,"17.2":0.07235,"17.3":0.10853,"17.4":0.2717,"17.5":4.97529,"17.6":0.03848,"18.0":0.0508},P:{"4":0.11376,"20":0.02068,"21":0.06205,"22":0.24821,"23":0.11376,"24":0.17582,"25":3.89902,"5.0-5.4":0.01034,"6.2-6.4":0.02068,"7.2-7.4":0.11376,_:"8.2 9.2 10.1 12.0 15.0","11.1-11.2":0.02068,"13.0":0.01034,"14.0":0.12411,"16.0":0.08274,"17.0":0.02068,"18.0":0.04137,"19.0":0.10342},I:{"0":0.0709,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00012},K:{"0":1.01488,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.00353,"11":0.00706,_:"6 7 8 9 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":49.86593},R:{_:"0"},M:{"0":0.47216},Q:{"14.9":0.00647},O:{"0":1.31947},H:{"0":0.02}}; 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..27f59e6 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MV.js @@ -0,0 +1 @@ +module.exports={C:{"47":0.00252,"56":0.00504,"115":0.02015,"116":0.01763,"122":0.00252,"124":0.00252,"125":0.01008,"126":0.01008,"127":0.29724,"128":0.53151,"129":0.00252,_:"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 48 49 50 51 52 53 54 55 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 112 113 114 117 118 119 120 121 123 130 131 3.5 3.6"},D:{"56":0.00252,"58":0.00504,"70":0.00252,"73":0.00252,"74":0.00252,"83":0.0529,"87":0.08565,"88":0.00756,"90":0.00252,"92":0.00252,"93":0.00756,"94":0.00252,"95":0.00252,"96":0.00504,"97":0.00504,"99":0.00252,"100":0.00504,"103":0.01763,"105":0.00252,"108":0.00252,"109":0.39296,"110":0.00252,"111":0.00252,"112":0.0126,"113":0.00252,"114":0.00252,"115":0.00504,"116":0.02519,"117":0.01763,"118":0.00504,"119":0.03275,"120":0.07053,"121":0.02771,"122":0.16625,"123":0.07305,"124":0.06046,"125":0.37029,"126":14.66562,"127":1.72803,"128":0.00756,_:"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 57 59 60 61 62 63 64 65 66 67 68 69 71 72 75 76 77 78 79 80 81 84 85 86 89 91 98 101 102 104 106 107 129 130"},F:{"83":0.03527,"109":0.15618,"110":0.00252,"111":0.16122,_:"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 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 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.0126,"18":0.00252,"92":0.00756,"100":0.00252,"109":0.00504,"112":0.00252,"114":0.00252,"119":0.00504,"120":0.03779,"121":0.0529,"122":0.01763,"123":0.00504,"124":0.0126,"125":0.1461,"126":2.1739,"127":0.30228,_:"12 13 14 15 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 113 115 116 117 118"},E:{"14":0.01763,"15":0.00504,_:"0 4 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.01511,"13.1":0.0126,"14.1":0.01511,"15.1":0.00252,"15.2-15.3":0.01008,"15.4":0.00504,"15.5":0.00756,"15.6":0.03275,"16.0":0.02267,"16.1":0.04534,"16.2":0.00504,"16.3":0.03275,"16.4":0.00756,"16.5":0.02771,"16.6":0.06046,"17.0":0.01008,"17.1":0.0403,"17.2":0.06801,"17.3":0.03527,"17.4":0.05542,"17.5":0.79349,"17.6":0.00252,"18.0":0.01511},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0037,"5.0-5.1":0.00185,"6.0-6.1":0.01109,"7.0-7.1":0.01109,"8.1-8.4":0,"9.0-9.2":0.00924,"9.3":0.03697,"10.0-10.2":0.00739,"10.3":0.0647,"11.0-11.2":0.17007,"11.3-11.4":0.01849,"12.0-12.1":0.01294,"12.2-12.5":0.23846,"13.0-13.1":0.0037,"13.2":0.03882,"13.3":0.01294,"13.4-13.7":0.05546,"14.0-14.4":0.12755,"14.5-14.8":0.14419,"15.0-15.1":0.07209,"15.2-15.3":0.07764,"15.4":0.08873,"15.5":0.10722,"15.6-15.8":0.98343,"16.0":0.1978,"16.1":0.41962,"16.2":0.21074,"16.3":0.35307,"16.4":0.08318,"16.5":0.14973,"16.6-16.7":1.22744,"17.0":0.11091,"17.1":0.17931,"17.2":0.17376,"17.3":0.26065,"17.4":0.65254,"17.5":11.94906,"17.6":0.09243,"18.0":0.122},P:{"4":0.01017,"20":0.01017,"21":0.02034,"22":0.02034,"23":0.04068,"24":0.08137,"25":1.3222,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","7.2-7.4":0.05085,"19.0":0.01017},I:{"0":0.02982,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":1.14459,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":53.49748},R:{_:"0"},M:{"0":0.61344},Q:{_:"14.9"},O:{"0":0.65833},H:{"0":0}}; 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..830b211 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MW.js @@ -0,0 +1 @@ +module.exports={C:{"47":0.00968,"71":0.00387,"91":0.00194,"100":0.00194,"103":0.00194,"112":0.00194,"115":0.11804,"118":0.00194,"122":0.00581,"123":0.01161,"124":0.00387,"125":0.00774,"126":0.00774,"127":0.38507,"128":0.49149,"129":0.02903,_:"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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 101 102 104 105 106 107 108 109 110 111 113 114 116 117 119 120 121 130 131 3.5 3.6"},D:{"11":0.00581,"17":0.00194,"28":0.00968,"29":0.00194,"34":0.00581,"40":0.00194,"43":0.00387,"46":0.00387,"48":0.00194,"49":0.01548,"50":0.00968,"55":0.00194,"56":0.00194,"57":0.00581,"58":0.01355,"60":0.00387,"61":0.00194,"62":0.00194,"64":0.00194,"65":0.00194,"66":0.00194,"68":0.02322,"69":0.00194,"70":0.02322,"71":0.00194,"73":0.00581,"74":0.00581,"75":0.00194,"76":0.00194,"78":0.00968,"79":0.00581,"80":0.00194,"81":0.00774,"83":0.00194,"84":0.00194,"85":0.00194,"86":0.00387,"87":0.00194,"88":0.01355,"89":0.00387,"90":0.00194,"91":0.00968,"92":0.00387,"93":0.01161,"94":0.00194,"95":0.00581,"96":0.00968,"97":0.00194,"98":0.00387,"99":0.00774,"100":0.00194,"101":0.00194,"102":0.00774,"103":0.02903,"104":0.00194,"105":0.00387,"106":0.01161,"107":0.00387,"108":0.00387,"109":0.52052,"110":0.00581,"111":0.01742,"112":0.00194,"113":0.00774,"114":0.01742,"115":0.00387,"116":0.02709,"117":0.01935,"118":0.0329,"119":0.0329,"120":0.06386,"121":0.01742,"122":0.02903,"123":0.04838,"124":0.06773,"125":0.16448,"126":5.36576,"127":0.70047,"128":0.00194,_:"4 5 6 7 8 9 10 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 30 31 32 33 35 36 37 38 39 41 42 44 45 47 51 52 53 54 59 63 67 72 77 129 130"},F:{"34":0.00387,"36":0.00581,"37":0.00194,"42":0.00968,"60":0.00194,"68":0.00387,"74":0.00194,"79":0.00968,"83":0.04257,"86":0.00387,"95":0.05418,"101":0.00194,"103":0.00194,"107":0.00387,"108":0.00194,"109":0.02709,"110":0.00968,"111":0.61146,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 62 63 64 65 66 67 69 70 71 72 73 75 76 77 78 80 81 82 84 85 87 88 89 90 91 92 93 94 96 97 98 99 100 102 104 105 106 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.0329,"13":0.00968,"14":0.00774,"15":0.01355,"16":0.00581,"17":0.01161,"18":0.08321,"84":0.00968,"89":0.00774,"90":0.0329,"92":0.06773,"100":0.02322,"103":0.00194,"108":0.00387,"109":0.0329,"110":0.01355,"112":0.00774,"113":0.00194,"114":0.00968,"115":0.01548,"116":0.00194,"117":0.00387,"118":0.01742,"119":0.00774,"120":0.01548,"121":0.02129,"122":0.01935,"123":0.10836,"124":0.0716,"125":0.08708,"126":1.80342,"127":0.21285,_:"79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 104 105 106 107 111"},E:{"14":0.00194,"15":0.00194,_:"0 4 5 6 7 8 9 10 11 12 13 3.1 3.2 6.1 7.1 9.1 10.1 16.0 16.2 17.6","5.1":0.00194,"11.1":0.00194,"12.1":0.00194,"13.1":0.01355,"14.1":0.00387,"15.1":0.00194,"15.2-15.3":0.00194,"15.4":0.00194,"15.5":0.00387,"15.6":0.05805,"16.1":0.00194,"16.3":0.00194,"16.4":0.00194,"16.5":0.00387,"16.6":0.01548,"17.0":0.00194,"17.1":0.00581,"17.2":0.00194,"17.3":0.00194,"17.4":0.00581,"17.5":0.07934,"18.0":0.00387},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00032,"5.0-5.1":0.00016,"6.0-6.1":0.00097,"7.0-7.1":0.00097,"8.1-8.4":0,"9.0-9.2":0.00081,"9.3":0.00323,"10.0-10.2":0.00065,"10.3":0.00565,"11.0-11.2":0.01484,"11.3-11.4":0.00161,"12.0-12.1":0.00113,"12.2-12.5":0.02081,"13.0-13.1":0.00032,"13.2":0.00339,"13.3":0.00113,"13.4-13.7":0.00484,"14.0-14.4":0.01113,"14.5-14.8":0.01258,"15.0-15.1":0.00629,"15.2-15.3":0.00677,"15.4":0.00774,"15.5":0.00936,"15.6-15.8":0.08581,"16.0":0.01726,"16.1":0.03662,"16.2":0.01839,"16.3":0.03081,"16.4":0.00726,"16.5":0.01307,"16.6-16.7":0.1071,"17.0":0.00968,"17.1":0.01565,"17.2":0.01516,"17.3":0.02274,"17.4":0.05694,"17.5":1.04264,"17.6":0.00807,"18.0":0.01065},P:{"4":0.29263,"20":0.03027,"21":0.07064,"22":0.15136,"23":0.10091,"24":0.14127,"25":0.74672,"5.0-5.4":0.02018,"6.2-6.4":0.02018,"7.2-7.4":0.16145,_:"8.2 10.1 12.0","9.2":0.02018,"11.1-11.2":0.01009,"13.0":0.01009,"14.0":0.02018,"15.0":0.02018,"16.0":0.04036,"17.0":0.04036,"18.0":0.03027,"19.0":0.07064},I:{"0":0.20092,"3":0,"4":0.00002,"2.1":0,"2.2":0.00004,"2.3":0,"4.1":0.00012,"4.2-4.3":0.00008,"4.4":0,"4.4.3-4.4.4":0.00034},K:{"0":5.97206,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01823,"9":0.00228,"10":0.00684,"11":0.07521,_:"6 7 5.5"},S:{"2.5":0.12904,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":72.97531},R:{_:"0"},M:{"0":0.40325},Q:{"14.9":0.00807},O:{"0":1.58074},H:{"0":1.48}}; 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..b203ec9 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MX.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.01506,"48":0.00377,"51":0.00377,"52":0.0113,"59":0.0113,"66":0.00377,"78":0.01506,"82":0.00377,"88":0.00377,"102":0.00377,"103":0.00753,"105":0.00377,"107":0.00377,"109":0.00377,"110":0.00377,"111":0.00377,"112":0.00377,"113":0.0113,"114":0.00377,"115":0.27485,"118":0.00753,"120":0.01506,"121":0.00377,"122":0.00377,"123":0.00377,"124":0.00377,"125":0.0113,"126":0.02259,"127":0.56099,"128":0.84336,"129":0.00753,_:"2 3 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 53 54 55 56 57 58 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 79 80 81 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 104 106 108 116 117 119 130 131 3.5 3.6"},D:{"38":0.00377,"47":0.00377,"49":0.0113,"52":0.0113,"65":0.00377,"66":0.05648,"70":0.00753,"71":0.00753,"74":0.00377,"75":0.00753,"76":0.00753,"77":0.00377,"78":0.00377,"79":0.02636,"80":0.05271,"81":0.00377,"84":0.0113,"85":0.00377,"86":0.00377,"87":0.05271,"88":0.01883,"89":0.00377,"90":0.00753,"91":0.03765,"92":0.00377,"93":0.02259,"94":0.01506,"95":0.00753,"96":0.00377,"97":0.0113,"98":0.0113,"99":0.03012,"100":0.00753,"101":0.00377,"102":0.00753,"103":0.09413,"104":0.01506,"105":0.00753,"106":0.01883,"107":0.01883,"108":0.01506,"109":1.89003,"110":0.01506,"111":0.01506,"112":0.0113,"113":0.07154,"114":0.08283,"115":0.00753,"116":0.18825,"117":0.00753,"118":0.03012,"119":0.03765,"120":0.0753,"121":0.05271,"122":0.24849,"123":0.14307,"124":0.16943,"125":0.39156,"126":17.71056,"127":2.05946,"128":0.0113,_:"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 51 53 54 55 56 57 58 59 60 61 62 63 64 67 68 69 72 73 83 129 130"},F:{"46":0.00377,"83":0.02259,"89":0.00377,"95":0.04518,"102":0.00377,"109":0.7643,"110":0.01506,"111":0.5384,_:"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 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 84 85 86 87 88 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00753,"18":0.00753,"92":0.01506,"100":0.00753,"107":0.00377,"108":0.00377,"109":0.06024,"110":0.00377,"111":0.00377,"112":0.00377,"113":0.0113,"114":0.00753,"115":0.00377,"116":0.00377,"117":0.00753,"118":0.00377,"119":0.0113,"120":0.02636,"121":0.01506,"122":0.01883,"123":0.01883,"124":0.03765,"125":0.27108,"126":4.46906,"127":0.56852,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106"},E:{"8":0.00377,"13":0.00377,"14":0.0113,"15":0.00377,_:"0 4 5 6 7 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.0113,"11.1":0.00753,"12.1":0.00753,"13.1":0.04518,"14.1":0.05271,"15.1":0.00377,"15.2-15.3":0.00377,"15.4":0.0113,"15.5":0.0113,"15.6":0.12801,"16.0":0.0113,"16.1":0.01883,"16.2":0.01506,"16.3":0.04142,"16.4":0.01506,"16.5":0.03012,"16.6":0.14307,"17.0":0.02259,"17.1":0.03012,"17.2":0.04895,"17.3":0.03765,"17.4":0.0866,"17.5":0.91866,"17.6":0.00753,"18.0":0.0113},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00254,"5.0-5.1":0.00127,"6.0-6.1":0.00763,"7.0-7.1":0.00763,"8.1-8.4":0,"9.0-9.2":0.00636,"9.3":0.02543,"10.0-10.2":0.00509,"10.3":0.0445,"11.0-11.2":0.11696,"11.3-11.4":0.01271,"12.0-12.1":0.0089,"12.2-12.5":0.164,"13.0-13.1":0.00254,"13.2":0.0267,"13.3":0.0089,"13.4-13.7":0.03814,"14.0-14.4":0.08772,"14.5-14.8":0.09916,"15.0-15.1":0.04958,"15.2-15.3":0.0534,"15.4":0.06102,"15.5":0.07374,"15.6-15.8":0.67634,"16.0":0.13603,"16.1":0.28859,"16.2":0.14493,"16.3":0.24282,"16.4":0.05721,"16.5":0.10298,"16.6-16.7":0.84415,"17.0":0.07628,"17.1":0.12332,"17.2":0.1195,"17.3":0.17926,"17.4":0.44877,"17.5":8.21779,"17.6":0.06357,"18.0":0.08391},P:{"4":0.08251,"20":0.01031,"21":0.01031,"22":0.02063,"23":0.02063,"24":0.02063,"25":0.64978,_:"5.0-5.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0","6.2-6.4":0.01031,"7.2-7.4":0.04126,"17.0":0.02063,"19.0":0.01031},I:{"0":0.08698,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00015},K:{"0":0.2494,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00873,"10":0.00437,"11":0.09608,_:"6 7 9 5.5"},S:{"2.5":0.01247,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":50.31539},R:{_:"0"},M:{"0":0.26187},Q:{_:"14.9"},O:{"0":0.04988},H:{"0":0}}; 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..9186605 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MY.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00392,"39":0.01177,"52":0.00785,"72":0.00392,"78":0.00392,"83":0.00392,"113":0.00392,"114":0.00392,"115":0.22753,"118":0.00392,"120":0.00392,"121":0.00392,"122":0.00392,"123":0.00392,"124":0.00392,"125":0.00785,"126":0.01962,"127":0.43153,"128":0.65514,"129":0.01177,_:"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 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 67 68 69 70 71 73 74 75 76 77 79 80 81 82 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 112 116 117 119 130 131 3.5 3.6"},D:{"29":0.02746,"34":0.00785,"38":0.01962,"49":0.00785,"53":0.00392,"55":0.00785,"65":0.00392,"67":0.00392,"68":0.00392,"70":0.00392,"73":0.00392,"74":0.00392,"75":0.00785,"76":0.00392,"78":0.00392,"79":0.06277,"80":0.00392,"81":0.02354,"83":0.00392,"84":0.00392,"85":0.00392,"86":0.02354,"87":0.07061,"88":0.01177,"89":0.01177,"90":0.00392,"91":0.02354,"92":0.00785,"93":0.01569,"94":0.02354,"96":0.00392,"97":0.00785,"98":0.00785,"99":0.04708,"100":0.00392,"101":0.00785,"102":0.02354,"103":0.14907,"104":0.00785,"105":0.03531,"106":0.01177,"107":0.01177,"108":0.01962,"109":1.63589,"110":0.00785,"111":0.01962,"112":0.01569,"113":0.01177,"114":0.02746,"115":0.01569,"116":0.09023,"117":0.02354,"118":0.10592,"119":0.04708,"120":0.07454,"121":0.07454,"122":0.18046,"123":0.09415,"124":0.153,"125":0.40015,"126":21.87073,"127":2.45188,"128":0.01962,_:"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 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 56 57 58 59 60 61 62 63 64 66 69 71 72 77 95 129 130"},F:{"28":0.00785,"36":0.01177,"46":0.02354,"74":0.00392,"83":0.03138,"95":0.01569,"109":0.20792,"110":0.00392,"111":0.204,_:"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 75 76 77 78 79 80 81 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00392,"100":0.00392,"109":0.02354,"114":0.00392,"117":0.00392,"118":0.00392,"119":0.00392,"120":0.00785,"121":0.00392,"122":0.01177,"123":0.00785,"124":0.01569,"125":0.04315,"126":2.54603,"127":0.32169,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116"},E:{"13":0.00392,"14":0.03531,"15":0.00785,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00392,"12.1":0.00392,"13.1":0.01962,"14.1":0.12161,"15.1":0.01569,"15.2-15.3":0.01177,"15.4":0.02746,"15.5":0.051,"15.6":0.2393,"16.0":0.03138,"16.1":0.05885,"16.2":0.03923,"16.3":0.11769,"16.4":0.02354,"16.5":0.051,"16.6":0.28246,"17.0":0.03138,"17.1":0.04708,"17.2":0.05885,"17.3":0.05492,"17.4":0.17654,"17.5":2.18903,"17.6":0.00785,"18.0":0.01569},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00319,"5.0-5.1":0.00159,"6.0-6.1":0.00956,"7.0-7.1":0.00956,"8.1-8.4":0,"9.0-9.2":0.00797,"9.3":0.03187,"10.0-10.2":0.00637,"10.3":0.05577,"11.0-11.2":0.14659,"11.3-11.4":0.01593,"12.0-12.1":0.01115,"12.2-12.5":0.20555,"13.0-13.1":0.00319,"13.2":0.03346,"13.3":0.01115,"13.4-13.7":0.0478,"14.0-14.4":0.10994,"14.5-14.8":0.12428,"15.0-15.1":0.06214,"15.2-15.3":0.06692,"15.4":0.07648,"15.5":0.09242,"15.6-15.8":0.84768,"16.0":0.17049,"16.1":0.3617,"16.2":0.18165,"16.3":0.30434,"16.4":0.0717,"16.5":0.12906,"16.6-16.7":1.05801,"17.0":0.0956,"17.1":0.15456,"17.2":0.14978,"17.3":0.22467,"17.4":0.56247,"17.5":10.29967,"17.6":0.07967,"18.0":0.10516},P:{"4":0.23165,"20":0.01053,"21":0.03159,"22":0.05265,"23":0.06318,"24":0.06318,"25":1.42151,"5.0-5.4":0.03159,"6.2-6.4":0.01053,"7.2-7.4":0.02106,_:"8.2 9.2 10.1 12.0 14.0 18.0","11.1-11.2":0.01053,"13.0":0.01053,"15.0":0.01053,"16.0":0.01053,"17.0":0.01053,"19.0":0.01053},I:{"0":0.02422,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.81432,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00872,"10":0.00872,"11":0.06102,_:"6 7 9 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":42.54601},R:{_:"0"},M:{"0":0.30993},Q:{"14.9":0.01215},O:{"0":0.89332},H:{"0":0}}; 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..eb6e3f5 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MZ.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00261,"78":0.00522,"84":0.00261,"88":0.00261,"90":0.00261,"91":0.00261,"97":0.00261,"99":0.00261,"104":0.00261,"107":0.00261,"108":0.00261,"113":0.02348,"115":0.12262,"121":0.00261,"122":0.00261,"123":0.00522,"125":0.00261,"126":0.00783,"127":0.24525,"128":0.35743,"129":0.00261,_:"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 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 79 80 81 82 83 85 86 87 89 92 93 94 95 96 98 100 101 102 103 105 106 109 110 111 112 114 116 117 118 119 120 124 130 131 3.5 3.6"},D:{"11":0.00261,"43":0.00261,"49":0.00261,"55":0.00261,"58":0.00261,"64":0.00522,"65":0.00261,"68":0.00261,"70":0.00522,"73":0.00522,"74":0.00522,"75":0.00261,"78":0.00261,"79":0.00522,"81":0.0287,"83":0.00261,"84":0.00261,"85":0.00261,"86":0.00261,"87":0.01826,"88":0.00783,"89":0.00261,"90":0.00522,"91":0.15132,"92":0.01826,"93":0.00522,"94":0.02609,"95":0.00522,"98":0.00522,"99":0.00522,"100":0.00261,"101":0.00261,"102":0.0287,"103":0.00783,"104":0.04957,"105":0.00261,"106":0.01565,"107":0.00261,"108":0.00261,"109":1.99849,"111":0.03653,"112":0.00261,"113":0.00522,"114":0.09914,"115":0.00261,"116":0.04435,"117":0.01826,"118":0.00783,"119":0.01826,"120":0.02609,"121":0.02087,"122":0.07044,"123":0.03653,"124":0.09653,"125":0.22177,"126":6.64251,"127":0.85575,"128":0.00522,"129":0.00261,_:"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 44 45 46 47 48 50 51 52 53 54 56 57 59 60 61 62 63 66 67 69 71 72 76 77 80 96 97 110 130"},F:{"36":0.00261,"79":0.00522,"83":0.01044,"85":0.00783,"95":0.15654,"106":0.01044,"108":0.00522,"109":0.02348,"110":0.01826,"111":0.37048,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 80 81 82 84 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.01826,"13":0.00261,"14":0.00261,"15":0.00261,"16":0.00261,"17":0.00261,"18":0.0287,"84":0.00261,"85":0.00261,"89":0.00783,"90":0.00261,"91":0.01826,"92":0.04174,"100":0.01044,"102":0.01565,"105":0.00261,"109":0.01826,"110":0.00261,"112":0.00261,"113":0.00261,"114":0.00783,"115":0.00261,"116":0.06001,"117":0.02087,"119":0.01044,"120":0.01044,"121":0.00522,"122":0.02609,"123":0.01305,"124":0.06001,"125":0.10436,"126":1.93327,"127":0.22959,_:"79 80 81 83 86 87 88 93 94 95 96 97 98 99 101 103 104 106 107 108 111 118"},E:{"13":0.00261,"14":0.00522,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.1 15.4 15.5 16.0 16.2 16.4 16.5 17.0 17.2 17.6","11.1":0.00261,"13.1":0.03131,"14.1":0.01044,"15.2-15.3":0.00783,"15.6":0.01565,"16.1":0.00261,"16.3":0.00522,"16.6":0.02348,"17.1":0.00261,"17.3":0.00783,"17.4":0.01305,"17.5":0.0861,"18.0":0.00261},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00083,"5.0-5.1":0.00041,"6.0-6.1":0.00248,"7.0-7.1":0.00248,"8.1-8.4":0,"9.0-9.2":0.00207,"9.3":0.00826,"10.0-10.2":0.00165,"10.3":0.01446,"11.0-11.2":0.03801,"11.3-11.4":0.00413,"12.0-12.1":0.00289,"12.2-12.5":0.05329,"13.0-13.1":0.00083,"13.2":0.00868,"13.3":0.00289,"13.4-13.7":0.01239,"14.0-14.4":0.0285,"14.5-14.8":0.03222,"15.0-15.1":0.01611,"15.2-15.3":0.01735,"15.4":0.01983,"15.5":0.02396,"15.6-15.8":0.21977,"16.0":0.0442,"16.1":0.09377,"16.2":0.04709,"16.3":0.0789,"16.4":0.01859,"16.5":0.03346,"16.6-16.7":0.2743,"17.0":0.02479,"17.1":0.04007,"17.2":0.03883,"17.3":0.05825,"17.4":0.14582,"17.5":2.67028,"17.6":0.02066,"18.0":0.02726},P:{"4":0.12558,"20":0.0314,"21":0.04186,"22":0.09419,"23":0.07326,"24":0.18837,"25":0.64883,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0","7.2-7.4":0.10465,"11.1-11.2":0.01047,"13.0":0.01047,"14.0":0.04186,"15.0":0.02093,"16.0":0.01047,"17.0":0.01047,"18.0":0.02093,"19.0":0.06279},I:{"0":0.00736,"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.00001},K:{"0":2.59776,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01044,_:"6 7 8 9 10 5.5"},S:{"2.5":0.39167,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":75.42465},R:{_:"0"},M:{"0":0.05912},Q:{_:"14.9"},O:{"0":0.14041},H:{"0":0.24}}; 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..6b004f9 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NA.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.02323,"60":0.00332,"101":0.00332,"111":0.02323,"113":0.00332,"115":0.16927,"121":0.00664,"122":0.00664,"123":0.00332,"124":0.00332,"125":0.00664,"126":0.01328,"127":0.62729,"128":0.94923,"129":0.00664,_:"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 43 44 45 46 47 48 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 102 103 104 105 106 107 108 109 110 112 114 116 117 118 119 120 130 131 3.5 3.6"},D:{"20":0.00332,"40":0.01328,"49":0.01328,"62":0.00664,"65":0.00332,"69":0.01328,"70":0.00332,"72":0.00332,"73":0.01328,"74":0.00664,"75":0.00332,"78":0.01328,"79":0.04315,"81":0.00664,"83":0.00664,"87":0.00996,"88":0.03319,"89":0.00664,"90":0.00332,"91":0.00332,"92":0.00332,"93":0.00664,"94":0.00664,"95":0.00996,"97":0.00332,"98":0.00332,"99":0.01328,"100":0.00996,"102":0.00664,"103":0.02987,"104":0.00332,"106":0.02655,"107":0.00996,"108":0.00332,"109":1.87855,"110":0.00996,"111":0.00664,"112":0.00332,"114":0.00664,"115":0.00996,"116":0.04315,"117":0.00664,"118":0.0166,"119":0.02987,"120":0.04315,"121":0.04647,"122":0.06638,"123":0.03983,"124":0.13276,"125":0.22901,"126":13.31915,"127":1.66946,"128":0.00332,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 63 64 66 67 68 71 76 77 80 84 85 86 96 101 105 113 129 130"},F:{"35":0.00664,"37":0.00332,"83":0.01328,"95":0.03319,"108":0.09957,"109":0.13276,"110":0.00996,"111":0.43811,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00664,"14":0.00996,"15":0.00332,"16":0.02323,"17":0.0166,"18":0.04315,"85":0.00664,"89":0.00332,"92":0.04979,"100":0.00996,"103":0.00332,"108":0.00332,"109":0.05974,"114":0.00996,"115":0.03319,"117":0.00664,"118":0.01328,"119":0.04315,"120":0.05642,"121":0.01328,"122":0.0166,"123":0.03319,"124":0.02655,"125":0.19914,"126":4.84906,"127":0.58746,_:"13 79 80 81 83 84 86 87 88 90 91 93 94 95 96 97 98 99 101 102 104 105 106 107 110 111 112 113 116"},E:{_:"0 4 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 15.4 15.5 17.6","11.1":0.00664,"12.1":0.02987,"13.1":0.01328,"14.1":0.00664,"15.1":0.00332,"15.2-15.3":0.00996,"15.6":0.07966,"16.0":0.00664,"16.1":0.00664,"16.2":0.00332,"16.3":0.11948,"16.4":0.02655,"16.5":0.0166,"16.6":0.15599,"17.0":0.00332,"17.1":0.00996,"17.2":0.00996,"17.3":0.0166,"17.4":0.04315,"17.5":0.46798,"18.0":0.00664},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00169,"5.0-5.1":0.00085,"6.0-6.1":0.00508,"7.0-7.1":0.00508,"8.1-8.4":0,"9.0-9.2":0.00423,"9.3":0.01693,"10.0-10.2":0.00339,"10.3":0.02963,"11.0-11.2":0.07789,"11.3-11.4":0.00847,"12.0-12.1":0.00593,"12.2-12.5":0.10921,"13.0-13.1":0.00169,"13.2":0.01778,"13.3":0.00593,"13.4-13.7":0.0254,"14.0-14.4":0.05842,"14.5-14.8":0.06604,"15.0-15.1":0.03302,"15.2-15.3":0.03556,"15.4":0.04064,"15.5":0.0491,"15.6-15.8":0.4504,"16.0":0.09059,"16.1":0.19218,"16.2":0.09651,"16.3":0.1617,"16.4":0.0381,"16.5":0.06858,"16.6-16.7":0.56215,"17.0":0.0508,"17.1":0.08212,"17.2":0.07958,"17.3":0.11937,"17.4":0.29885,"17.5":5.47248,"17.6":0.04233,"18.0":0.05588},P:{"4":0.32661,"20":0.01021,"21":0.03062,"22":0.11227,"23":0.07145,"24":0.12248,"25":2.14338,"5.0-5.4":0.01021,"6.2-6.4":0.02041,"7.2-7.4":0.24496,_:"8.2 10.1 11.1-11.2 12.0 13.0 15.0 18.0","9.2":0.01021,"14.0":0.03062,"16.0":0.01021,"17.0":0.07145,"19.0":0.06124},I:{"0":0.02663,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":1.50027,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.09293,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":57.4746},R:{_:"0"},M:{"0":0.12028},Q:{_:"14.9"},O:{"0":0.4076},H:{"0":0.07}}; 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..0fa0755 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NC.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.0224,"52":0.00448,"56":0.00448,"61":0.00448,"78":0.11648,"79":0.00896,"80":0.00448,"84":0.00448,"91":0.01792,"97":0.00448,"102":0.07616,"103":0.04928,"107":0.0224,"112":0.00448,"115":1.008,"117":0.00896,"119":0.00448,"121":0.02688,"122":0.00896,"123":0.00448,"124":0.01792,"125":0.01792,"126":0.10752,"127":2.23552,"128":3.248,"129":0.00448,_:"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 53 54 55 57 58 59 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 81 82 83 85 86 87 88 89 90 92 93 94 95 96 98 99 100 101 104 105 106 108 109 110 111 113 114 116 118 120 130 131 3.5 3.6"},D:{"47":0.00448,"48":0.00448,"49":0.00448,"65":0.00448,"69":0.00896,"70":0.00448,"74":0.00448,"77":0.0224,"79":0.02688,"84":0.01792,"86":0.00448,"87":0.0224,"88":0.00896,"89":0.00896,"90":0.01344,"93":0.00448,"94":0.04928,"99":0.00896,"101":0.00448,"103":0.09408,"107":0.01344,"109":1.31264,"112":0.00448,"113":0.00896,"114":0.0448,"115":0.00448,"116":0.2912,"117":0.00448,"118":0.00448,"119":0.00448,"120":0.0448,"121":0.0896,"122":0.14336,"123":0.08512,"124":1.008,"125":0.29568,"126":15.17376,"127":1.72032,"128":0.09856,_:"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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 71 72 73 75 76 78 80 81 83 85 91 92 95 96 97 98 100 102 104 105 106 108 110 111 129 130"},F:{"46":0.00448,"95":0.07168,"106":0.00448,"109":0.5376,"110":0.04928,"111":0.47488,_:"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 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 96 97 98 99 100 101 102 103 104 105 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00448,"17":0.00448,"84":0.00448,"90":0.00448,"92":0.00448,"97":0.00448,"100":0.00896,"101":0.01792,"107":0.00448,"108":0.00448,"109":0.0672,"110":0.00448,"111":0.00448,"112":0.00448,"114":0.00448,"115":0.0224,"116":0.00448,"118":0.03584,"119":0.5376,"120":0.04928,"121":0.05376,"122":0.07616,"123":0.05824,"124":0.112,"125":0.09408,"126":7.11872,"127":1.17824,_:"12 13 14 16 18 79 80 81 83 85 86 87 88 89 91 93 94 95 96 98 99 102 103 104 105 106 113 117"},E:{"13":0.00448,"14":0.01344,"15":0.0448,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00896,"13.1":0.05824,"14.1":0.04928,"15.1":0.00448,"15.2-15.3":0.00448,"15.4":0.00448,"15.5":0.0224,"15.6":0.46592,"16.0":0.03584,"16.1":0.0224,"16.2":0.01792,"16.3":0.07168,"16.4":0.02688,"16.5":0.07616,"16.6":0.30912,"17.0":0.03136,"17.1":0.07168,"17.2":0.09408,"17.3":0.06272,"17.4":0.2688,"17.5":3.1584,"17.6":0.00896,"18.0":0.01792},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00253,"5.0-5.1":0.00126,"6.0-6.1":0.00759,"7.0-7.1":0.00759,"8.1-8.4":0,"9.0-9.2":0.00632,"9.3":0.02529,"10.0-10.2":0.00506,"10.3":0.04426,"11.0-11.2":0.11635,"11.3-11.4":0.01265,"12.0-12.1":0.00885,"12.2-12.5":0.16314,"13.0-13.1":0.00253,"13.2":0.02656,"13.3":0.00885,"13.4-13.7":0.03794,"14.0-14.4":0.08726,"14.5-14.8":0.09864,"15.0-15.1":0.04932,"15.2-15.3":0.05311,"15.4":0.0607,"15.5":0.07335,"15.6-15.8":0.67278,"16.0":0.13532,"16.1":0.28707,"16.2":0.14417,"16.3":0.24154,"16.4":0.05691,"16.5":0.10244,"16.6-16.7":0.83972,"17.0":0.07588,"17.1":0.12267,"17.2":0.11888,"17.3":0.17831,"17.4":0.44642,"17.5":8.17458,"17.6":0.06323,"18.0":0.08347},P:{"4":0.01088,"20":0.02177,"21":0.03265,"22":0.08708,"23":0.08708,"24":0.10885,"25":2.6777,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 17.0","7.2-7.4":0.07619,"13.0":0.06531,"15.0":0.01088,"16.0":0.01088,"18.0":0.04354,"19.0":0.03265},I:{"0":0.011,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.07728,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":38.15},R:{_:"0"},M:{"0":1.16472},Q:{"14.9":0.00552},O:{_:"0"},H:{"0":0}}; 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..890ca94 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NE.js @@ -0,0 +1 @@ +module.exports={C:{"42":0.00278,"43":0.00278,"46":0.00139,"47":0.00556,"48":0.00278,"50":0.00417,"51":0.00278,"52":0.00139,"56":0.00139,"57":0.00278,"61":0.00139,"65":0.00417,"66":0.00139,"70":0.00139,"72":0.00972,"73":0.00139,"75":0.00139,"77":0.00278,"102":0.00139,"103":0.00139,"106":0.02361,"110":0.00278,"113":0.01667,"114":0.00417,"115":0.23752,"117":0.00139,"121":0.00139,"122":0.00139,"124":0.00139,"125":0.00139,"126":0.025,"127":0.59727,"128":0.70978,"129":0.00139,_:"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 44 45 49 53 54 55 58 59 60 62 63 64 67 68 69 71 74 76 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 104 105 107 108 109 111 112 116 118 119 120 123 130 131 3.5 3.6"},D:{"34":0.00139,"40":0.00139,"47":0.00139,"49":0.00139,"50":0.00139,"52":0.00139,"56":0.00139,"60":0.05,"61":0.00139,"65":0.00139,"67":0.00139,"68":0.00278,"69":0.00139,"70":0.025,"75":0.00278,"79":0.1014,"80":0.00139,"81":0.00556,"83":0.00556,"87":0.00139,"88":0.00139,"89":0.00139,"91":0.03056,"92":0.00278,"95":0.00556,"97":0.00417,"98":0.00417,"99":0.00278,"100":0.00139,"103":0.00278,"104":0.00278,"106":0.00139,"107":0.00139,"108":0.00139,"109":0.28336,"110":0.00417,"111":0.01667,"113":0.00417,"114":0.00278,"115":0.00278,"116":0.01389,"117":0.00695,"118":0.00417,"119":0.04445,"120":0.05556,"121":0.0125,"122":0.00972,"123":0.00833,"124":0.03334,"125":0.10556,"126":2.77106,"127":0.35558,"128":0.00278,_:"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 41 42 43 44 45 46 48 51 53 54 55 57 58 59 62 63 64 66 71 72 73 74 76 77 78 84 85 86 90 93 94 96 101 102 105 112 129 130"},F:{"20":0.00139,"21":0.00139,"22":0.00139,"42":0.00139,"53":0.00139,"57":0.00139,"58":0.00139,"78":0.00139,"79":0.00556,"82":0.36392,"83":0.03473,"87":0.00139,"92":0.00139,"95":0.02222,"97":0.00139,"98":0.00278,"105":0.00139,"108":0.00278,"109":0.00695,"110":0.025,"111":0.30558,_:"9 11 12 15 16 17 18 19 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 54 55 56 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 80 81 84 85 86 88 89 90 91 93 94 96 99 100 101 102 103 104 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00278,"13":0.00556,"14":0.00139,"16":0.00417,"17":0.00278,"18":0.01667,"84":0.00695,"89":0.00833,"90":0.00556,"91":0.00278,"92":0.03611,"98":0.00278,"100":0.00417,"108":0.00139,"109":0.05,"110":0.00417,"112":0.00139,"114":0.00417,"115":0.00139,"116":0.00417,"118":0.00556,"119":0.00278,"120":0.00833,"121":0.00695,"122":0.04445,"123":0.00833,"124":0.14307,"125":0.05139,"126":1.61263,"127":0.33336,_:"15 79 80 81 83 85 86 87 88 93 94 95 96 97 99 101 102 103 104 105 106 107 111 113 117"},E:{"11":0.00417,_:"0 4 5 6 7 8 9 10 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.4 16.2 16.3 16.5 17.0 17.2 17.6 18.0","5.1":0.00417,"13.1":0.00417,"14.1":0.00278,"15.2-15.3":0.00556,"15.5":0.00139,"15.6":0.00417,"16.0":0.00139,"16.1":0.03056,"16.4":0.00278,"16.6":0.00278,"17.1":0.00139,"17.3":0.00139,"17.4":0.00556,"17.5":0.07917},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00101,"5.0-5.1":0.00051,"6.0-6.1":0.00304,"7.0-7.1":0.00304,"8.1-8.4":0,"9.0-9.2":0.00253,"9.3":0.01013,"10.0-10.2":0.00203,"10.3":0.01772,"11.0-11.2":0.04658,"11.3-11.4":0.00506,"12.0-12.1":0.00354,"12.2-12.5":0.06532,"13.0-13.1":0.00101,"13.2":0.01063,"13.3":0.00354,"13.4-13.7":0.01519,"14.0-14.4":0.03494,"14.5-14.8":0.03949,"15.0-15.1":0.01975,"15.2-15.3":0.02127,"15.4":0.0243,"15.5":0.02937,"15.6-15.8":0.26937,"16.0":0.05418,"16.1":0.11494,"16.2":0.05772,"16.3":0.09671,"16.4":0.02278,"16.5":0.04101,"16.6-16.7":0.3362,"17.0":0.03038,"17.1":0.04911,"17.2":0.04759,"17.3":0.07139,"17.4":0.17873,"17.5":3.2729,"17.6":0.02532,"18.0":0.03342},P:{"4":0.02044,"20":0.01022,"21":0.08176,"22":0.03066,"23":0.09198,"24":0.04088,"25":0.31681,_:"5.0-5.4 8.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 18.0","6.2-6.4":0.01022,"7.2-7.4":0.07154,"9.2":0.06132,"16.0":0.01022,"17.0":0.01022,"19.0":0.06132},I:{"0":0.00858,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00001},K:{"0":3.7455,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01945,_:"6 7 8 9 10 5.5"},S:{"2.5":0.01722,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":79.22469},R:{_:"0"},M:{"0":0.04306},Q:{"14.9":0.00861},O:{"0":0.9386},H:{"0":0.25}}; 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..01bb546 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NF.js @@ -0,0 +1 @@ +module.exports={C:{"127":0.15552,"128":0.31105,_:"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 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 129 130 131 3.5 3.6"},D:{"109":1.39444,"126":9.61349,"127":0.31105,_:"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 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 128 129 130"},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 99 100 101 102 103 104 105 106 107 108 109 110 111 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"126":7.28854,"127":1.24156,_:"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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125"},E:{"14":0.46394,_:"0 4 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 12.1 13.1 14.1 15.1 15.4 15.5 15.6 16.0 16.1 16.2 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.6 18.0","15.2-15.3":1.39444,"16.3":0.15552,"17.5":4.03044},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00621,"5.0-5.1":0.00311,"6.0-6.1":0.01863,"7.0-7.1":0.01863,"8.1-8.4":0,"9.0-9.2":0.01553,"9.3":0.06212,"10.0-10.2":0.01242,"10.3":0.1087,"11.0-11.2":0.28574,"11.3-11.4":0.03106,"12.0-12.1":0.02174,"12.2-12.5":0.40065,"13.0-13.1":0.00621,"13.2":0.06522,"13.3":0.02174,"13.4-13.7":0.09317,"14.0-14.4":0.2143,"14.5-14.8":0.24225,"15.0-15.1":0.12113,"15.2-15.3":0.13044,"15.4":0.14908,"15.5":0.18014,"15.6-15.8":1.6523,"16.0":0.33232,"16.1":0.70502,"16.2":0.35406,"16.3":0.59321,"16.4":0.13976,"16.5":0.25157,"16.6-16.7":2.06226,"17.0":0.18635,"17.1":0.30126,"17.2":0.29195,"17.3":0.43792,"17.4":1.09635,"17.5":20.07602,"17.6":0.15529,"18.0":0.20498},P:{"21":0.17501,"25":12.7211,_:"4 20 22 23 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.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":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":29.69568},R:{_:"0"},M:{_:"0"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0}}; 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..5c12b11 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NG.js @@ -0,0 +1 @@ +module.exports={C:{"43":0.00669,"47":0.00134,"49":0.00134,"52":0.00134,"56":0.00134,"57":0.00134,"65":0.00401,"72":0.00535,"78":0.00134,"79":0.00134,"80":0.00134,"83":0.00268,"99":0.00134,"101":0.00134,"102":0.00134,"103":0.00134,"105":0.00134,"106":0.00268,"107":0.00134,"108":0.00268,"109":0.00134,"110":0.00134,"111":0.00134,"112":0.00134,"113":0.00134,"114":0.00268,"115":0.44288,"116":0.00134,"118":0.00134,"119":0.00134,"120":0.00401,"121":0.00134,"122":0.00134,"123":0.00268,"124":0.00535,"125":0.00401,"126":0.01606,"127":0.19936,"128":0.27697,"129":0.00669,_:"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 44 45 46 48 50 51 53 54 55 58 59 60 61 62 63 64 66 67 68 69 70 71 73 74 75 76 77 81 82 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 100 104 117 130 131 3.5 3.6"},D:{"11":0.00268,"19":0.00134,"30":0.00134,"33":0.00134,"37":0.00134,"43":0.00134,"47":0.01472,"49":0.00134,"50":0.00268,"55":0.00134,"56":0.00134,"58":0.00669,"59":0.02007,"62":0.00937,"63":0.00803,"64":0.00669,"65":0.00268,"66":0.00669,"67":0.00134,"68":0.00669,"69":0.00268,"70":0.02141,"71":0.00134,"72":0.00134,"73":0.00134,"74":0.00401,"75":0.00401,"76":0.00535,"77":0.00535,"78":0.00134,"79":0.01606,"80":0.0107,"81":0.00803,"83":0.00535,"84":0.00268,"85":0.00268,"86":0.00535,"87":0.0107,"88":0.02141,"89":0.00134,"90":0.00535,"91":0.0388,"92":0.00535,"93":0.05218,"94":0.00401,"95":0.01472,"96":0.00401,"97":0.00268,"98":0.00134,"99":0.00268,"100":0.00401,"101":0.00134,"102":0.00669,"103":0.02542,"104":0.00401,"105":0.0107,"106":0.01739,"107":0.00937,"108":0.01338,"109":0.79076,"110":0.00669,"111":0.01472,"112":0.00803,"113":0.00535,"114":0.01472,"115":0.00669,"116":0.03613,"117":0.0107,"118":0.01204,"119":0.04817,"120":0.04817,"121":0.03077,"122":0.04282,"123":0.05352,"124":0.08429,"125":0.17394,"126":4.79807,"127":0.52851,"128":0.00803,"129":0.00134,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 29 31 32 34 35 36 38 39 40 41 42 44 45 46 48 51 52 53 54 57 60 61 130"},F:{"33":0.00134,"42":0.00134,"58":0.00134,"74":0.00134,"77":0.00134,"79":0.00803,"82":0.00134,"83":0.0669,"84":0.00268,"85":0.00134,"86":0.00134,"94":0.00134,"95":0.02944,"100":0.01204,"102":0.00134,"107":0.00134,"108":0.00134,"109":0.0281,"110":0.0107,"111":0.17528,_:"9 11 12 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 60 62 63 64 65 66 67 68 69 70 71 72 73 75 76 78 80 81 87 88 89 90 91 92 93 96 97 98 99 101 103 104 105 106 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00401,"14":0.00669,"15":0.00134,"16":0.00134,"17":0.00134,"18":0.02275,"84":0.00401,"85":0.00134,"89":0.00535,"90":0.00803,"92":0.02275,"100":0.00535,"105":0.00134,"107":0.00134,"108":0.00134,"109":0.0107,"110":0.00134,"111":0.00134,"112":0.00134,"113":0.00535,"114":0.00401,"115":0.00268,"116":0.00134,"117":0.00134,"118":0.00134,"119":0.00268,"120":0.00803,"121":0.00535,"122":0.00535,"123":0.00669,"124":0.02408,"125":0.0388,"126":0.78541,"127":0.08965,_:"13 79 80 81 83 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 106"},E:{"10":0.00134,"11":0.00401,"12":0.00134,"13":0.00401,"14":0.00803,_:"0 4 5 6 7 8 9 15 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00134,"11.1":0.00535,"12.1":0.00134,"13.1":0.01472,"14.1":0.0107,"15.1":0.00268,"15.2-15.3":0.00134,"15.4":0.00268,"15.5":0.00669,"15.6":0.02676,"16.0":0.00268,"16.1":0.00268,"16.2":0.00134,"16.3":0.00803,"16.4":0.00268,"16.5":0.00401,"16.6":0.02542,"17.0":0.00268,"17.1":0.00401,"17.2":0.00669,"17.3":0.00535,"17.4":0.01338,"17.5":0.06824,"17.6":0.00134,"18.0":0.00134},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00122,"5.0-5.1":0.00061,"6.0-6.1":0.00366,"7.0-7.1":0.00366,"8.1-8.4":0,"9.0-9.2":0.00305,"9.3":0.01221,"10.0-10.2":0.00244,"10.3":0.02137,"11.0-11.2":0.05618,"11.3-11.4":0.00611,"12.0-12.1":0.00427,"12.2-12.5":0.07877,"13.0-13.1":0.00122,"13.2":0.01282,"13.3":0.00427,"13.4-13.7":0.01832,"14.0-14.4":0.04213,"14.5-14.8":0.04763,"15.0-15.1":0.02381,"15.2-15.3":0.02565,"15.4":0.02931,"15.5":0.03541,"15.6-15.8":0.32484,"16.0":0.06533,"16.1":0.13861,"16.2":0.06961,"16.3":0.11662,"16.4":0.02748,"16.5":0.04946,"16.6-16.7":0.40544,"17.0":0.03664,"17.1":0.05923,"17.2":0.0574,"17.3":0.08609,"17.4":0.21554,"17.5":3.94692,"17.6":0.03053,"18.0":0.0403},P:{"4":0.03125,"20":0.01042,"21":0.03125,"22":0.08332,"23":0.04166,"24":0.06249,"25":0.39577,_:"5.0-5.4 6.2-6.4 8.2 10.1 12.0 13.0 14.0 15.0 18.0","7.2-7.4":0.02083,"9.2":0.01042,"11.1-11.2":0.01042,"16.0":0.02083,"17.0":0.01042,"19.0":0.01042},I:{"0":0.05178,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00009},K:{"0":23.9134,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00283,"10":0.00142,"11":0.01983,_:"6 7 9 5.5"},S:{"2.5":0.02598,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":54.33659},R:{_:"0"},M:{"0":0.20786},Q:{"14.9":0.00866},O:{"0":0.61493},H:{"0":3.49}}; 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..4e2b1d0 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NI.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.01346,"52":0.00337,"61":0.00673,"78":0.00337,"99":0.00337,"115":0.12118,"119":0.00337,"122":0.00337,"123":0.00337,"124":0.00337,"125":0.0101,"126":0.01346,"127":0.42075,"128":0.92565,"129":0.01346,_:"2 3 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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 120 121 130 131 3.5 3.6"},D:{"11":0.00337,"38":0.00337,"49":0.00337,"55":0.00673,"56":0.00337,"65":0.00673,"69":0.00673,"70":0.00337,"73":0.00337,"75":0.00673,"76":0.00337,"79":0.02693,"80":0.00337,"81":0.01683,"83":0.0101,"86":0.00673,"87":0.0202,"88":0.02356,"90":0.00673,"91":5.12642,"92":0.00337,"93":0.00673,"94":0.00673,"95":0.06059,"96":0.0101,"97":0.00673,"98":0.02356,"99":0.12118,"100":0.00337,"101":0.00337,"102":0.00337,"103":0.08415,"104":0.0101,"105":0.00337,"106":0.0202,"107":0.00337,"108":0.01683,"109":1.39352,"110":0.0101,"111":0.01346,"112":0.00673,"113":0.00673,"114":0.0202,"115":0.00337,"116":0.06395,"117":0.0101,"118":0.01346,"119":0.0202,"120":0.04712,"121":0.03366,"122":0.18176,"123":0.10771,"124":0.10771,"125":0.23225,"126":13.43371,"127":1.8311,"128":0.0202,"129":0.00337,_:"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 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 57 58 59 60 61 62 63 64 66 67 68 71 72 74 77 78 84 85 89 130"},F:{"83":0.01683,"93":0.00337,"95":0.03366,"101":0.00337,"109":0.72369,"110":0.00673,"111":0.39382,_:"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 84 85 86 87 88 89 90 91 92 94 96 97 98 99 100 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00337,"16":0.01346,"18":0.00673,"89":0.0101,"92":0.02356,"100":0.00673,"104":0.00337,"108":0.00673,"109":0.01683,"110":0.00337,"111":0.0202,"114":0.00673,"116":0.00337,"117":0.00337,"119":0.00673,"120":0.00673,"121":0.0101,"122":0.01683,"123":0.01683,"124":0.0202,"125":0.08415,"126":3.33907,"127":0.39719,_:"12 13 15 17 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 99 101 102 103 105 106 107 112 113 115 118"},E:{"13":0.00337,_:"0 4 5 6 7 8 9 10 11 12 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3 15.4 15.5","5.1":0.01346,"13.1":0.00337,"14.1":0.03029,"15.1":0.00337,"15.6":0.02693,"16.0":0.04712,"16.1":0.00337,"16.2":0.00337,"16.3":0.01683,"16.4":0.00337,"16.5":0.00337,"16.6":0.05386,"17.0":0.00673,"17.1":0.0101,"17.2":0.0101,"17.3":0.01683,"17.4":0.0202,"17.5":0.44431,"17.6":0.00337,"18.0":0.00337},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00126,"5.0-5.1":0.00063,"6.0-6.1":0.00377,"7.0-7.1":0.00377,"8.1-8.4":0,"9.0-9.2":0.00314,"9.3":0.01258,"10.0-10.2":0.00252,"10.3":0.02201,"11.0-11.2":0.05786,"11.3-11.4":0.00629,"12.0-12.1":0.0044,"12.2-12.5":0.08113,"13.0-13.1":0.00126,"13.2":0.01321,"13.3":0.0044,"13.4-13.7":0.01887,"14.0-14.4":0.04339,"14.5-14.8":0.04905,"15.0-15.1":0.02453,"15.2-15.3":0.02641,"15.4":0.03019,"15.5":0.03648,"15.6-15.8":0.33458,"16.0":0.06729,"16.1":0.14276,"16.2":0.07169,"16.3":0.12012,"16.4":0.0283,"16.5":0.05094,"16.6-16.7":0.41759,"17.0":0.03773,"17.1":0.061,"17.2":0.05912,"17.3":0.08868,"17.4":0.222,"17.5":4.06523,"17.6":0.03145,"18.0":0.04151},P:{"4":0.07295,"20":0.03127,"21":0.08338,"22":0.18759,"23":0.19802,"24":0.17717,"25":1.68835,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0","7.2-7.4":0.28139,"11.1-11.2":0.08338,"13.0":0.01042,"14.0":0.01042,"15.0":0.01042,"16.0":0.03127,"17.0":0.02084,"18.0":0.02084,"19.0":0.07295},I:{"0":0.08594,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00015},K:{"0":0.55389,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0101,_:"6 7 8 9 10 5.5"},S:{"2.5":0.0199,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":58.23938},R:{_:"0"},M:{"0":0.13931},Q:{"14.9":0.0199},O:{"0":0.10614},H:{"0":0.01}}; 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..840745e --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NL.js @@ -0,0 +1 @@ +module.exports={C:{"38":0.01794,"43":0.01794,"44":0.0852,"45":0.01794,"48":0.00448,"52":0.01345,"78":0.02242,"81":0.01794,"91":0.00448,"92":0.00448,"101":0.00448,"102":0.02242,"103":0.00897,"104":0.00448,"107":0.00448,"108":0.00448,"109":0.00448,"110":0.00448,"111":0.00448,"112":0.00448,"113":0.01794,"114":0.00448,"115":0.56498,"116":0.00448,"117":0.0269,"118":0.00897,"119":0.00448,"120":0.00448,"121":0.00448,"122":0.02242,"123":0.00448,"124":0.00897,"125":0.02242,"126":0.04484,"127":1.0358,"128":1.61872,"129":0.02242,_:"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 39 40 41 42 46 47 49 50 51 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 79 80 82 83 84 85 86 87 88 89 90 93 94 95 96 97 98 99 100 105 106 130 131 3.5 3.6"},D:{"38":0.00897,"41":0.00448,"45":0.2242,"47":0.02242,"48":0.24214,"49":0.06726,"52":0.07623,"56":0.00448,"58":0.00448,"66":0.00897,"72":0.01345,"76":0.00448,"78":0.00448,"79":0.04484,"80":0.00897,"81":0.00448,"84":0.01345,"85":0.04484,"86":0.01794,"87":0.03139,"88":0.00448,"89":0.00448,"90":0.00448,"91":0.09865,"92":0.07174,"93":0.0269,"94":0.00897,"96":0.04932,"97":0.01794,"98":0.01345,"99":0.00448,"100":0.00448,"101":0.00448,"102":0.01794,"103":0.17936,"104":0.24662,"105":0.01345,"106":0.12555,"107":0.02242,"108":0.1973,"109":0.77573,"110":0.01345,"111":0.02242,"112":0.01794,"113":0.18833,"114":0.2242,"115":0.01794,"116":0.13004,"117":0.0269,"118":0.08968,"119":0.11658,"120":0.1121,"121":0.05829,"122":0.139,"123":0.20178,"124":0.21972,"125":2.1299,"126":16.51457,"127":1.91467,"128":0.00897,_:"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 42 43 44 46 50 51 53 54 55 57 59 60 61 62 63 64 65 67 68 69 70 71 73 74 75 77 83 95 129 130"},F:{"46":0.00448,"83":0.03587,"85":0.00897,"86":0.00448,"95":0.03587,"106":0.00448,"109":0.3094,"110":0.01345,"111":0.49772,_:"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 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 84 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00448,"13":0.00448,"92":0.00448,"96":0.00448,"107":0.00448,"108":0.00448,"109":0.12555,"110":0.00448,"112":0.00448,"113":0.00448,"114":0.00897,"115":0.00448,"118":0.00448,"119":0.01794,"120":0.02242,"121":0.0269,"122":0.02242,"123":0.03139,"124":0.06726,"125":0.17936,"126":6.72152,"127":0.80712,_:"14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 97 98 99 100 101 102 103 104 105 106 111 116 117"},E:{"8":0.00897,"9":0.03139,"14":0.06278,"15":0.00448,_:"0 4 5 6 7 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00448,"13.1":0.05829,"14.1":0.06726,"15.1":0.01794,"15.2-15.3":0.00448,"15.4":0.01345,"15.5":0.02242,"15.6":0.34527,"16.0":0.05381,"16.1":0.03587,"16.2":0.04036,"16.3":0.08968,"16.4":0.02242,"16.5":0.04036,"16.6":0.52463,"17.0":0.02242,"17.1":0.05829,"17.2":0.0852,"17.3":0.07174,"17.4":0.16142,"17.5":3.14328,"17.6":0.01794,"18.0":0.02242},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00332,"5.0-5.1":0.00166,"6.0-6.1":0.00996,"7.0-7.1":0.00996,"8.1-8.4":0,"9.0-9.2":0.0083,"9.3":0.03321,"10.0-10.2":0.00664,"10.3":0.05812,"11.0-11.2":0.15278,"11.3-11.4":0.01661,"12.0-12.1":0.01162,"12.2-12.5":0.21422,"13.0-13.1":0.00332,"13.2":0.03487,"13.3":0.01162,"13.4-13.7":0.04982,"14.0-14.4":0.11458,"14.5-14.8":0.12953,"15.0-15.1":0.06476,"15.2-15.3":0.06975,"15.4":0.07971,"15.5":0.09632,"15.6-15.8":0.88345,"16.0":0.17769,"16.1":0.37696,"16.2":0.18931,"16.3":0.31718,"16.4":0.07473,"16.5":0.13451,"16.6-16.7":1.10265,"17.0":0.09964,"17.1":0.16108,"17.2":0.1561,"17.3":0.23415,"17.4":0.5862,"17.5":10.73423,"17.6":0.08303,"18.0":0.1096},P:{"4":0.03184,"20":0.02123,"21":0.05307,"22":0.06369,"23":0.0743,"24":0.08492,"25":4.17153,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0","7.2-7.4":0.01061,"13.0":0.01061,"16.0":0.02123,"17.0":0.02123,"18.0":0.01061,"19.0":0.02123},I:{"0":0.06047,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.0001},K:{"0":0.65101,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01491,"9":0.03977,"10":0.00497,"11":0.16903,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":31.79761},R:{_:"0"},M:{"0":0.65652},Q:{"14.9":0.02207},O:{"0":0.45239},H:{"0":0}}; 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..8eab719 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NO.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00487,"52":0.00487,"59":0.06822,"76":0.00487,"78":0.01462,"102":0.00487,"103":0.00975,"106":0.00487,"107":0.00487,"109":0.00487,"110":0.00487,"111":0.00487,"113":0.00975,"115":0.28263,"116":0.00487,"118":0.37035,"120":0.00487,"121":0.00487,"122":0.00487,"123":0.00975,"124":0.00487,"125":0.00975,"126":0.06822,"127":0.81866,"128":1.23774,_:"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 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 104 105 108 112 114 117 119 129 130 131 3.5 3.6"},D:{"38":0.00487,"41":0.00487,"49":0.00487,"66":0.29238,"79":0.01949,"81":0.01949,"83":0.00487,"86":0.00487,"87":0.02437,"89":0.03411,"90":0.00487,"91":0.00487,"92":0.00487,"93":0.01462,"94":0.00975,"98":0.00487,"99":0.00487,"102":0.01462,"103":0.05848,"104":0.01462,"105":0.00975,"106":0.00487,"107":0.01462,"108":0.01949,"109":0.52141,"110":0.01462,"111":0.01462,"112":0.01949,"113":0.45319,"114":0.47268,"115":0.01462,"116":0.11695,"117":0.00975,"118":12.98167,"119":0.02437,"120":0.07797,"121":0.03411,"122":0.13644,"123":0.1803,"124":0.20467,"125":0.81866,"126":12.77701,"127":1.56423,"128":0.00487,_:"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 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 78 80 84 85 88 95 96 97 100 101 129 130"},F:{"46":0.00975,"83":0.00975,"86":0.00487,"87":0.00487,"95":0.03898,"102":0.00487,"107":0.00487,"108":0.00487,"109":0.66273,"110":0.01949,"111":0.59938,_:"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 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 84 85 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.03411,"18":0.00487,"92":0.00487,"100":0.00487,"103":0.00487,"108":0.00487,"109":0.05848,"110":0.00487,"111":0.00487,"112":0.00487,"113":0.00487,"114":0.00975,"115":0.01462,"116":0.00487,"117":0.00487,"119":0.00487,"120":0.01462,"121":0.01462,"122":0.02437,"123":0.01949,"124":0.02924,"125":0.11208,"126":5.52598,"127":0.67735,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 104 105 106 107 118"},E:{"13":0.00487,"14":0.03411,"15":0.00487,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.0536,"12.1":0.01462,"13.1":0.0731,"14.1":0.10721,"15.1":0.00975,"15.2-15.3":0.01462,"15.4":0.01949,"15.5":0.02437,"15.6":0.4337,"16.0":0.03898,"16.1":0.04386,"16.2":0.09259,"16.3":0.10721,"16.4":0.02924,"16.5":0.05848,"16.6":0.70659,"17.0":0.02924,"17.1":0.06822,"17.2":0.08771,"17.3":0.17056,"17.4":0.16081,"17.5":3.39161,"17.6":0.01462,"18.0":0.01949},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00516,"5.0-5.1":0.00258,"6.0-6.1":0.01548,"7.0-7.1":0.01548,"8.1-8.4":0,"9.0-9.2":0.0129,"9.3":0.0516,"10.0-10.2":0.01032,"10.3":0.0903,"11.0-11.2":0.23735,"11.3-11.4":0.0258,"12.0-12.1":0.01806,"12.2-12.5":0.33281,"13.0-13.1":0.00516,"13.2":0.05418,"13.3":0.01806,"13.4-13.7":0.0774,"14.0-14.4":0.17801,"14.5-14.8":0.20123,"15.0-15.1":0.10062,"15.2-15.3":0.10836,"15.4":0.12384,"15.5":0.14963,"15.6-15.8":1.37251,"16.0":0.27605,"16.1":0.58564,"16.2":0.29411,"16.3":0.49276,"16.4":0.1161,"16.5":0.20897,"16.6-16.7":1.71305,"17.0":0.15479,"17.1":0.25025,"17.2":0.24251,"17.3":0.36377,"17.4":0.9107,"17.5":16.67645,"17.6":0.12899,"18.0":0.17027},P:{"4":0.04192,"20":0.01048,"21":0.03144,"22":0.02096,"23":0.04192,"24":0.04192,"25":3.47974,"5.0-5.4":0.01048,_:"6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0","17.0":0.01048,"19.0":0.01048},I:{"0":0.07154,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00012},K:{"0":0.32819,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.0117,"11":0.01754,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":20.39009},R:{_:"0"},M:{"0":0.46152},Q:{"14.9":0.00513},O:{"0":0.02564},H:{"0":0}}; 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..4b961e9 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NP.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00699,"76":0.00233,"77":0.00233,"91":0.00233,"100":0.00233,"110":0.00233,"113":0.00233,"115":0.15618,"117":0.00233,"121":0.00233,"122":0.00233,"123":0.00233,"124":0.00233,"125":0.00233,"126":0.01632,"127":0.37995,"128":0.62238,"129":0.01865,_:"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 67 68 69 70 71 72 73 74 75 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 109 111 112 114 116 118 119 120 130 131 3.5 3.6"},D:{"58":0.00233,"65":0.00233,"69":0.00233,"72":0.00233,"73":0.00233,"74":0.00233,"76":0.00233,"79":0.00233,"81":0.00233,"83":0.00233,"84":0.00233,"87":0.01166,"88":0.00466,"91":0.00233,"92":0.00233,"93":0.00466,"96":0.00233,"99":0.00466,"100":0.00233,"103":0.03497,"104":0.00233,"105":0.00233,"106":0.01399,"107":0.00233,"108":0.00466,"109":1.53147,"110":0.00233,"111":0.00233,"112":0.00466,"113":0.00233,"114":0.00699,"115":0.00233,"116":0.04662,"117":0.00699,"118":0.00932,"119":0.01632,"120":0.03263,"121":0.02331,"122":0.08625,"123":0.03497,"124":0.09091,"125":0.15618,"126":14.36362,"127":2.03963,"128":0.02331,"129":0.00233,_:"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 59 60 61 62 63 64 66 67 68 70 71 75 77 78 80 85 86 89 90 94 95 97 98 101 102 130"},F:{"83":0.00466,"95":0.01166,"109":0.04196,"110":0.00233,"111":0.16783,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00233,"92":0.00466,"105":0.00233,"108":0.00233,"109":0.01399,"115":0.00233,"117":0.00233,"120":0.00466,"121":0.00466,"122":0.00466,"123":0.00233,"124":0.00932,"125":0.01399,"126":1.43357,"127":0.20513,_:"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 106 107 110 111 112 113 114 116 118 119"},E:{"13":0.00233,"14":0.00233,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00233,"12.1":0.00233,"13.1":0.00699,"14.1":0.01632,"15.1":0.00233,"15.2-15.3":0.00233,"15.4":0.00233,"15.5":0.00466,"15.6":0.03497,"16.0":0.00233,"16.1":0.01166,"16.2":0.00466,"16.3":0.00932,"16.4":0.00932,"16.5":0.00699,"16.6":0.0373,"17.0":0.00699,"17.1":0.00932,"17.2":0.00932,"17.3":0.00932,"17.4":0.02564,"17.5":0.24476,"17.6":0.00466,"18.0":0.00466},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00209,"5.0-5.1":0.00104,"6.0-6.1":0.00626,"7.0-7.1":0.00626,"8.1-8.4":0,"9.0-9.2":0.00522,"9.3":0.02088,"10.0-10.2":0.00418,"10.3":0.03653,"11.0-11.2":0.09603,"11.3-11.4":0.01044,"12.0-12.1":0.00731,"12.2-12.5":0.13464,"13.0-13.1":0.00209,"13.2":0.02192,"13.3":0.00731,"13.4-13.7":0.03131,"14.0-14.4":0.07202,"14.5-14.8":0.08141,"15.0-15.1":0.04071,"15.2-15.3":0.04384,"15.4":0.0501,"15.5":0.06054,"15.6-15.8":0.55528,"16.0":0.11168,"16.1":0.23693,"16.2":0.11899,"16.3":0.19936,"16.4":0.04697,"16.5":0.08454,"16.6-16.7":0.69305,"17.0":0.06263,"17.1":0.10124,"17.2":0.09811,"17.3":0.14717,"17.4":0.36844,"17.5":6.74681,"17.6":0.05219,"18.0":0.06889},P:{"4":0.01094,"21":0.01094,"22":0.01094,"23":0.02188,"24":0.02188,"25":0.44845,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","7.2-7.4":0.02188,"17.0":0.01094},I:{"0":0.04585,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":0.65187,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00233,"11":0.00233,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":64.95261},R:{_:"0"},M:{"0":0.04601},Q:{_:"14.9"},O:{"0":0.72089},H:{"0":0}}; 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..b5fbaa9 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NR.js @@ -0,0 +1 @@ +module.exports={C:{"127":0.50271,"128":0.28594,_:"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 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 129 130 131 3.5 3.6"},D:{"97":0.07379,"98":0.43353,"109":0.07379,"123":0.21676,"125":1.00542,"126":9.78666,"127":0.35974,_:"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 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 124 128 129 130"},F:{"111":0.07379,_:"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 99 100 101 102 103 104 105 106 107 108 109 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"112":0.07379,"126":4.24304,"127":0.21676,_:"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 107 108 109 110 111 113 114 115 116 117 118 119 120 121 122 123 124 125"},E:{"14":24.60502,_:"0 4 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 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.6 18.0","17.5":0.14297},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00048,"5.0-5.1":0.00024,"6.0-6.1":0.00144,"7.0-7.1":0.00144,"8.1-8.4":0,"9.0-9.2":0.0012,"9.3":0.00481,"10.0-10.2":0.00096,"10.3":0.00841,"11.0-11.2":0.02211,"11.3-11.4":0.0024,"12.0-12.1":0.00168,"12.2-12.5":0.03101,"13.0-13.1":0.00048,"13.2":0.00505,"13.3":0.00168,"13.4-13.7":0.00721,"14.0-14.4":0.01658,"14.5-14.8":0.01875,"15.0-15.1":0.00937,"15.2-15.3":0.01009,"15.4":0.01154,"15.5":0.01394,"15.6-15.8":0.12787,"16.0":0.02572,"16.1":0.05456,"16.2":0.0274,"16.3":0.04591,"16.4":0.01082,"16.5":0.01947,"16.6-16.7":0.15959,"17.0":0.01442,"17.1":0.02331,"17.2":0.02259,"17.3":0.03389,"17.4":0.08484,"17.5":1.55362,"17.6":0.01202,"18.0":0.01586},P:{"20":0.07092,"22":0.43567,"24":2.76598,"25":1.45898,_:"4 21 23 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.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":0.72752,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":47.5794},R:{_:"0"},M:{"0":1.82148},Q:{_:"14.9"},O:{"0":0.65746},H:{"0":0}}; 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..b12265e --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NU.js @@ -0,0 +1 @@ +module.exports={C:{_:"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 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 3.5 3.6"},D:{"126":0.1401,_:"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 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 127 128 129 130"},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 99 100 101 102 103 104 105 106 107 108 109 110 111 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{_:"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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127"},E:{_:"0 4 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.2-15.3 15.5 16.0 16.4 17.0 18.0","15.1":0.07005,"15.4":0.1401,"15.6":1.20486,"16.1":0.07005,"16.2":0.21482,"16.3":1.20486,"16.5":0.21482,"16.6":8.79828,"17.1":0.07005,"17.2":0.56974,"17.3":0.07005,"17.4":2.34434,"17.5":30.80332,"17.6":0.49502},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.01026,"5.0-5.1":0.00513,"6.0-6.1":0.03079,"7.0-7.1":0.03079,"8.1-8.4":0,"9.0-9.2":0.02566,"9.3":0.10265,"10.0-10.2":0.02053,"10.3":0.17963,"11.0-11.2":0.47217,"11.3-11.4":0.05132,"12.0-12.1":0.03593,"12.2-12.5":0.66206,"13.0-13.1":0.01026,"13.2":0.10778,"13.3":0.03593,"13.4-13.7":0.15397,"14.0-14.4":0.35413,"14.5-14.8":0.40032,"15.0-15.1":0.20016,"15.2-15.3":0.21555,"15.4":0.24635,"15.5":0.29767,"15.6-15.8":2.73036,"16.0":0.54915,"16.1":1.16502,"16.2":0.58508,"16.3":0.98026,"16.4":0.23095,"16.5":0.41571,"16.6-16.7":3.40782,"17.0":0.30794,"17.1":0.49783,"17.2":0.48243,"17.3":0.72365,"17.4":1.81169,"17.5":33.17491,"17.6":0.25661,"18.0":0.33873},P:{_:"4 20 21 22 23 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.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":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":1.97743},R:{_:"0"},M:{_:"0"},Q:{_:"14.9"},O:{_:"0"},H:{"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..9fdbaec --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NZ.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00379,"37":0.01136,"48":0.00379,"52":0.0265,"54":0.00379,"78":0.03028,"88":0.00379,"102":0.00757,"103":0.00379,"105":0.00379,"113":0.00757,"114":0.00379,"115":0.20439,"118":0.00379,"121":0.00379,"122":0.00379,"123":0.00379,"124":0.00757,"125":0.01514,"126":0.02271,"127":0.67752,"128":1.06359,"129":0.01514,_:"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 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 66 67 68 69 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 99 100 101 104 106 107 108 109 110 111 112 116 117 119 120 130 131 3.5 3.6"},D:{"34":0.00379,"38":0.08706,"39":0.03407,"40":0.03407,"41":0.03407,"42":0.03785,"43":0.03785,"44":0.03785,"45":0.03785,"46":0.03407,"47":0.03785,"48":0.03785,"49":0.04542,"50":0.03785,"51":0.03785,"52":0.03407,"53":0.03785,"54":0.03785,"55":0.03785,"56":0.03785,"57":0.03785,"58":0.03785,"59":0.04921,"60":0.03407,"61":0.00757,"63":0.00379,"65":0.00379,"66":0.00379,"68":0.00379,"69":0.00379,"71":0.00379,"72":0.00757,"74":0.00379,"75":0.00379,"76":0.00379,"77":0.00379,"79":0.08706,"80":0.00379,"81":0.02271,"83":0.01136,"84":0.00379,"86":0.00379,"87":0.06056,"88":0.01136,"89":0.00379,"90":0.07192,"91":0.00757,"92":0.00379,"93":0.06056,"94":0.06056,"95":0.00757,"96":0.00379,"97":0.03407,"98":0.00757,"99":0.01514,"100":0.00379,"101":0.00379,"102":0.00757,"103":0.14762,"104":0.01136,"105":0.00757,"106":0.01136,"107":0.01893,"108":0.01893,"109":0.50719,"110":0.01136,"111":0.01514,"112":0.01136,"113":0.20439,"114":0.21196,"115":0.00379,"116":0.21953,"117":0.01136,"118":0.01514,"119":0.07949,"120":0.19682,"121":0.09463,"122":0.15897,"123":0.12869,"124":0.26874,"125":0.84027,"126":16.23387,"127":1.79788,"128":0.03028,_:"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 62 64 67 70 73 78 85 129 130"},F:{"45":0.00379,"46":0.01893,"83":0.00757,"84":0.00379,"89":0.00379,"95":0.01514,"109":0.33687,"110":0.00757,"111":0.23846,_:"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 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 85 86 87 88 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00757,"92":0.00379,"104":0.00379,"105":0.01514,"109":0.03028,"110":0.00379,"111":0.00379,"113":0.01893,"114":0.00757,"117":0.00379,"118":0.00757,"119":0.01514,"120":0.02271,"121":0.01136,"122":0.01514,"123":0.01514,"124":0.0265,"125":0.14383,"126":4.68205,"127":0.62831,_:"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 106 107 108 112 115 116"},E:{"12":0.00379,"13":0.01893,"14":0.06813,"15":0.00757,_:"0 4 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.01136,"13.1":0.10977,"14.1":0.15519,"15.1":0.01893,"15.2-15.3":0.0265,"15.4":0.02271,"15.5":0.05678,"15.6":0.46177,"16.0":0.05299,"16.1":0.08706,"16.2":0.06056,"16.3":0.14005,"16.4":0.03028,"16.5":0.06435,"16.6":0.61317,"17.0":0.02271,"17.1":0.06813,"17.2":0.06435,"17.3":0.09463,"17.4":0.17411,"17.5":3.22104,"17.6":0.01136,"18.0":0.01136},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00228,"5.0-5.1":0.00114,"6.0-6.1":0.00683,"7.0-7.1":0.00683,"8.1-8.4":0,"9.0-9.2":0.00569,"9.3":0.02277,"10.0-10.2":0.00455,"10.3":0.03985,"11.0-11.2":0.10475,"11.3-11.4":0.01139,"12.0-12.1":0.00797,"12.2-12.5":0.14688,"13.0-13.1":0.00228,"13.2":0.02391,"13.3":0.00797,"13.4-13.7":0.03416,"14.0-14.4":0.07856,"14.5-14.8":0.08881,"15.0-15.1":0.0444,"15.2-15.3":0.04782,"15.4":0.05465,"15.5":0.06604,"15.6-15.8":0.60573,"16.0":0.12183,"16.1":0.25846,"16.2":0.1298,"16.3":0.21747,"16.4":0.05124,"16.5":0.09223,"16.6-16.7":0.75602,"17.0":0.06832,"17.1":0.11044,"17.2":0.10703,"17.3":0.16054,"17.4":0.40192,"17.5":7.35983,"17.6":0.05693,"18.0":0.07515},P:{"4":0.1584,"20":0.01056,"21":0.03168,"22":0.04224,"23":0.04224,"24":0.04224,"25":1.584,"5.0-5.4":0.04224,"6.2-6.4":0.02112,_:"7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 15.0 18.0 19.0","14.0":0.01056,"16.0":0.01056,"17.0":0.01056},I:{"0":0.02477,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.14916,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.03255,"11":0.1302,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":47.96007},R:{_:"0"},M:{"0":0.47856},Q:{"14.9":0.01243},O:{"0":0.04972},H:{"0":0}}; 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..858b396 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/OM.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00852,"66":0.00213,"68":0.00213,"103":0.00213,"105":0.00213,"106":0.00213,"111":0.00213,"115":0.04471,"124":0.00213,"125":0.00426,"126":0.00426,"127":0.09368,"128":0.15542,"129":0.00213,_:"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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 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 104 107 108 109 110 112 113 114 116 117 118 119 120 121 122 123 130 131 3.5 3.6"},D:{"11":0.01065,"34":0.00213,"38":0.01703,"47":0.00213,"49":0.00213,"56":0.00213,"58":0.23419,"62":0.00426,"64":0.00213,"65":0.00426,"66":0.00426,"67":0.00213,"68":0.01065,"69":0.03406,"70":0.00213,"72":0.00426,"73":0.00639,"74":0.00426,"75":0.00426,"76":0.01703,"78":0.00213,"79":0.06174,"80":0.00213,"81":0.0149,"83":0.02981,"85":0.00213,"86":0.00639,"87":0.05535,"88":0.02342,"89":0.00213,"90":0.00639,"91":0.01277,"93":0.02981,"94":0.00639,"95":0.03832,"96":0.00426,"97":0.00213,"98":0.02342,"99":0.04258,"100":0.00426,"101":0.00639,"102":0.00426,"103":0.18735,"104":0.00426,"105":0.00426,"106":0.01703,"107":0.00852,"108":0.01277,"109":1.0645,"110":0.04258,"111":0.01703,"112":0.01065,"113":0.0149,"114":0.01065,"115":0.00639,"116":0.03406,"117":0.00639,"118":0.00852,"119":0.08303,"120":0.03832,"121":0.01703,"122":0.0809,"123":0.04258,"124":0.07664,"125":0.15329,"126":10.20004,"127":1.44985,"128":0.01065,_:"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 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 57 59 60 61 63 71 77 84 92 129 130"},F:{"36":0.00213,"46":0.00852,"79":0.00213,"83":0.00852,"95":0.01916,"106":0.00213,"109":0.07026,"111":0.12348,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 80 81 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 107 108 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00213,"15":0.00213,"18":0.00426,"84":0.00213,"92":0.00639,"94":0.00213,"100":0.00213,"101":0.00213,"107":0.00426,"108":0.00426,"109":0.03832,"110":0.00639,"114":0.00213,"115":0.00213,"117":0.00213,"118":0.00426,"119":0.00213,"120":0.00426,"121":0.00213,"122":0.00852,"123":0.00426,"124":0.01065,"125":0.03832,"126":1.4243,"127":0.27251,_:"12 13 16 17 79 80 81 83 85 86 87 88 89 90 91 93 95 96 97 98 99 102 103 104 105 106 111 112 113 116"},E:{"14":0.00852,"15":0.00213,_:"0 4 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","13.1":0.01916,"14.1":0.05323,"15.1":0.00213,"15.2-15.3":0.00213,"15.4":0.00426,"15.5":0.00852,"15.6":0.08729,"16.0":0.00426,"16.1":0.01277,"16.2":0.01065,"16.3":0.02342,"16.4":0.00639,"16.5":0.01277,"16.6":0.066,"17.0":0.00852,"17.1":0.01065,"17.2":0.00639,"17.3":0.0149,"17.4":0.04684,"17.5":0.50032,"17.6":0.00426,"18.0":0.00426},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00387,"5.0-5.1":0.00194,"6.0-6.1":0.01161,"7.0-7.1":0.01161,"8.1-8.4":0,"9.0-9.2":0.00968,"9.3":0.03871,"10.0-10.2":0.00774,"10.3":0.06774,"11.0-11.2":0.17806,"11.3-11.4":0.01935,"12.0-12.1":0.01355,"12.2-12.5":0.24968,"13.0-13.1":0.00387,"13.2":0.04065,"13.3":0.01355,"13.4-13.7":0.05806,"14.0-14.4":0.13355,"14.5-14.8":0.15097,"15.0-15.1":0.07548,"15.2-15.3":0.08129,"15.4":0.0929,"15.5":0.11226,"15.6-15.8":1.02967,"16.0":0.2071,"16.1":0.43935,"16.2":0.22064,"16.3":0.36968,"16.4":0.0871,"16.5":0.15677,"16.6-16.7":1.28516,"17.0":0.11613,"17.1":0.18774,"17.2":0.18194,"17.3":0.2729,"17.4":0.68322,"17.5":12.51094,"17.6":0.09677,"18.0":0.12774},P:{"4":0.08288,"20":0.03108,"21":0.15541,"22":0.18649,"23":0.14505,"24":0.13469,"25":2.33114,"5.0-5.4":0.03108,"6.2-6.4":0.01036,"7.2-7.4":0.17613,_:"8.2 10.1","9.2":0.01036,"11.1-11.2":0.0518,"12.0":0.02072,"13.0":0.08288,"14.0":0.0518,"15.0":0.01036,"16.0":0.03108,"17.0":0.07252,"18.0":0.01036,"19.0":0.0518},I:{"0":0.1255,"3":0,"4":0.00001,"2.1":0,"2.2":0.00003,"2.3":0,"4.1":0.00008,"4.2-4.3":0.00005,"4.4":0,"4.4.3-4.4.4":0.00021},K:{"0":0.71626,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00662,"11":0.02318,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":55.98546},R:{_:"0"},M:{"0":0.10232},Q:{_:"14.9"},O:{"0":1.11768},H:{"0":0}}; 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..acb6fd2 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PA.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.04766,"78":0.011,"88":0.00367,"97":0.01833,"102":0.00367,"106":0.00733,"108":0.00367,"113":0.00367,"115":0.06965,"117":0.00367,"119":0.00367,"120":0.03666,"121":0.00367,"123":0.00367,"125":0.00367,"126":0.022,"127":0.37027,"128":0.66721,_:"2 3 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 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 98 99 100 101 103 104 105 107 109 110 111 112 114 116 118 122 124 129 130 131 3.5","3.6":0.00367},D:{"36":0.00367,"38":0.00367,"41":0.00367,"43":0.00367,"44":0.00733,"45":0.00367,"46":0.00367,"47":0.011,"49":0.00733,"50":0.00367,"51":0.00367,"62":0.00367,"63":0.00367,"68":0.00733,"69":0.00367,"70":0.011,"72":0.00367,"73":0.00367,"74":0.011,"75":0.00733,"76":0.00367,"77":0.00367,"78":0.02933,"79":0.05499,"81":0.01466,"83":0.05499,"84":0.00733,"85":0.00367,"86":0.00367,"87":0.05132,"88":0.01466,"89":0.05499,"90":0.00367,"91":0.04399,"92":0.00367,"93":0.02566,"94":0.022,"95":0.00367,"97":0.011,"98":0.011,"99":0.01466,"100":0.00367,"102":0.00367,"103":0.07699,"104":0.00367,"105":0.022,"106":0.02566,"107":0.04399,"108":0.03666,"109":0.84685,"110":0.03666,"111":0.022,"112":0.011,"113":0.01466,"114":0.04399,"115":0.03299,"116":0.1943,"117":0.011,"118":0.011,"119":0.02933,"120":0.35927,"121":0.05499,"122":0.1833,"123":0.07699,"124":0.15031,"125":0.34094,"126":17.77277,"127":2.03463,"128":0.00733,_:"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 37 39 40 42 48 52 53 54 55 56 57 58 59 60 61 64 65 66 67 71 80 96 101 129 130"},F:{"46":0.01833,"83":0.01466,"95":0.01833,"97":0.00733,"109":0.93116,"110":0.03666,"111":0.53157,_:"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 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 84 85 86 87 88 89 90 91 92 93 94 96 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00367,"17":0.00367,"18":0.00367,"92":0.01466,"100":0.00367,"108":0.00733,"109":0.04033,"112":0.00367,"113":0.00367,"114":0.00733,"115":0.00367,"116":0.00367,"117":0.00367,"118":0.011,"119":0.00733,"120":0.02933,"121":0.01466,"122":0.01466,"123":0.011,"124":0.02933,"125":0.09898,"126":4.68515,"127":0.63055,_:"12 13 14 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 110 111"},E:{"9":0.011,"12":0.00367,"14":0.00733,_:"0 4 5 6 7 8 10 11 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.00733,"12.1":0.00733,"13.1":0.022,"14.1":0.06599,"15.1":0.00367,"15.2-15.3":0.00733,"15.4":0.00733,"15.5":0.01466,"15.6":0.21263,"16.0":0.00733,"16.1":0.03299,"16.2":0.01466,"16.3":0.04033,"16.4":0.05132,"16.5":0.01833,"16.6":0.16497,"17.0":0.011,"17.1":0.022,"17.2":0.03299,"17.3":0.02566,"17.4":0.06599,"17.5":0.99349,"17.6":0.00733,"18.0":0.00733},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00241,"5.0-5.1":0.0012,"6.0-6.1":0.00723,"7.0-7.1":0.00723,"8.1-8.4":0,"9.0-9.2":0.00602,"9.3":0.02409,"10.0-10.2":0.00482,"10.3":0.04215,"11.0-11.2":0.11079,"11.3-11.4":0.01204,"12.0-12.1":0.00843,"12.2-12.5":0.15535,"13.0-13.1":0.00241,"13.2":0.02529,"13.3":0.00843,"13.4-13.7":0.03613,"14.0-14.4":0.0831,"14.5-14.8":0.09393,"15.0-15.1":0.04697,"15.2-15.3":0.05058,"15.4":0.05781,"15.5":0.06985,"15.6-15.8":0.64068,"16.0":0.12886,"16.1":0.27337,"16.2":0.13729,"16.3":0.23002,"16.4":0.05419,"16.5":0.09755,"16.6-16.7":0.79964,"17.0":0.07226,"17.1":0.11682,"17.2":0.1132,"17.3":0.1698,"17.4":0.42511,"17.5":7.78449,"17.6":0.06021,"18.0":0.07948},P:{"4":0.1454,"20":0.04154,"21":0.11425,"22":0.21811,"23":0.15579,"24":0.10386,"25":2.28493,_:"5.0-5.4 8.2 9.2 10.1 12.0 14.0 15.0 16.0 18.0","6.2-6.4":0.02077,"7.2-7.4":0.15579,"11.1-11.2":0.03116,"13.0":0.02077,"17.0":0.01039,"19.0":0.02077},I:{"0":0.08838,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00015},K:{"0":0.33576,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.03079,"9":0.0077,"10":0.0077,"11":0.03079,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":48.89856},R:{_:"0"},M:{"0":0.33576},Q:{"14.9":0.00634},O:{"0":0.08869},H:{"0":0}}; 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..10193ab --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PE.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.02082,"52":0.03124,"54":0.00521,"88":0.0833,"103":0.00521,"115":0.11974,"120":0.00521,"122":0.00521,"123":0.01041,"124":0.00521,"125":0.00521,"126":0.01041,"127":0.39045,"128":0.6039,"129":0.00521,_:"2 3 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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 121 130 131 3.5 3.6"},D:{"38":0.02603,"47":0.00521,"49":0.01562,"53":0.00521,"55":0.00521,"62":0.00521,"63":0.00521,"70":0.00521,"71":0.00521,"73":0.00521,"74":0.00521,"79":0.13536,"80":0.00521,"81":0.01041,"83":0.00521,"85":0.00521,"86":0.00521,"87":0.09891,"88":0.01562,"90":0.00521,"91":0.10412,"92":0.01041,"93":0.02082,"94":0.03644,"95":0.01041,"96":0.02082,"97":0.01562,"98":0.00521,"99":0.02082,"100":0.00521,"101":0.00521,"102":0.00521,"103":0.04685,"104":0.01562,"105":0.01041,"106":0.02603,"107":0.02082,"108":0.02603,"109":2.68109,"110":0.03644,"111":0.01562,"112":0.01562,"113":0.01562,"114":0.03124,"115":0.01041,"116":0.06768,"117":0.02082,"118":0.02082,"119":0.04165,"120":0.10933,"121":0.23948,"122":0.25509,"123":0.18742,"124":0.24468,"125":0.48416,"126":32.86027,"127":3.60776,"128":0.01041,_:"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 51 52 54 56 57 58 59 60 61 64 65 66 67 68 69 72 75 76 77 78 84 89 129 130"},F:{"36":0.00521,"46":0.00521,"78":0.00521,"83":0.01041,"95":0.03644,"107":0.00521,"109":1.52536,"110":0.00521,"111":0.79131,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 79 80 81 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00521,"92":0.01562,"100":0.00521,"109":0.04685,"113":0.00521,"114":0.00521,"118":0.00521,"119":0.01562,"120":0.02082,"121":0.02082,"122":0.01562,"123":0.01041,"124":0.03644,"125":0.04685,"126":3.28499,"127":0.39566,_:"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 101 102 103 104 105 106 107 108 110 111 112 115 116 117"},E:{"14":0.00521,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3 17.6","5.1":0.00521,"13.1":0.01041,"14.1":0.01562,"15.1":0.00521,"15.4":0.01041,"15.5":0.00521,"15.6":0.03124,"16.0":0.00521,"16.1":0.01041,"16.2":0.00521,"16.3":0.01562,"16.4":0.00521,"16.5":0.00521,"16.6":0.04165,"17.0":0.01041,"17.1":0.01562,"17.2":0.01562,"17.3":0.01562,"17.4":0.03644,"17.5":0.27592,"18.0":0.00521},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0006,"5.0-5.1":0.0003,"6.0-6.1":0.00181,"7.0-7.1":0.00181,"8.1-8.4":0,"9.0-9.2":0.00151,"9.3":0.00603,"10.0-10.2":0.00121,"10.3":0.01055,"11.0-11.2":0.02774,"11.3-11.4":0.00302,"12.0-12.1":0.00211,"12.2-12.5":0.0389,"13.0-13.1":0.0006,"13.2":0.00633,"13.3":0.00211,"13.4-13.7":0.00905,"14.0-14.4":0.02081,"14.5-14.8":0.02352,"15.0-15.1":0.01176,"15.2-15.3":0.01266,"15.4":0.01447,"15.5":0.01749,"15.6-15.8":0.16042,"16.0":0.03227,"16.1":0.06845,"16.2":0.03438,"16.3":0.05759,"16.4":0.01357,"16.5":0.02442,"16.6-16.7":0.20022,"17.0":0.01809,"17.1":0.02925,"17.2":0.02835,"17.3":0.04252,"17.4":0.10644,"17.5":1.94917,"17.6":0.01508,"18.0":0.0199},P:{"4":0.12637,"20":0.01053,"21":0.02106,"22":0.06319,"23":0.06319,"24":0.04212,"25":0.6108,"5.0-5.4":0.01053,"6.2-6.4":0.02106,"7.2-7.4":0.08425,_:"8.2 9.2 10.1 12.0 14.0 15.0 18.0","11.1-11.2":0.01053,"13.0":0.02106,"16.0":0.02106,"17.0":0.01053,"19.0":0.03159},I:{"0":0.04777,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":0.20614,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00833,"11":0.03332,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":44.80934},R:{_:"0"},M:{"0":0.11985},Q:{"14.9":0.00479},O:{"0":0.02876},H:{"0":0}}; 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..efa980f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PF.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.0044,"67":0.02641,"68":0.03522,"72":0.04402,"75":0.13646,"78":0.13206,"82":0.03962,"91":0.06603,"102":0.02201,"103":0.11885,"104":0.0044,"105":0.01761,"111":0.01761,"115":0.67351,"116":0.03962,"121":0.01321,"123":0.01761,"124":0.0088,"125":0.13646,"126":0.04842,"127":1.05648,"128":1.55831,_:"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 69 70 71 73 74 76 77 79 80 81 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 106 107 108 109 110 112 113 114 117 118 119 120 122 129 130 131 3.5 3.6"},D:{"41":0.01321,"57":0.0044,"65":0.0044,"67":0.02201,"70":0.01761,"71":0.03081,"72":0.0044,"74":0.01321,"76":0.03081,"78":0.0044,"79":0.18488,"80":0.01761,"81":0.13646,"83":0.01321,"84":0.02641,"85":0.34336,"86":0.03962,"87":0.35216,"88":0.0044,"92":0.0088,"93":0.0044,"94":0.0044,"98":0.14527,"100":0.0044,"102":0.08804,"103":0.07924,"104":0.32575,"106":0.03081,"107":0.0044,"109":0.79676,"110":0.0044,"111":0.0044,"112":0.0088,"114":0.0044,"115":0.01761,"116":0.24211,"117":0.0044,"119":0.02641,"120":0.01321,"121":0.05723,"122":0.02201,"123":0.03081,"124":0.08364,"125":0.24651,"126":12.7614,"127":1.57151,_:"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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 58 59 60 61 62 63 64 66 68 69 73 75 77 89 90 91 95 96 97 99 101 105 108 113 118 128 129 130"},F:{"46":0.0088,"65":0.03081,"81":0.0044,"83":0.07483,"95":0.0044,"109":0.33015,"110":0.0088,"111":0.12766,_:"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 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.02641,"86":0.01761,"92":0.0044,"105":0.01321,"109":0.0088,"111":0.0044,"119":0.01321,"120":0.0088,"122":0.0088,"123":0.02201,"124":0.02201,"125":0.05723,"126":4.86861,"127":0.63389,_:"12 13 14 15 16 17 79 80 81 83 84 85 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 106 107 108 110 112 113 114 115 116 117 118 121"},E:{"13":0.01761,"14":0.07483,"15":0.0044,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.0044,"13.1":0.19369,"14.1":0.08364,"15.1":0.03522,"15.2-15.3":0.03522,"15.4":0.02641,"15.5":0.03962,"15.6":0.41819,"16.0":0.14086,"16.1":0.18929,"16.2":0.11445,"16.3":0.46661,"16.4":0.07924,"16.5":0.12766,"16.6":1.51869,"17.0":0.07483,"17.1":0.2245,"17.2":0.17608,"17.3":0.4358,"17.4":0.82317,"17.5":7.44818,"17.6":0.03962,"18.0":0.0044},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00524,"5.0-5.1":0.00262,"6.0-6.1":0.01572,"7.0-7.1":0.01572,"8.1-8.4":0,"9.0-9.2":0.0131,"9.3":0.05241,"10.0-10.2":0.01048,"10.3":0.09171,"11.0-11.2":0.24108,"11.3-11.4":0.0262,"12.0-12.1":0.01834,"12.2-12.5":0.33803,"13.0-13.1":0.00524,"13.2":0.05503,"13.3":0.01834,"13.4-13.7":0.07861,"14.0-14.4":0.18081,"14.5-14.8":0.20439,"15.0-15.1":0.1022,"15.2-15.3":0.11006,"15.4":0.12578,"15.5":0.15198,"15.6-15.8":1.39407,"16.0":0.28039,"16.1":0.59484,"16.2":0.29873,"16.3":0.5005,"16.4":0.11792,"16.5":0.21225,"16.6-16.7":1.73996,"17.0":0.15723,"17.1":0.25418,"17.2":0.24632,"17.3":0.36948,"17.4":0.92501,"17.5":16.93842,"17.6":0.13102,"18.0":0.17295},P:{"4":0.02125,"20":0.01063,"21":0.02125,"22":0.23376,"23":0.28689,"24":0.10626,"25":2.38013,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 14.0 15.0 16.0","7.2-7.4":0.73317,"12.0":0.03188,"13.0":0.01063,"17.0":0.03188,"18.0":0.02125,"19.0":0.01063},I:{"0":0.01674,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.30229,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0044,_:"6 7 8 9 10 5.5"},S:{"2.5":0.0112,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":26.25604},R:{_:"0"},M:{"0":0.47023},Q:{_:"14.9"},O:{"0":0.17354},H:{"0":0}}; 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..70375c2 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PG.js @@ -0,0 +1 @@ +module.exports={C:{"68":0.00313,"89":0.00313,"91":0.00313,"99":0.00625,"110":0.00625,"112":0.00313,"113":0.00313,"115":0.03438,"116":0.00313,"118":0.00313,"119":0.0125,"120":0.00313,"122":0.00313,"123":0.00938,"124":0.01875,"125":0.0125,"126":0.02813,"127":0.35313,"128":0.475,"129":0.00625,_:"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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 92 93 94 95 96 97 98 100 101 102 103 104 105 106 107 108 109 111 114 117 121 130 131 3.5 3.6"},D:{"11":0.00938,"32":0.00625,"36":0.00313,"39":0.00313,"43":0.00625,"47":0.00313,"50":0.00313,"65":0.01563,"67":0.00938,"68":0.00313,"69":0.0125,"70":0.02813,"71":0.00313,"73":0.00313,"74":0.00625,"75":0.00313,"78":0.00625,"79":0.00313,"80":0.00313,"81":0.01563,"85":0.00313,"86":0.00313,"87":0.01563,"88":0.0875,"89":0.01563,"90":0.03125,"92":0.00313,"93":0.00625,"94":0.00313,"95":0.00313,"96":0.00313,"98":0.00313,"99":0.04063,"100":0.00313,"101":0.00313,"102":0.0125,"103":0.04375,"104":0.00313,"105":0.04063,"106":0.01875,"107":0.00313,"108":0.00313,"109":0.71563,"110":0.00313,"111":0.02188,"112":0.00938,"113":0.02188,"114":0.00313,"115":0.01563,"116":0.04375,"117":0.025,"118":0.0125,"119":0.30938,"120":0.3,"121":0.08125,"122":0.05625,"123":0.07813,"124":0.10938,"125":0.175,"126":8.05,"127":0.9625,"128":0.00313,_:"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 33 34 35 37 38 40 41 42 44 45 46 48 49 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 72 76 77 83 84 91 97 129 130"},F:{"73":0.00313,"83":0.075,"95":0.00313,"101":0.0125,"109":0.02813,"110":0.07813,"111":0.25625,_:"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 74 75 76 77 78 79 80 81 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00625,"13":0.00313,"14":0.00313,"15":0.01563,"16":0.00625,"17":0.00625,"18":0.05,"84":0.025,"85":0.00625,"89":0.04375,"90":0.0125,"91":0.00625,"92":0.05938,"99":0.00313,"100":0.05313,"103":0.00313,"108":0.00313,"109":0.0125,"110":0.00313,"111":0.00313,"113":0.01563,"114":0.01875,"115":0.0125,"116":0.00938,"117":0.02188,"118":0.01875,"119":0.02813,"120":0.06875,"121":0.03125,"122":0.03125,"123":0.06563,"124":0.075,"125":0.24375,"126":3.9,"127":0.4625,_:"79 80 81 83 86 87 88 93 94 95 96 97 98 101 102 104 105 106 107 112"},E:{"14":0.00938,_:"0 4 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 12.1 15.1 15.4 16.0 16.3 17.6 18.0","13.1":0.00313,"14.1":0.00625,"15.2-15.3":0.00938,"15.5":0.00938,"15.6":0.01563,"16.1":0.00313,"16.2":0.00313,"16.4":0.00938,"16.5":0.00313,"16.6":0.01563,"17.0":0.00313,"17.1":0.01563,"17.2":0.00313,"17.3":0.01563,"17.4":0.0125,"17.5":0.13438},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00048,"5.0-5.1":0.00024,"6.0-6.1":0.00144,"7.0-7.1":0.00144,"8.1-8.4":0,"9.0-9.2":0.0012,"9.3":0.00479,"10.0-10.2":0.00096,"10.3":0.00837,"11.0-11.2":0.02201,"11.3-11.4":0.00239,"12.0-12.1":0.00167,"12.2-12.5":0.03086,"13.0-13.1":0.00048,"13.2":0.00502,"13.3":0.00167,"13.4-13.7":0.00718,"14.0-14.4":0.01651,"14.5-14.8":0.01866,"15.0-15.1":0.00933,"15.2-15.3":0.01005,"15.4":0.01148,"15.5":0.01388,"15.6-15.8":0.12728,"16.0":0.0256,"16.1":0.05431,"16.2":0.02727,"16.3":0.0457,"16.4":0.01077,"16.5":0.01938,"16.6-16.7":0.15886,"17.0":0.01436,"17.1":0.02321,"17.2":0.02249,"17.3":0.03373,"17.4":0.08446,"17.5":1.54651,"17.6":0.01196,"18.0":0.01579},P:{"4":0.04093,"20":0.04093,"21":0.25583,"22":0.53214,"23":0.29677,"24":0.26607,"25":1.82154,_:"5.0-5.4 6.2-6.4 8.2 10.1 12.0","7.2-7.4":0.14327,"9.2":0.05117,"11.1-11.2":0.02047,"13.0":0.02047,"14.0":0.0307,"15.0":0.0307,"16.0":0.07163,"17.0":0.01023,"18.0":0.02047,"19.0":0.14327},I:{"0":0.29459,"3":0,"4":0.00003,"2.1":0,"2.2":0.00006,"2.3":0,"4.1":0.00018,"4.2-4.3":0.00012,"4.4":0,"4.4.3-4.4.4":0.0005},K:{"0":1.16625,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.00365,"11":0.01823,_:"6 7 8 9 5.5"},S:{"2.5":0.00688,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":71.96125},R:{_:"0"},M:{"0":0.09625},Q:{"14.9":0.02063},O:{"0":0.85938},H:{"0":0.03}}; 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..934bedf --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PH.js @@ -0,0 +1 @@ +module.exports={C:{"41":0.00501,"52":0.00501,"56":0.07517,"59":0.00501,"78":0.00501,"115":0.11024,"120":0.01002,"121":0.00501,"122":0.00501,"123":0.00501,"124":0.00501,"125":0.01002,"126":0.01002,"127":0.26057,"128":0.40088,"129":0.01002,_:"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 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 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 112 113 114 116 117 118 119 130 131 3.5 3.6"},D:{"49":0.00501,"56":0.00501,"66":0.02004,"69":0.00501,"70":0.00501,"73":0.01002,"74":0.00501,"75":0.00501,"76":0.01002,"78":0.01002,"79":0.04009,"80":0.02004,"81":0.00501,"83":0.02506,"84":0.00501,"85":0.00501,"86":0.01002,"87":0.09521,"88":0.0451,"89":0.00501,"90":0.00501,"91":0.03007,"92":0.00501,"93":0.02506,"94":0.02506,"95":0.01002,"96":0.00501,"97":0.00501,"98":0.01503,"99":0.05011,"100":0.00501,"101":0.01002,"102":0.00501,"103":1.52334,"104":0.01503,"105":0.01503,"106":0.03508,"107":0.01002,"108":0.01503,"109":1.15253,"110":0.01002,"111":0.01503,"112":0.02004,"113":0.01503,"114":0.05011,"115":0.01503,"116":0.14532,"117":0.04009,"118":0.02506,"119":0.07015,"120":0.10523,"121":0.12026,"122":0.19543,"123":0.14532,"124":0.28062,"125":0.7266,"126":28.44745,"127":3.41249,"128":0.06514,_:"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 57 58 59 60 61 62 63 64 65 67 68 71 72 77 129 130"},F:{"28":0.00501,"46":0.01503,"83":0.01503,"95":0.01503,"109":0.71156,"110":0.00501,"111":0.52616,_:"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 71 72 73 74 75 76 77 78 79 80 81 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00501,"18":0.00501,"92":0.01503,"100":0.00501,"109":0.02004,"114":0.00501,"117":0.00501,"118":0.00501,"119":0.00501,"120":0.06514,"121":0.00501,"122":0.03508,"123":0.01002,"124":0.02506,"125":0.0902,"126":5.31667,"127":0.82682,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 115 116"},E:{"13":0.01503,"14":0.01002,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00501,"12.1":0.00501,"13.1":0.01503,"14.1":0.03007,"15.1":0.02004,"15.2-15.3":0.00501,"15.4":0.01002,"15.5":0.01503,"15.6":0.10022,"16.0":0.01503,"16.1":0.02506,"16.2":0.02506,"16.3":0.04009,"16.4":0.01503,"16.5":0.02506,"16.6":0.12026,"17.0":0.01503,"17.1":0.03508,"17.2":0.03007,"17.3":0.03508,"17.4":0.08519,"17.5":0.84185,"17.6":0.00501,"18.0":0.01002},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0015,"5.0-5.1":0.00075,"6.0-6.1":0.00451,"7.0-7.1":0.00451,"8.1-8.4":0,"9.0-9.2":0.00376,"9.3":0.01504,"10.0-10.2":0.00301,"10.3":0.02633,"11.0-11.2":0.0692,"11.3-11.4":0.00752,"12.0-12.1":0.00527,"12.2-12.5":0.09703,"13.0-13.1":0.0015,"13.2":0.0158,"13.3":0.00527,"13.4-13.7":0.02257,"14.0-14.4":0.0519,"14.5-14.8":0.05867,"15.0-15.1":0.02934,"15.2-15.3":0.03159,"15.4":0.03611,"15.5":0.04363,"15.6-15.8":0.40017,"16.0":0.08048,"16.1":0.17075,"16.2":0.08575,"16.3":0.14367,"16.4":0.03385,"16.5":0.06093,"16.6-16.7":0.49945,"17.0":0.04513,"17.1":0.07296,"17.2":0.07071,"17.3":0.10606,"17.4":0.26552,"17.5":4.86216,"17.6":0.03761,"18.0":0.04964},P:{"4":0.10414,"20":0.01041,"21":0.02083,"22":0.02083,"23":0.03124,"24":0.03124,"25":0.69771,"5.0-5.4":0.01041,"6.2-6.4":0.02083,"7.2-7.4":0.01041,_:"8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0","17.0":0.01041,"18.0":0.01041,"19.0":0.01041},I:{"0":0.06462,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00011},K:{"0":0.44393,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.23051,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":42.18867},R:{_:"0"},M:{"0":0.09976},Q:{"14.9":0.00499},O:{"0":0.31424},H:{"0":0}}; 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..91f662f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PK.js @@ -0,0 +1 @@ +module.exports={C:{"47":0.00232,"52":0.00465,"102":0.00232,"103":0.00465,"105":0.00465,"106":0.00465,"107":0.00465,"108":0.00465,"109":0.00697,"110":0.00465,"111":0.00465,"112":0.00232,"115":0.14867,"123":0.00929,"124":0.00465,"125":0.00465,"126":0.00929,"127":0.13473,"128":0.2323,"129":0.00232,_:"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 48 49 50 51 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 104 113 114 116 117 118 119 120 121 122 130 131 3.5 3.6"},D:{"38":0.00232,"43":0.00232,"44":0.00232,"48":0.00232,"49":0.00465,"50":0.00232,"53":0.00465,"56":0.00929,"57":0.00232,"58":0.00232,"61":0.00232,"62":0.00232,"63":0.00232,"64":0.00929,"65":0.00465,"66":0.00232,"68":0.01162,"69":0.00465,"70":0.00465,"71":0.00465,"72":0.00465,"73":0.00697,"74":0.01162,"75":0.00929,"76":0.00929,"77":0.00465,"78":0.00232,"79":0.00697,"80":0.00929,"81":0.00697,"83":0.00929,"84":0.00929,"85":0.02323,"86":0.00697,"87":0.00929,"88":0.00465,"89":0.00465,"90":0.00465,"91":0.01162,"92":0.00232,"93":0.0302,"94":0.00232,"95":0.01626,"96":0.00232,"97":0.00465,"98":0.00465,"99":0.00465,"100":0.00232,"101":0.00232,"102":0.01162,"103":0.0906,"104":0.01394,"105":0.01626,"106":0.05575,"107":0.10221,"108":0.06969,"109":2.23473,"110":0.03485,"111":0.04414,"112":0.03485,"113":0.00465,"114":0.01162,"115":0.00465,"116":0.03252,"117":0.00929,"118":0.01394,"119":0.0302,"120":0.04878,"121":0.0302,"122":0.04878,"123":0.05111,"124":0.09757,"125":0.19049,"126":11.76135,"127":1.70044,"128":0.01394,"129":0.00232,_:"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 45 46 47 51 52 54 55 59 60 67 130"},F:{"36":0.00232,"79":0.00232,"83":0.02555,"84":0.00232,"91":0.00232,"92":0.00232,"93":0.00232,"94":0.00232,"95":0.04181,"106":0.00232,"107":0.00232,"109":0.05808,"110":0.00465,"111":0.21139,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 80 81 82 85 86 87 88 89 90 96 97 98 99 100 101 102 103 104 105 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00697,"14":0.00232,"15":0.00465,"16":0.00697,"17":0.00232,"18":0.01394,"84":0.00232,"89":0.00232,"90":0.00232,"92":0.02323,"100":0.00232,"103":0.00232,"105":0.00232,"106":0.00465,"107":0.01162,"108":0.00929,"109":0.02555,"110":0.00697,"111":0.00465,"112":0.00232,"113":0.00465,"114":0.00465,"117":0.00232,"118":0.00232,"119":0.00465,"120":0.00232,"121":0.00465,"122":0.00697,"123":0.00232,"124":0.00929,"125":0.02555,"126":0.84557,"127":0.13009,_:"13 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 104 115 116"},E:{"14":0.00232,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 17.6","11.1":0.00232,"12.1":0.00232,"13.1":0.00929,"14.1":0.00697,"15.1":0.00232,"15.2-15.3":0.00232,"15.4":0.00232,"15.5":0.00465,"15.6":0.02091,"16.0":0.00232,"16.1":0.00929,"16.2":0.00697,"16.3":0.00697,"16.4":0.00465,"16.5":0.00232,"16.6":0.02091,"17.0":0.00232,"17.1":0.00465,"17.2":0.00465,"17.3":0.00697,"17.4":0.01858,"17.5":0.09524,"18.0":0.00232},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00058,"5.0-5.1":0.00029,"6.0-6.1":0.00175,"7.0-7.1":0.00175,"8.1-8.4":0,"9.0-9.2":0.00146,"9.3":0.00585,"10.0-10.2":0.00117,"10.3":0.01024,"11.0-11.2":0.02691,"11.3-11.4":0.00292,"12.0-12.1":0.00205,"12.2-12.5":0.03773,"13.0-13.1":0.00058,"13.2":0.00614,"13.3":0.00205,"13.4-13.7":0.00877,"14.0-14.4":0.02018,"14.5-14.8":0.02281,"15.0-15.1":0.01141,"15.2-15.3":0.01228,"15.4":0.01404,"15.5":0.01696,"15.6-15.8":0.15559,"16.0":0.03129,"16.1":0.06639,"16.2":0.03334,"16.3":0.05586,"16.4":0.01316,"16.5":0.02369,"16.6-16.7":0.19419,"17.0":0.01755,"17.1":0.02837,"17.2":0.02749,"17.3":0.04124,"17.4":0.10324,"17.5":1.89043,"17.6":0.01462,"18.0":0.0193},P:{"4":0.07579,"20":0.01083,"21":0.02165,"22":0.02165,"23":0.03248,"24":0.03248,"25":0.60632,_:"5.0-5.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 18.0","6.2-6.4":0.01083,"7.2-7.4":0.02165,"11.1-11.2":0.01083,"17.0":0.04331,"19.0":0.01083},I:{"0":0.09179,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00006,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00016},K:{"0":2.02766,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01498,"9":0.00499,"10":0.0025,"11":0.07741,_:"6 7 5.5"},S:{"2.5":0.08444,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":70.12824},R:{_:"0"},M:{"0":0.06141},Q:{_:"14.9"},O:{"0":3.6768},H:{"0":0.16}}; 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..e7c913b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PL.js @@ -0,0 +1 @@ +module.exports={C:{"47":0.00288,"52":0.03452,"68":0.00288,"78":0.00575,"88":0.01439,"91":0.00288,"101":0.00288,"102":0.00575,"103":0.00288,"105":0.00288,"106":0.00288,"107":0.00288,"108":0.00288,"110":0.00575,"111":0.00288,"112":0.00288,"113":0.00288,"114":0.00575,"115":0.5006,"116":0.00288,"118":0.00288,"119":0.00288,"120":0.00575,"121":0.00575,"122":0.00575,"123":0.01726,"124":0.01151,"125":0.01439,"126":0.0374,"127":1.14217,"128":1.95348,"129":0.00863,_:"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 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 92 93 94 95 96 97 98 99 100 104 109 117 130 131 3.5 3.6"},D:{"49":0.00575,"75":0.00288,"76":0.00863,"77":0.00288,"78":0.00288,"79":0.33661,"81":0.00288,"85":0.00288,"86":0.00288,"87":0.01439,"88":0.00575,"90":0.00575,"91":0.01439,"92":0.00288,"93":0.00288,"94":0.00863,"97":0.00288,"98":0.00575,"99":0.04603,"100":0.00288,"101":0.00288,"102":0.00575,"103":0.01439,"104":1.77223,"105":0.00288,"106":0.05179,"107":0.01151,"108":0.01726,"109":0.74514,"110":0.01151,"111":0.02589,"112":0.00863,"113":0.02589,"114":0.03165,"115":0.00575,"116":0.02877,"117":0.00863,"118":0.01439,"119":0.01151,"120":0.02877,"121":0.02877,"122":0.07768,"123":0.08343,"124":0.0748,"125":0.21578,"126":10.04936,"127":1.26588,"128":0.00575,_:"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 63 64 65 66 67 68 69 70 71 72 73 74 80 83 84 89 95 96 129 130"},F:{"79":0.00575,"83":0.16687,"84":0.00288,"85":0.00288,"93":0.00288,"95":0.12371,"102":0.00863,"106":0.00288,"107":0.00288,"108":0.00288,"109":2.17214,"110":0.02877,"111":1.54495,_:"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 80 81 82 86 87 88 89 90 91 92 94 96 97 98 99 100 101 103 104 105 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00288,"98":0.00288,"107":0.00288,"109":0.06329,"110":0.00288,"111":0.00288,"114":0.00288,"115":0.00288,"117":0.00288,"119":0.00288,"120":0.00288,"121":0.00288,"122":0.00288,"123":0.00288,"124":0.01151,"125":0.04316,"126":1.94485,"127":0.22441,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 99 100 101 102 103 104 105 106 108 112 113 116 118"},E:{"13":0.00288,"14":0.00288,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3","13.1":0.01439,"14.1":0.01439,"15.1":0.00575,"15.4":0.00288,"15.5":0.00288,"15.6":0.0374,"16.0":0.00863,"16.1":0.00575,"16.2":0.00575,"16.3":0.01151,"16.4":0.00575,"16.5":0.00863,"16.6":0.04316,"17.0":0.00863,"17.1":0.01439,"17.2":0.01726,"17.3":0.01726,"17.4":0.0374,"17.5":0.34236,"17.6":0.00288,"18.0":0.00863},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0015,"5.0-5.1":0.00075,"6.0-6.1":0.0045,"7.0-7.1":0.0045,"8.1-8.4":0,"9.0-9.2":0.00375,"9.3":0.015,"10.0-10.2":0.003,"10.3":0.02625,"11.0-11.2":0.069,"11.3-11.4":0.0075,"12.0-12.1":0.00525,"12.2-12.5":0.09676,"13.0-13.1":0.0015,"13.2":0.01575,"13.3":0.00525,"13.4-13.7":0.0225,"14.0-14.4":0.05175,"14.5-14.8":0.0585,"15.0-15.1":0.02925,"15.2-15.3":0.0315,"15.4":0.036,"15.5":0.0435,"15.6-15.8":0.39903,"16.0":0.08026,"16.1":0.17026,"16.2":0.08551,"16.3":0.14326,"16.4":0.03375,"16.5":0.06075,"16.6-16.7":0.49803,"17.0":0.045,"17.1":0.07276,"17.2":0.0705,"17.3":0.10576,"17.4":0.26477,"17.5":4.84834,"17.6":0.0375,"18.0":0.0495},P:{"20":0.02041,"21":0.04082,"22":0.07143,"23":0.09184,"24":0.07143,"25":2.37763,_:"4 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 12.0 15.0","11.1-11.2":0.0102,"13.0":0.0102,"14.0":0.0102,"16.0":0.0102,"17.0":0.0102,"18.0":0.0102,"19.0":0.02041},I:{"0":0.02129,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":3.02015,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00575,"11":0.00863,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":58.63165},R:{_:"0"},M:{"0":0.64107},Q:{_:"14.9"},O:{"0":0.03562},H:{"0":0}}; 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..0a03bed --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PM.js @@ -0,0 +1 @@ +module.exports={C:{"115":0.03602,"118":0.004,"127":0.16808,"128":0.22811,_:"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 112 113 114 116 117 119 120 121 122 123 124 125 126 129 130 131 3.5 3.6"},D:{"100":0.004,"103":0.008,"109":0.46023,"116":0.01201,"120":0.01201,"123":0.02801,"124":0.02801,"125":0.42421,"126":1.63682,"127":0.18009,"128":0.008,_:"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 101 102 104 105 106 107 108 110 111 112 113 114 115 117 118 119 121 122 129 130"},F:{"109":0.13607,"111":0.004,_:"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 99 100 101 102 103 104 105 106 107 108 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"109":0.004,"125":0.01201,"126":0.76838,"127":0.05603,_:"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 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124"},E:{_:"0 4 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":0.008,"15.1":0.26413,"15.2-15.3":0.06803,"15.4":0.01601,"15.5":0.12406,"15.6":1.35668,"16.0":0.32816,"16.1":0.43222,"16.2":0.26813,"16.3":0.66833,"16.4":0.27214,"16.5":0.49225,"16.6":3.17759,"17.0":0.07204,"17.1":0.89645,"17.2":1.03652,"17.3":0.48824,"17.4":4.67434,"17.5":20.08204,"17.6":0.1921,"18.0":0.01601},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0113,"5.0-5.1":0.00565,"6.0-6.1":0.03391,"7.0-7.1":0.03391,"8.1-8.4":0,"9.0-9.2":0.02826,"9.3":0.11305,"10.0-10.2":0.02261,"10.3":0.19783,"11.0-11.2":0.52001,"11.3-11.4":0.05652,"12.0-12.1":0.03957,"12.2-12.5":0.72914,"13.0-13.1":0.0113,"13.2":0.1187,"13.3":0.03957,"13.4-13.7":0.16957,"14.0-14.4":0.39001,"14.5-14.8":0.44088,"15.0-15.1":0.22044,"15.2-15.3":0.23739,"15.4":0.27131,"15.5":0.32783,"15.6-15.8":3.007,"16.0":0.60479,"16.1":1.28306,"16.2":0.64436,"16.3":1.07958,"16.4":0.25435,"16.5":0.45783,"16.6-16.7":3.7531,"17.0":0.33914,"17.1":0.54827,"17.2":0.53131,"17.3":0.79697,"17.4":1.99525,"17.5":36.53619,"17.6":0.28261,"18.0":0.37305},P:{"25":0.46339,_:"4 20 21 22 23 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.07174,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00012},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":2.81959},R:{_:"0"},M:{"0":0.15597},Q:{_:"14.9"},O:{_:"0"},H:{"0":0}}; 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..386d057 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PN.js @@ -0,0 +1 @@ +module.exports={C:{_:"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 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 3.5 3.6"},D:{"93":1.6668,"124":3.3336,"126":20.0016,_:"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 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 125 127 128 129 130"},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 99 100 101 102 103 104 105 106 107 108 109 110 111 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"126":6.6672,"127":3.3336,_:"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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125"},E:{_:"0 4 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.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.6 18.0","15.6":1.6668,"17.5":5.0004},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00075,"5.0-5.1":0.00038,"6.0-6.1":0.00226,"7.0-7.1":0.00226,"8.1-8.4":0,"9.0-9.2":0.00188,"9.3":0.00753,"10.0-10.2":0.00151,"10.3":0.01317,"11.0-11.2":0.03462,"11.3-11.4":0.00376,"12.0-12.1":0.00263,"12.2-12.5":0.04854,"13.0-13.1":0.00075,"13.2":0.0079,"13.3":0.00263,"13.4-13.7":0.01129,"14.0-14.4":0.02596,"14.5-14.8":0.02935,"15.0-15.1":0.01468,"15.2-15.3":0.0158,"15.4":0.01806,"15.5":0.02182,"15.6-15.8":0.20019,"16.0":0.04026,"16.1":0.08542,"16.2":0.0429,"16.3":0.07187,"16.4":0.01693,"16.5":0.03048,"16.6-16.7":0.24986,"17.0":0.02258,"17.1":0.0365,"17.2":0.03537,"17.3":0.05306,"17.4":0.13283,"17.5":2.43236,"17.6":0.01881,"18.0":0.02484},P:{_:"4 20 21 22 23 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.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":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":9.41024},R:{_:"0"},M:{_:"0"},Q:{_:"14.9"},O:{"0":45.16683},H:{"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..f86cddf --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PR.js @@ -0,0 +1 @@ +module.exports={C:{"40":0.00317,"52":0.00317,"78":0.00634,"103":0.00317,"112":0.00317,"114":0.00317,"115":0.11102,"118":0.00317,"120":0.03172,"124":0.00317,"125":0.00317,"126":0.04441,"127":0.52972,"128":0.83741,"129":0.00317,_:"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 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 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 113 116 117 119 121 122 123 130 131 3.5 3.6"},D:{"40":0.00317,"43":0.00317,"44":0.00317,"45":0.00634,"46":0.00317,"47":0.00317,"49":0.00317,"51":0.00317,"65":0.02855,"70":0.00317,"76":0.00317,"79":0.0222,"80":0.00317,"81":0.00317,"84":0.00317,"85":0.00317,"87":0.00952,"89":0.00317,"91":0.02538,"92":0.00317,"93":0.00317,"94":0.00634,"95":0.00317,"96":0.00317,"97":0.00317,"98":0.00317,"101":0.01269,"103":0.08882,"105":0.00317,"106":0.00952,"107":0.01586,"108":0.03489,"109":1.53525,"110":0.00317,"111":0.00634,"112":0.00317,"113":0.04758,"114":0.00634,"115":0.01269,"116":0.06344,"117":0.00952,"118":0.00952,"119":0.01903,"120":0.01586,"121":0.01586,"122":0.12371,"123":0.0793,"124":0.13957,"125":0.43456,"126":11.96478,"127":1.36713,"128":0.00317,_:"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 41 42 48 50 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 71 72 73 74 75 77 78 83 86 88 90 99 100 102 104 129 130"},F:{"83":0.01269,"91":0.00317,"95":0.0222,"102":0.00634,"109":0.56144,"110":0.00634,"111":0.38698,_:"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 84 85 86 87 88 89 90 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00317,"89":0.01903,"92":0.00317,"99":0.00317,"108":0.00317,"109":0.03172,"110":0.00317,"112":0.00317,"113":0.00317,"114":0.02538,"115":0.00317,"116":0.00317,"118":0.00317,"119":0.02538,"120":0.00634,"121":0.01269,"122":0.01586,"123":0.00952,"124":0.07296,"125":0.17129,"126":5.41778,"127":0.72004,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 100 101 102 103 104 105 106 107 111 117"},E:{"9":0.00634,"11":0.00317,"13":0.00952,"14":0.03172,"15":0.00317,_:"0 4 5 6 7 8 10 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00634,"13.1":0.04124,"14.1":0.11419,"15.1":0.04758,"15.2-15.3":0.0222,"15.4":0.00952,"15.5":0.02855,"15.6":0.14274,"16.0":0.01586,"16.1":0.06027,"16.2":0.04758,"16.3":0.16812,"16.4":0.01903,"16.5":0.08882,"16.6":0.30134,"17.0":0.03172,"17.1":0.05075,"17.2":0.0793,"17.3":0.10468,"17.4":0.26328,"17.5":2.62324,"17.6":0.0222,"18.0":0.02855},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00573,"5.0-5.1":0.00286,"6.0-6.1":0.01718,"7.0-7.1":0.01718,"8.1-8.4":0,"9.0-9.2":0.01432,"9.3":0.05727,"10.0-10.2":0.01145,"10.3":0.10023,"11.0-11.2":0.26346,"11.3-11.4":0.02864,"12.0-12.1":0.02005,"12.2-12.5":0.36941,"13.0-13.1":0.00573,"13.2":0.06014,"13.3":0.02005,"13.4-13.7":0.08591,"14.0-14.4":0.19759,"14.5-14.8":0.22337,"15.0-15.1":0.11168,"15.2-15.3":0.12027,"15.4":0.13746,"15.5":0.16609,"15.6-15.8":1.52347,"16.0":0.30641,"16.1":0.65005,"16.2":0.32646,"16.3":0.54696,"16.4":0.12886,"16.5":0.23196,"16.6-16.7":1.90147,"17.0":0.17182,"17.1":0.27778,"17.2":0.26918,"17.3":0.40378,"17.4":1.01087,"17.5":18.51072,"17.6":0.14318,"18.0":0.189},P:{"4":0.17697,"20":0.02082,"21":0.04164,"22":0.02082,"23":0.07287,"24":0.11451,"25":2.12362,"5.0-5.4":0.01041,"6.2-6.4":0.01041,"7.2-7.4":0.01041,"8.2":0.01041,_:"9.2 10.1 12.0 14.0 15.0","11.1-11.2":0.02082,"13.0":0.01041,"16.0":0.01041,"17.0":0.02082,"18.0":0.02082,"19.0":0.01041},I:{"0":0.05443,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00009},K:{"0":0.27312,_:"10 11 12 11.1 11.5 12.1"},A:{"7":0.00317,"8":0.02538,"9":0.00317,"10":0.00317,"11":0.01586,_:"6 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":36.38369},R:{_:"0"},M:{"0":0.41651},Q:{_:"14.9"},O:{"0":0.01366},H:{"0":0}}; 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..808a628 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PS.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00124,"68":0.00124,"91":0.00124,"102":0.00124,"107":0.00124,"108":0.00248,"115":0.03475,"116":0.00124,"117":0.00124,"118":0.00496,"119":0.00124,"121":0.00124,"122":0.00124,"123":0.00248,"124":0.00124,"125":0.00248,"126":0.00496,"127":0.10797,"128":0.15761,"129":0.00124,_:"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 67 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 103 104 105 106 109 110 111 112 113 114 120 130 131 3.5 3.6"},D:{"11":0.00124,"34":0.00248,"38":0.00869,"47":0.00124,"53":0.00248,"56":0.00248,"58":0.00124,"59":0.00124,"61":0.00124,"63":0.00124,"65":0.00124,"66":0.00124,"67":0.00124,"69":0.00621,"70":0.00124,"71":0.00248,"72":0.00496,"73":0.00621,"75":0.00124,"76":0.00124,"77":0.03599,"78":0.00745,"79":0.03227,"80":0.00124,"81":0.00248,"83":0.01737,"84":0.00248,"85":0.00124,"86":0.00124,"87":0.01986,"88":0.00248,"89":0.00621,"90":0.00621,"91":0.00496,"92":0.00124,"93":0.00124,"94":0.00372,"95":0.00124,"96":0.00124,"97":0.00248,"98":0.01241,"99":0.00248,"100":0.01737,"101":0.00248,"102":0.00248,"103":0.00496,"104":0.00621,"105":0.00124,"106":0.00621,"107":0.00621,"108":0.00869,"109":0.71482,"110":0.00621,"111":0.00621,"112":0.05709,"113":0.00496,"114":0.00496,"115":0.00496,"116":0.02234,"117":0.05585,"118":0.02482,"119":0.02978,"120":0.03351,"121":0.01489,"122":0.06577,"123":0.0484,"124":0.08439,"125":0.1452,"126":6.26085,"127":0.73715,_:"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 39 40 41 42 43 44 45 46 48 49 50 51 52 54 55 57 60 62 64 68 74 128 129 130"},F:{"46":0.00496,"63":0.00248,"79":0.00124,"83":0.00372,"85":0.00248,"95":0.00372,"102":0.00124,"103":0.00124,"105":0.00124,"107":0.00124,"109":0.09804,"110":0.00248,"111":0.14147,_:"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 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 84 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 104 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00124,"16":0.00248,"17":0.00124,"18":0.00248,"84":0.00124,"90":0.00124,"92":0.00869,"100":0.00124,"108":0.00248,"109":0.00745,"112":0.00124,"114":0.00124,"115":0.00124,"116":0.00124,"117":0.01613,"118":0.00248,"119":0.00124,"120":0.00124,"121":0.00124,"122":0.00496,"123":0.00496,"124":0.01117,"125":0.03351,"126":1.0201,"127":0.14396,_:"12 13 15 79 80 81 83 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 110 111 113"},E:{"14":0.00248,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.00124,"12.1":0.00124,"13.1":0.00372,"14.1":0.00993,"15.1":0.00124,"15.2-15.3":0.00124,"15.4":0.00124,"15.5":0.00372,"15.6":0.02978,"16.0":0.00124,"16.1":0.01986,"16.2":0.00372,"16.3":0.02358,"16.4":0.00248,"16.5":0.00745,"16.6":0.05212,"17.0":0.00869,"17.1":0.00869,"17.2":0.00496,"17.3":0.00869,"17.4":0.0273,"17.5":0.27178,"17.6":0.00124,"18.0":0.00248},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00298,"5.0-5.1":0.00149,"6.0-6.1":0.00895,"7.0-7.1":0.00895,"8.1-8.4":0,"9.0-9.2":0.00746,"9.3":0.02983,"10.0-10.2":0.00597,"10.3":0.05221,"11.0-11.2":0.13723,"11.3-11.4":0.01492,"12.0-12.1":0.01044,"12.2-12.5":0.19242,"13.0-13.1":0.00298,"13.2":0.03132,"13.3":0.01044,"13.4-13.7":0.04475,"14.0-14.4":0.10292,"14.5-14.8":0.11635,"15.0-15.1":0.05817,"15.2-15.3":0.06265,"15.4":0.0716,"15.5":0.08652,"15.6-15.8":0.79356,"16.0":0.15961,"16.1":0.33861,"16.2":0.17005,"16.3":0.28491,"16.4":0.06712,"16.5":0.12082,"16.6-16.7":0.99046,"17.0":0.0895,"17.1":0.14469,"17.2":0.14022,"17.3":0.21032,"17.4":0.52656,"17.5":9.64208,"17.6":0.07458,"18.0":0.09845},P:{"4":0.04083,"20":0.05103,"21":0.1531,"22":0.4593,"23":0.33682,"24":0.26537,"25":2.70475,"5.0-5.4":0.01021,_:"6.2-6.4 10.1","7.2-7.4":0.05103,"8.2":0.02041,"9.2":0.01021,"11.1-11.2":0.05103,"12.0":0.01021,"13.0":0.05103,"14.0":0.03062,"15.0":0.03062,"16.0":0.06124,"17.0":0.04083,"18.0":0.04083,"19.0":0.08165},I:{"0":0.03491,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.65568,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01241,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":68.23028},R:{_:"0"},M:{"0":0.08759},Q:{_:"14.9"},O:{"0":0.0438},H:{"0":0.01}}; 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..eec3b83 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PT.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.02465,"68":0.00493,"78":0.01479,"83":0.01972,"91":0.00986,"102":0.00493,"103":0.00493,"106":0.00493,"109":0.00493,"113":0.00493,"115":0.28095,"118":0.21195,"120":0.00493,"121":0.00493,"122":0.00493,"123":0.00986,"124":0.02957,"125":0.01479,"126":0.04436,"127":0.88722,"128":1.44913,"129":0.00493,_:"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 67 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 87 88 89 90 92 93 94 95 96 97 98 99 100 101 104 105 107 108 110 111 112 114 116 117 119 130 131 3.5 3.6"},D:{"38":0.00493,"49":0.00986,"53":0.00493,"58":0.00493,"62":0.00986,"69":0.00493,"77":0.23166,"79":0.05422,"81":0.00493,"83":0.00493,"85":0.00493,"86":0.00493,"87":0.05422,"88":0.01972,"89":0.02957,"91":0.03943,"92":0.00493,"93":0.05915,"94":0.02957,"95":0.00493,"96":0.00493,"97":0.00493,"98":0.01972,"99":0.01479,"100":0.00986,"101":0.00986,"102":0.01972,"103":0.07886,"104":0.00986,"105":0.00493,"106":0.02465,"107":0.02465,"108":0.02465,"109":1.49349,"110":0.01479,"111":0.00986,"112":0.02465,"113":0.08872,"114":0.10351,"115":0.01479,"116":0.15773,"117":0.01972,"118":0.01479,"119":0.02957,"120":0.06408,"121":0.08379,"122":0.29574,"123":0.10844,"124":0.26124,"125":0.63584,"126":24.26547,"127":2.94261,"128":0.00493,_:"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 47 48 50 51 52 54 55 56 57 59 60 61 63 64 65 66 67 68 70 71 72 73 74 75 76 78 80 84 90 129 130"},F:{"36":0.00493,"46":0.00493,"83":0.01972,"89":0.00986,"95":0.02957,"109":1.16324,"110":0.01479,"111":0.8675,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 84 85 86 87 88 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00986,"18":0.00493,"91":0.00986,"92":0.00986,"107":0.00493,"109":0.07886,"110":0.00986,"111":0.00493,"112":0.00493,"113":0.00493,"114":0.00493,"117":0.00493,"118":0.00493,"119":0.01479,"120":0.01972,"121":0.00986,"122":0.01479,"123":0.01479,"124":0.06901,"125":0.14787,"126":6.3732,"127":0.81821,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 93 94 95 96 97 98 99 100 101 102 103 104 105 106 108 115 116"},E:{"9":0.00493,"13":0.00493,"14":0.01972,"15":0.00493,_:"0 4 5 6 7 8 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00493,"12.1":0.00493,"13.1":0.07886,"14.1":0.12323,"15.1":0.00986,"15.2-15.3":0.00986,"15.4":0.01479,"15.5":0.02957,"15.6":0.19223,"16.0":0.01972,"16.1":0.04929,"16.2":0.0345,"16.3":0.09365,"16.4":0.01972,"16.5":0.07394,"16.6":0.26617,"17.0":0.02957,"17.1":0.04929,"17.2":0.06408,"17.3":0.05422,"17.4":0.1528,"17.5":1.65122,"17.6":0.01479,"18.0":0.02465},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00236,"5.0-5.1":0.00118,"6.0-6.1":0.00709,"7.0-7.1":0.00709,"8.1-8.4":0,"9.0-9.2":0.00591,"9.3":0.02364,"10.0-10.2":0.00473,"10.3":0.04136,"11.0-11.2":0.10872,"11.3-11.4":0.01182,"12.0-12.1":0.00827,"12.2-12.5":0.15245,"13.0-13.1":0.00236,"13.2":0.02482,"13.3":0.00827,"13.4-13.7":0.03545,"14.0-14.4":0.08154,"14.5-14.8":0.09218,"15.0-15.1":0.04609,"15.2-15.3":0.04963,"15.4":0.05673,"15.5":0.06854,"15.6-15.8":0.6287,"16.0":0.12645,"16.1":0.26826,"16.2":0.13472,"16.3":0.22572,"16.4":0.05318,"16.5":0.09572,"16.6-16.7":0.7847,"17.0":0.07091,"17.1":0.11463,"17.2":0.11109,"17.3":0.16663,"17.4":0.41717,"17.5":7.639,"17.6":0.05909,"18.0":0.078},P:{"4":0.07334,"20":0.01048,"21":0.02095,"22":0.06286,"23":0.06286,"24":0.04191,"25":1.80197,"5.0-5.4":0.01048,"6.2-6.4":0.01048,"7.2-7.4":0.01048,_:"8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 18.0","13.0":0.01048,"16.0":0.01048,"17.0":0.01048,"19.0":0.01048},I:{"0":0.06571,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00011},K:{"0":0.48184,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01035,"11":0.09316,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":36.08403},R:{_:"0"},M:{"0":0.32968},Q:{_:"14.9"},O:{"0":0.15216},H:{"0":0}}; 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..ec337ab --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PW.js @@ -0,0 +1 @@ +module.exports={C:{"101":0.00849,"103":0.01699,"127":0.51807,"128":0.6851,_:"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 102 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 129 130 131 3.5 3.6"},D:{"79":0.02265,"86":0.1189,"87":0.00849,"91":0.07078,"96":0.02265,"103":0.00849,"106":0.12456,"109":0.74738,"112":0.00849,"116":0.08776,"119":0.00849,"120":0.07078,"121":0.01699,"122":0.00849,"123":0.06228,"124":0.03114,"125":0.40766,"126":15.70356,"127":2.05248,_:"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 80 81 83 84 85 88 89 90 92 93 94 95 97 98 99 100 101 102 104 105 107 108 110 111 113 114 115 117 118 128 129 130"},F:{"109":0.01699,"111":0.33123,_:"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 99 100 101 102 103 104 105 106 107 108 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"83":0.00849,"95":0.00849,"109":0.01699,"115":0.00849,"120":0.00849,"121":0.00849,"122":0.00849,"125":0.32273,"126":4.22385,"127":0.15004,_:"12 13 14 15 16 17 18 79 80 81 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 116 117 118 119 123 124"},E:{"14":0.02265,_:"0 4 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 15.1 15.2-15.3 15.4 16.0 16.2 17.0 17.1 17.2 17.6 18.0","12.1":0.00849,"13.1":0.08776,"14.1":0.23497,"15.5":0.03963,"15.6":0.07927,"16.1":0.00849,"16.3":0.05379,"16.4":0.09342,"16.5":0.07078,"16.6":0.18968,"17.3":0.06228,"17.4":0.14155,"17.5":0.4473},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00431,"5.0-5.1":0.00216,"6.0-6.1":0.01293,"7.0-7.1":0.01293,"8.1-8.4":0,"9.0-9.2":0.01078,"9.3":0.0431,"10.0-10.2":0.00862,"10.3":0.07543,"11.0-11.2":0.19826,"11.3-11.4":0.02155,"12.0-12.1":0.01509,"12.2-12.5":0.278,"13.0-13.1":0.00431,"13.2":0.04526,"13.3":0.01509,"13.4-13.7":0.06465,"14.0-14.4":0.1487,"14.5-14.8":0.16809,"15.0-15.1":0.08405,"15.2-15.3":0.09051,"15.4":0.10344,"15.5":0.12499,"15.6-15.8":1.14646,"16.0":0.23059,"16.1":0.48919,"16.2":0.24567,"16.3":0.41161,"16.4":0.09698,"16.5":0.17456,"16.6-16.7":1.43092,"17.0":0.1293,"17.1":0.20904,"17.2":0.20257,"17.3":0.30386,"17.4":0.76072,"17.5":13.92993,"17.6":0.10775,"18.0":0.14223},P:{"21":0.01043,"22":0.03129,"23":0.02086,"24":0.44851,"25":1.18907,_:"4 20 5.0-5.4 8.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 17.0","6.2-6.4":0.02086,"7.2-7.4":0.08344,"9.2":0.02086,"13.0":0.03129,"18.0":0.05215,"19.0":0.01043},I:{"0":0.04286,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00007},K:{"0":0.40146,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":47.43324},R:{_:"0"},M:{"0":0.07169},Q:{_:"14.9"},O:{"0":0.27959},H:{"0":0}}; 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..d4e49b5 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PY.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.14543,"15":0.00383,"17":0.00383,"30":0.00383,"35":0.01914,"40":0.00383,"52":0.0995,"60":0.00383,"64":0.00383,"65":0.00765,"76":0.00383,"78":0.00383,"88":0.01531,"93":0.01148,"103":0.00383,"105":0.00383,"108":0.00383,"112":0.00383,"113":0.00383,"115":0.33678,"117":0.00383,"121":0.00383,"123":0.00383,"124":0.00383,"125":0.01148,"126":0.01148,"127":0.49751,"128":0.69651,"129":0.00383,_:"2 3 5 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 36 37 38 39 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 66 67 68 69 70 71 72 73 74 75 77 79 80 81 82 83 84 85 86 87 89 90 91 92 94 95 96 97 98 99 100 101 102 104 106 107 109 110 111 114 116 118 119 120 122 130 131 3.5","3.6":0.00383},D:{"11":0.00383,"39":0.00383,"40":0.00383,"41":0.00383,"42":0.00383,"43":0.00383,"44":0.00383,"45":0.00383,"46":0.00383,"47":0.02296,"49":0.01148,"51":0.00383,"55":0.00383,"64":0.00765,"65":0.01148,"67":0.00383,"69":0.00383,"70":0.03444,"72":0.00383,"73":0.01914,"75":0.00383,"76":0.00383,"77":0.01148,"79":0.03444,"80":0.01148,"81":0.00383,"83":0.02296,"84":0.00383,"86":0.00383,"87":0.83429,"88":0.00765,"89":0.06506,"91":0.39801,"92":0.00383,"93":0.00383,"94":0.01914,"97":0.0995,"99":0.00765,"100":0.00383,"101":0.00383,"102":0.02296,"103":0.02296,"104":0.01531,"105":0.00383,"106":0.00383,"107":0.00383,"108":0.01914,"109":4.14464,"110":0.02296,"111":0.00383,"112":0.01914,"113":0.00765,"114":0.00765,"115":0.00383,"116":0.03827,"117":0.01148,"118":0.01148,"119":0.05741,"120":0.04975,"121":0.0421,"122":0.18752,"123":0.10716,"124":0.20666,"125":0.34826,"126":19.26895,"127":2.67125,"128":0.00383,_:"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 48 50 52 53 54 56 57 58 59 60 61 62 63 66 68 71 74 78 85 90 95 96 98 129 130"},F:{"83":0.00383,"95":0.01531,"96":0.00383,"109":0.60467,"110":0.00383,"111":0.42097,_:"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 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00765,"92":0.01531,"100":0.00765,"101":0.03444,"102":0.00383,"108":0.00383,"109":0.03827,"112":0.00383,"113":0.00383,"114":0.00765,"117":0.00383,"118":0.00383,"119":0.00383,"120":0.00765,"121":0.00383,"122":0.01531,"123":0.00765,"124":0.03062,"125":0.10333,"126":3.12283,"127":0.41332,_:"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 103 104 105 106 107 110 111 115 116"},E:{"9":0.00765,_:"0 4 5 6 7 8 10 11 12 13 14 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 15.2-15.3 16.0 16.4 17.6 18.0","5.1":0.00765,"12.1":0.00383,"13.1":0.00383,"14.1":0.00383,"15.1":0.00383,"15.4":0.00383,"15.5":0.00383,"15.6":0.02679,"16.1":0.00383,"16.2":0.01914,"16.3":0.00383,"16.5":0.00383,"16.6":0.06889,"17.0":0.00383,"17.1":0.00765,"17.2":0.01531,"17.3":0.02296,"17.4":0.02296,"17.5":0.43628},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00128,"5.0-5.1":0.00064,"6.0-6.1":0.00384,"7.0-7.1":0.00384,"8.1-8.4":0,"9.0-9.2":0.0032,"9.3":0.01279,"10.0-10.2":0.00256,"10.3":0.02239,"11.0-11.2":0.05885,"11.3-11.4":0.0064,"12.0-12.1":0.00448,"12.2-12.5":0.08251,"13.0-13.1":0.00128,"13.2":0.01343,"13.3":0.00448,"13.4-13.7":0.01919,"14.0-14.4":0.04413,"14.5-14.8":0.04989,"15.0-15.1":0.02495,"15.2-15.3":0.02686,"15.4":0.0307,"15.5":0.0371,"15.6-15.8":0.34028,"16.0":0.06844,"16.1":0.1452,"16.2":0.07292,"16.3":0.12217,"16.4":0.02878,"16.5":0.05181,"16.6-16.7":0.42471,"17.0":0.03838,"17.1":0.06204,"17.2":0.06012,"17.3":0.09019,"17.4":0.22579,"17.5":4.13455,"17.6":0.03198,"18.0":0.04222},P:{"4":0.30834,"20":0.04111,"21":0.08222,"22":0.15417,"23":0.185,"24":0.24667,"25":2.77503,"5.0-5.4":0.01028,"6.2-6.4":0.01028,"7.2-7.4":0.46251,_:"8.2 10.1 12.0","9.2":0.02056,"11.1-11.2":0.04111,"13.0":0.03083,"14.0":0.02056,"15.0":0.01028,"16.0":0.10278,"17.0":0.17472,"18.0":0.01028,"19.0":0.03083},I:{"0":0.07998,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00014},K:{"0":0.3334,_:"10 11 12 11.1 11.5 12.1"},A:{"7":0.00383,"8":0.02679,"9":0.00383,"10":0.00383,"11":0.03444,_:"6 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":50.63537},R:{_:"0"},M:{"0":0.17905},Q:{_:"14.9"},O:{"0":0.05557},H:{"0":0}}; 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..4e8736b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/QA.js @@ -0,0 +1 @@ +module.exports={C:{"5":0.36172,"34":0.00433,"68":0.00866,"78":0.00217,"103":0.00433,"105":0.00433,"109":0.0065,"110":0.00217,"113":0.00217,"115":0.05198,"117":0.00217,"125":0.0065,"126":0.00433,"127":0.18844,"128":0.22743,_:"2 3 4 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 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 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 106 107 108 111 112 114 116 118 119 120 121 122 123 124 129 130 131 3.5 3.6"},D:{"11":0.00217,"38":0.01083,"41":0.00433,"49":0.00217,"56":0.00217,"58":0.09964,"68":0.00217,"69":0.00433,"71":0.00217,"72":0.00217,"73":0.00217,"76":0.00433,"77":0.0065,"78":0.0065,"79":0.04115,"80":0.01083,"81":0.00217,"83":0.013,"84":0.0065,"85":0.00217,"86":0.013,"87":0.03249,"88":0.01733,"89":0.00217,"90":0.00217,"91":0.00433,"93":0.0065,"94":0.01083,"95":0.00217,"96":0.00866,"98":0.00433,"99":0.01516,"100":0.00217,"101":0.00866,"102":0.00866,"103":0.0953,"104":0.02383,"105":0.0065,"106":0.02599,"107":0.01949,"108":0.03466,"109":0.80359,"110":0.03249,"111":0.00433,"112":0.00433,"113":0.00433,"114":0.01083,"115":0.00217,"116":0.09964,"117":0.03032,"118":0.01516,"119":0.04765,"120":0.02599,"121":0.03682,"122":0.1018,"123":0.03466,"124":0.1148,"125":0.30324,"126":10.19969,"127":1.28011,"128":0.01516,_:"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 39 40 42 43 44 45 46 47 48 50 51 52 53 54 55 57 59 60 61 62 63 64 65 66 67 70 74 75 92 97 129 130"},F:{"46":0.04115,"83":0.04765,"95":0.02383,"102":0.0065,"108":0.00217,"109":0.23609,"110":0.0065,"111":0.27292,_:"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 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"13":0.0065,"15":0.00217,"17":0.00217,"18":0.00433,"89":0.00217,"92":0.00866,"100":0.00217,"103":0.00217,"105":0.00217,"109":0.01733,"110":0.00433,"112":0.00866,"113":0.00433,"118":0.00217,"119":0.00433,"120":0.00217,"121":0.013,"122":0.00866,"123":0.0065,"124":0.01733,"125":0.07364,"126":2.2743,"127":0.29891,_:"12 14 16 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 99 101 102 104 106 107 108 111 114 115 116 117"},E:{"13":0.0065,"14":0.02383,"15":0.00217,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.02166,"14.1":0.04115,"15.1":0.0065,"15.2-15.3":0.02383,"15.4":0.02166,"15.5":0.01733,"15.6":0.09964,"16.0":0.0065,"16.1":0.01949,"16.2":0.013,"16.3":0.05198,"16.4":0.01949,"16.5":0.01949,"16.6":0.16245,"17.0":0.013,"17.1":0.013,"17.2":0.01733,"17.3":0.01733,"17.4":0.08881,"17.5":1.03968,"17.6":0.013,"18.0":0.0065},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00326,"5.0-5.1":0.00163,"6.0-6.1":0.00978,"7.0-7.1":0.00978,"8.1-8.4":0,"9.0-9.2":0.00815,"9.3":0.03261,"10.0-10.2":0.00652,"10.3":0.05706,"11.0-11.2":0.14998,"11.3-11.4":0.0163,"12.0-12.1":0.01141,"12.2-12.5":0.2103,"13.0-13.1":0.00326,"13.2":0.03424,"13.3":0.01141,"13.4-13.7":0.04891,"14.0-14.4":0.11249,"14.5-14.8":0.12716,"15.0-15.1":0.06358,"15.2-15.3":0.06847,"15.4":0.07825,"15.5":0.09455,"15.6-15.8":0.8673,"16.0":0.17444,"16.1":0.37007,"16.2":0.18585,"16.3":0.31138,"16.4":0.07336,"16.5":0.13205,"16.6-16.7":1.08249,"17.0":0.09782,"17.1":0.15813,"17.2":0.15324,"17.3":0.22987,"17.4":0.57548,"17.5":10.53797,"17.6":0.08151,"18.0":0.1076},P:{"4":0.06094,"20":0.03047,"21":0.04063,"22":0.10157,"23":0.12189,"24":0.10157,"25":1.61503,"5.0-5.4":0.01016,"6.2-6.4":0.01016,"7.2-7.4":0.05079,_:"8.2 9.2 10.1 12.0","11.1-11.2":0.02031,"13.0":0.01016,"14.0":0.01016,"15.0":0.01016,"16.0":0.01016,"17.0":0.01016,"18.0":0.03047,"19.0":0.01016},I:{"0":0.07807,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00013},K:{"0":2.24836,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00217,"11":0.08447,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":53.95064},R:{_:"0"},M:{"0":0.10184},Q:{_:"14.9"},O:{"0":4.42621},H:{"0":0}}; 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..1c73e27 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/RE.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00396,"52":0.00792,"55":0.00396,"60":0.00396,"78":0.04751,"82":0.01584,"88":0.00792,"89":0.0198,"91":0.00792,"92":0.01584,"98":0.00396,"100":0.03959,"102":0.01584,"105":0.00396,"106":0.00396,"113":0.00792,"115":0.63344,"116":0.00396,"120":0.00396,"122":0.00792,"123":0.00792,"124":0.00792,"125":0.0198,"126":0.02771,"127":1.63111,"128":2.07452,"129":0.00396,_:"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 53 54 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 83 84 85 86 87 90 93 94 95 96 97 99 101 103 104 107 108 109 110 111 112 114 117 118 119 121 130 131 3.5 3.6"},D:{"34":0.00396,"47":0.00396,"49":0.00792,"57":0.00396,"61":0.02375,"65":0.00792,"70":0.00792,"72":0.00396,"74":0.00396,"75":0.02375,"76":0.00396,"78":0.00792,"79":0.02771,"80":0.00792,"81":0.02375,"83":0.00792,"84":0.00792,"85":0.02375,"86":0.01188,"87":0.11085,"88":0.04751,"90":0.00396,"92":0.00396,"94":0.00792,"97":0.03563,"100":0.00396,"103":0.09898,"105":0.00396,"106":0.00396,"107":0.00396,"108":0.00792,"109":0.966,"110":0.00792,"111":0.00792,"112":0.00396,"113":0.00792,"114":0.01584,"115":0.19795,"116":0.14252,"117":0.03563,"118":0.0198,"119":0.01584,"120":0.04355,"121":0.03959,"122":0.18607,"123":0.03959,"124":0.15044,"125":0.35235,"126":14.83833,"127":2.11015,"128":0.00792,_:"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 43 44 45 46 48 50 51 52 53 54 55 56 58 59 60 62 63 64 66 67 68 69 71 73 77 89 91 93 95 96 98 99 101 102 104 129 130"},F:{"46":0.01188,"69":0.00792,"82":0.00396,"83":0.01584,"95":0.01188,"102":0.01584,"107":0.00396,"108":0.00792,"109":0.80368,"110":0.00792,"111":0.51863,_:"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 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.04355,"18":0.00792,"86":0.00396,"92":0.0198,"96":0.07126,"109":0.03563,"110":0.04355,"112":0.00396,"113":0.00396,"114":0.00396,"115":0.02375,"116":0.00396,"117":0.00396,"118":0.03167,"119":0.00792,"120":0.00792,"121":0.01188,"122":0.03167,"123":0.02771,"124":0.02771,"125":0.14648,"126":6.00976,"127":0.80368,_:"12 13 15 16 17 79 80 81 83 84 85 87 88 89 90 91 93 94 95 97 98 99 100 101 102 103 104 105 106 107 108 111"},E:{"11":0.00396,"14":0.04355,"15":0.01584,_:"0 4 5 6 7 8 9 10 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00396,"12.1":0.00396,"13.1":0.25734,"14.1":0.12273,"15.1":0.03563,"15.2-15.3":0.01188,"15.4":0.01584,"15.5":0.0198,"15.6":0.3286,"16.0":0.13857,"16.1":0.13065,"16.2":0.05147,"16.3":0.05543,"16.4":0.0198,"16.5":0.08314,"16.6":0.46716,"17.0":0.00792,"17.1":0.04751,"17.2":0.06334,"17.3":0.05939,"17.4":0.20191,"17.5":1.78947,"17.6":0.00792,"18.0":0.01188},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00317,"5.0-5.1":0.00158,"6.0-6.1":0.0095,"7.0-7.1":0.0095,"8.1-8.4":0,"9.0-9.2":0.00792,"9.3":0.03167,"10.0-10.2":0.00633,"10.3":0.05543,"11.0-11.2":0.14569,"11.3-11.4":0.01584,"12.0-12.1":0.01109,"12.2-12.5":0.20429,"13.0-13.1":0.00317,"13.2":0.03326,"13.3":0.01109,"13.4-13.7":0.04751,"14.0-14.4":0.10927,"14.5-14.8":0.12352,"15.0-15.1":0.06176,"15.2-15.3":0.06651,"15.4":0.07601,"15.5":0.09185,"15.6-15.8":0.84248,"16.0":0.16945,"16.1":0.35948,"16.2":0.18053,"16.3":0.30247,"16.4":0.07126,"16.5":0.12827,"16.6-16.7":1.05152,"17.0":0.09502,"17.1":0.15361,"17.2":0.14886,"17.3":0.22329,"17.4":0.55901,"17.5":10.23644,"17.6":0.07918,"18.0":0.10452},P:{"4":0.03146,"20":0.02097,"21":0.04195,"22":0.18876,"23":0.11535,"24":0.05243,"25":3.00968,"5.0-5.4":0.01049,"6.2-6.4":0.01049,"7.2-7.4":0.03146,_:"8.2 9.2 10.1 12.0 13.0 17.0","11.1-11.2":0.01049,"14.0":0.02097,"15.0":0.02097,"16.0":0.01049,"18.0":0.06292,"19.0":0.05243},I:{"0":0.01806,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.31418,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00792,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":40.9054},R:{_:"0"},M:{"0":0.30814},Q:{_:"14.9"},O:{"0":0.02417},H:{"0":0}}; 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..d51a33b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/RO.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00437,"52":0.04806,"56":0.00437,"68":0.00874,"78":0.00874,"83":0.00874,"86":0.00437,"88":0.00437,"102":0.00874,"103":0.00874,"104":0.00437,"105":0.00874,"113":0.00874,"115":0.48059,"118":0.00437,"119":0.00437,"121":0.01311,"122":0.00437,"123":0.00437,"124":0.00874,"125":0.00874,"126":0.08738,"127":0.86069,"128":1.21458,"129":0.00437,_:"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 53 54 55 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 87 89 90 91 92 93 94 95 96 97 98 99 100 101 106 107 108 109 110 111 112 114 116 117 120 130 131 3.5 3.6"},D:{"41":0.00437,"47":0.00437,"48":0.00437,"49":0.02185,"51":0.00437,"52":0.00437,"57":0.00874,"61":0.00874,"70":0.01311,"71":0.00874,"73":0.00437,"75":0.00437,"76":0.00874,"79":0.03058,"80":0.00437,"81":0.00437,"83":0.00437,"85":0.00437,"86":0.00437,"87":0.02185,"88":0.03932,"89":0.00437,"90":0.00874,"91":0.00437,"92":0.00437,"93":0.02621,"94":0.02185,"96":0.00437,"97":0.00437,"98":0.03932,"99":0.00874,"100":0.09175,"101":0.00437,"102":0.01748,"103":0.02185,"104":0.02185,"105":0.00874,"106":0.01748,"107":0.02185,"108":0.02621,"109":1.52478,"110":0.01311,"111":0.01311,"112":0.02621,"113":0.13981,"114":0.16165,"115":0.03058,"116":0.07427,"117":0.01311,"118":0.02185,"119":0.04369,"120":0.51554,"121":0.03932,"122":0.07864,"123":0.22282,"124":0.19224,"125":0.55923,"126":25.81642,"127":4.46512,"128":0.00874,_:"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 42 43 44 45 46 50 53 54 55 56 58 59 60 62 63 64 65 66 67 68 69 72 74 77 78 84 95 129 130"},F:{"36":0.00437,"37":0.00437,"46":0.00874,"76":0.00437,"83":0.03058,"85":0.01311,"95":0.0699,"98":0.00437,"109":0.49807,"110":0.01748,"111":0.70341,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 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 77 78 79 80 81 82 84 86 87 88 89 90 91 92 93 94 96 97 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00437,"17":0.00437,"18":0.00437,"92":0.00437,"105":0.00437,"108":0.00437,"109":0.02621,"114":0.00437,"117":0.00437,"119":0.01311,"120":0.00874,"121":0.00437,"122":0.00874,"123":0.03058,"124":0.02621,"125":0.04806,"126":1.88304,"127":0.25777,_:"12 13 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 106 107 110 111 112 113 115 116 118"},E:{"9":0.00437,"14":0.00437,_:"0 4 5 6 7 8 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3","13.1":0.01311,"14.1":0.01748,"15.4":0.00437,"15.5":0.00437,"15.6":0.04806,"16.0":0.00437,"16.1":0.01311,"16.2":0.00874,"16.3":0.02621,"16.4":0.00874,"16.5":0.01311,"16.6":0.06554,"17.0":0.01311,"17.1":0.01748,"17.2":0.01748,"17.3":0.01748,"17.4":0.04369,"17.5":0.45875,"17.6":0.00437,"18.0":0.00874},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00225,"5.0-5.1":0.00112,"6.0-6.1":0.00674,"7.0-7.1":0.00674,"8.1-8.4":0,"9.0-9.2":0.00562,"9.3":0.02248,"10.0-10.2":0.0045,"10.3":0.03934,"11.0-11.2":0.1034,"11.3-11.4":0.01124,"12.0-12.1":0.00787,"12.2-12.5":0.14499,"13.0-13.1":0.00225,"13.2":0.0236,"13.3":0.00787,"13.4-13.7":0.03372,"14.0-14.4":0.07755,"14.5-14.8":0.08767,"15.0-15.1":0.04383,"15.2-15.3":0.04721,"15.4":0.05395,"15.5":0.06519,"15.6-15.8":0.59794,"16.0":0.12026,"16.1":0.25514,"16.2":0.12813,"16.3":0.21467,"16.4":0.05058,"16.5":0.09104,"16.6-16.7":0.7463,"17.0":0.06744,"17.1":0.10902,"17.2":0.10565,"17.3":0.15848,"17.4":0.39675,"17.5":7.2652,"17.6":0.0562,"18.0":0.07418},P:{"4":0.08222,"20":0.02056,"21":0.04111,"22":0.06167,"23":0.08222,"24":0.08222,"25":2.86747,_:"5.0-5.4 7.2-7.4 8.2 9.2 10.1 15.0","6.2-6.4":0.01028,"11.1-11.2":0.01028,"12.0":0.03083,"13.0":0.02056,"14.0":0.02056,"16.0":0.01028,"17.0":0.01028,"18.0":0.01028,"19.0":0.03083},I:{"0":0.06172,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00011},K:{"0":0.36728,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00983,"9":0.00492,"10":0.00492,"11":0.01966,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":41.07604},R:{_:"0"},M:{"0":0.32097},Q:{_:"14.9"},O:{"0":0.04505},H:{"0":0.01}}; 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..5324d8e --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/RS.js @@ -0,0 +1 @@ +module.exports={C:{"3":0.00355,"34":0.00355,"52":0.04264,"56":0.00355,"65":0.00711,"67":0.00355,"68":0.00355,"72":0.00355,"74":0.00355,"75":0.00711,"78":0.00711,"80":0.00355,"81":0.00355,"88":0.00355,"96":0.00355,"99":0.00355,"100":0.00355,"102":0.00355,"103":0.01066,"105":0.00355,"106":0.00355,"107":0.01066,"108":0.00711,"111":0.00711,"112":0.00355,"113":0.01421,"114":0.00355,"115":0.93799,"117":0.00355,"118":0.00711,"119":0.00355,"120":0.00355,"121":0.00355,"122":0.01421,"123":0.00711,"124":0.02842,"125":0.01421,"126":0.0533,"127":0.97352,"128":1.59885,"129":0.01066,_:"2 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 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 66 69 70 71 73 76 77 79 82 83 84 85 86 87 89 90 91 92 93 94 95 97 98 101 104 109 110 116 130 131 3.5 3.6"},D:{"29":0.00355,"38":0.00711,"47":0.00355,"48":0.00711,"49":0.03908,"53":0.00711,"56":0.00355,"65":0.00355,"68":0.00355,"69":0.00355,"70":0.01421,"71":0.00355,"72":0.00355,"74":0.00355,"75":0.00355,"76":0.00355,"78":0.02132,"79":0.32332,"80":0.00711,"81":0.01421,"83":0.01066,"84":0.00711,"85":0.02842,"86":0.01066,"87":0.18476,"88":0.02487,"89":0.01066,"90":0.01066,"91":0.01066,"92":0.01066,"93":0.28069,"94":0.03908,"95":0.02132,"96":0.01066,"97":0.02132,"98":0.01777,"99":0.01421,"100":0.00355,"101":0.00711,"102":0.01777,"103":0.04264,"104":0.02487,"105":0.01066,"106":0.02842,"107":0.02487,"108":0.04264,"109":3.41799,"110":0.01421,"111":0.01421,"112":0.01066,"113":0.0604,"114":0.08172,"115":0.01066,"116":0.0533,"117":0.01066,"118":0.02132,"119":0.04619,"120":0.07461,"121":0.08172,"122":0.15278,"123":0.07106,"124":0.16699,"125":0.34464,"126":16.68134,"127":2.17444,"128":0.01421,_:"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 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 50 51 52 54 55 57 58 59 60 61 62 63 64 66 67 73 77 129 130"},F:{"36":0.00355,"40":0.00711,"46":0.01066,"79":0.00355,"82":0.00355,"83":0.02842,"85":0.0533,"86":0.00355,"89":0.00711,"95":0.16699,"102":0.00355,"109":0.37307,"110":0.01777,"111":0.73547,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 74 75 76 77 78 80 81 84 87 88 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00711,"84":0.00355,"85":0.00355,"92":0.00355,"109":0.01421,"114":0.00355,"120":0.00711,"121":0.00355,"122":0.00355,"123":0.00711,"124":0.00711,"125":0.02842,"126":1.4745,"127":0.27358,_:"12 13 14 15 16 17 79 80 81 83 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 115 116 117 118 119"},E:{"4":0.00355,"11":0.00355,"14":0.00355,"15":0.00355,_:"0 5 6 7 8 9 10 12 13 3.1 3.2 5.1 6.1 7.1 10.1 11.1","9.1":0.00355,"12.1":0.00711,"13.1":0.02842,"14.1":0.03908,"15.1":0.00355,"15.2-15.3":0.00355,"15.4":0.00355,"15.5":0.00355,"15.6":0.08172,"16.0":0.01066,"16.1":0.00711,"16.2":0.00711,"16.3":0.01066,"16.4":0.01777,"16.5":0.01066,"16.6":0.07817,"17.0":0.00711,"17.1":0.01421,"17.2":0.02132,"17.3":0.01421,"17.4":0.03198,"17.5":0.32332,"17.6":0.00355,"18.0":0.00711},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00227,"5.0-5.1":0.00113,"6.0-6.1":0.0068,"7.0-7.1":0.0068,"8.1-8.4":0,"9.0-9.2":0.00567,"9.3":0.02268,"10.0-10.2":0.00454,"10.3":0.03968,"11.0-11.2":0.10431,"11.3-11.4":0.01134,"12.0-12.1":0.00794,"12.2-12.5":0.14627,"13.0-13.1":0.00227,"13.2":0.02381,"13.3":0.00794,"13.4-13.7":0.03402,"14.0-14.4":0.07824,"14.5-14.8":0.08844,"15.0-15.1":0.04422,"15.2-15.3":0.04762,"15.4":0.05442,"15.5":0.06576,"15.6-15.8":0.60321,"16.0":0.12132,"16.1":0.25738,"16.2":0.12926,"16.3":0.21657,"16.4":0.05102,"16.5":0.09184,"16.6-16.7":0.75288,"17.0":0.06803,"17.1":0.10998,"17.2":0.10658,"17.3":0.15987,"17.4":0.40025,"17.5":7.32922,"17.6":0.05669,"18.0":0.07483},P:{"4":0.17406,"20":0.02048,"21":0.03072,"22":0.05119,"23":0.08191,"24":0.05119,"25":2.46757,"5.0-5.4":0.03072,"6.2-6.4":0.03072,"7.2-7.4":0.01024,_:"8.2 9.2 10.1 12.0 16.0","11.1-11.2":0.03072,"13.0":0.01024,"14.0":0.03072,"15.0":0.01024,"17.0":0.01024,"18.0":0.01024,"19.0":0.04096},I:{"0":0.02569,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.36387,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.06471,"9":0.01213,"10":0.02022,"11":0.28311,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":50.66956},R:{_:"0"},M:{"0":0.19338},Q:{_:"14.9"},O:{"0":0.03223},H:{"0":0.01}}; 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..3fe8a03 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/RU.js @@ -0,0 +1 @@ +module.exports={C:{"31":0.00537,"38":0.00537,"48":0.00537,"50":0.00537,"51":0.00537,"52":0.13418,"56":0.00537,"68":0.01073,"70":0.00537,"72":0.01073,"75":0.01073,"77":0.00537,"78":0.0161,"81":0.00537,"82":0.00537,"87":0.00537,"88":0.00537,"89":0.00537,"91":0.01073,"92":0.00537,"94":0.00537,"96":0.01073,"98":0.00537,"99":0.00537,"100":0.00537,"101":0.00537,"102":0.0161,"103":0.02684,"104":0.00537,"105":0.00537,"106":0.00537,"107":0.00537,"108":0.0161,"109":0.01073,"110":0.01073,"111":0.01073,"112":0.00537,"113":0.01073,"114":0.00537,"115":0.89629,"116":0.00537,"117":0.00537,"118":0.00537,"119":0.00537,"120":0.01073,"121":0.0161,"122":0.01073,"123":0.08051,"124":0.0161,"125":0.0322,"126":0.04294,"127":0.68161,"128":1.09487,"129":0.00537,_:"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 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 49 53 54 55 57 58 59 60 61 62 63 64 65 66 67 69 71 73 74 76 79 80 83 84 85 86 90 93 95 97 130 131 3.5 3.6"},D:{"22":0.00537,"25":0.00537,"26":0.00537,"34":0.00537,"38":0.01073,"41":0.00537,"47":0.00537,"48":0.00537,"49":0.04294,"51":0.03757,"53":0.00537,"56":0.0161,"58":0.02147,"60":0.00537,"65":0.00537,"67":0.00537,"68":0.01073,"69":0.0161,"70":0.01073,"71":0.0161,"72":0.0161,"73":0.00537,"74":0.02147,"75":0.0161,"76":0.0322,"77":0.01073,"78":0.0161,"79":0.08587,"80":0.0483,"81":0.0322,"83":0.02684,"84":0.0161,"85":0.04294,"86":0.05904,"87":0.08051,"88":0.05367,"89":0.0644,"90":0.03757,"91":0.0322,"92":0.01073,"93":0.00537,"94":0.0161,"95":0.00537,"96":0.01073,"97":0.04294,"98":0.0322,"99":0.05904,"100":0.0161,"101":0.02147,"102":0.05367,"103":0.03757,"104":0.05367,"105":0.02684,"106":0.20395,"107":0.05367,"108":0.08587,"109":2.88208,"110":0.0644,"111":0.06977,"112":0.0483,"113":0.07514,"114":0.12881,"115":0.02147,"116":0.09124,"117":0.02147,"118":0.06977,"119":0.05904,"120":0.11271,"121":0.12344,"122":0.20931,"123":0.16101,"124":0.29519,"125":0.45083,"126":12.24749,"127":1.61547,"128":0.01073,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 27 28 29 30 31 32 33 35 36 37 39 40 42 43 44 45 46 50 52 54 55 57 59 61 62 63 64 66 129 130"},F:{"36":0.05367,"46":0.00537,"53":0.00537,"54":0.00537,"55":0.00537,"60":0.00537,"62":0.00537,"64":0.00537,"65":0.00537,"70":0.00537,"72":0.00537,"73":0.00537,"74":0.00537,"76":0.00537,"77":0.0161,"79":0.05367,"80":0.00537,"81":0.00537,"82":0.00537,"83":0.07514,"84":0.01073,"85":0.06977,"86":0.02684,"87":0.00537,"89":0.00537,"90":0.00537,"92":0.00537,"93":0.00537,"94":0.00537,"95":0.92312,"96":0.00537,"99":0.00537,"102":0.00537,"106":0.00537,"107":0.00537,"108":0.00537,"109":0.98753,"110":0.05904,"111":2.1468,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 56 57 58 63 66 67 68 69 71 75 78 88 91 97 98 100 101 103 104 105 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00537,"17":0.00537,"18":0.02147,"79":0.00537,"80":0.01073,"81":0.00537,"83":0.00537,"84":0.01073,"85":0.00537,"86":0.01073,"87":0.00537,"88":0.00537,"89":0.00537,"90":0.00537,"92":0.02147,"100":0.00537,"102":0.00537,"103":0.00537,"106":0.00537,"107":0.00537,"108":0.01073,"109":0.08051,"110":0.02147,"111":0.00537,"112":0.01073,"114":0.01073,"115":0.00537,"117":0.00537,"119":0.01073,"120":0.01073,"121":0.25762,"122":0.01073,"123":0.01073,"124":0.02147,"125":0.06977,"126":3.03236,"127":0.44009,_:"12 13 14 15 91 93 94 95 96 97 98 99 101 104 105 113 116 118"},E:{"10":0.00537,"14":0.02684,"15":0.00537,_:"0 4 5 6 7 8 9 11 12 13 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.05367,"11.1":0.00537,"12.1":0.0161,"13.1":0.0322,"14.1":0.05367,"15.1":0.01073,"15.2-15.3":0.01073,"15.4":0.01073,"15.5":0.0161,"15.6":0.11271,"16.0":0.01073,"16.1":0.07514,"16.2":0.02684,"16.3":0.0483,"16.4":0.01073,"16.5":0.0322,"16.6":0.11271,"17.0":0.0322,"17.1":0.04294,"17.2":0.02684,"17.3":0.03757,"17.4":0.08587,"17.5":0.59574,"17.6":0.00537,"18.0":0.00537},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00178,"5.0-5.1":0.00089,"6.0-6.1":0.00533,"7.0-7.1":0.00533,"8.1-8.4":0,"9.0-9.2":0.00444,"9.3":0.01775,"10.0-10.2":0.00355,"10.3":0.03107,"11.0-11.2":0.08167,"11.3-11.4":0.00888,"12.0-12.1":0.00621,"12.2-12.5":0.11451,"13.0-13.1":0.00178,"13.2":0.01864,"13.3":0.00621,"13.4-13.7":0.02663,"14.0-14.4":0.06125,"14.5-14.8":0.06924,"15.0-15.1":0.03462,"15.2-15.3":0.03728,"15.4":0.04261,"15.5":0.05149,"15.6-15.8":0.47225,"16.0":0.09498,"16.1":0.2015,"16.2":0.1012,"16.3":0.16955,"16.4":0.03995,"16.5":0.0719,"16.6-16.7":0.58942,"17.0":0.05326,"17.1":0.08611,"17.2":0.08344,"17.3":0.12516,"17.4":0.31335,"17.5":5.73798,"17.6":0.04438,"18.0":0.05859},P:{"4":0.07493,"20":0.02141,"21":0.02141,"22":0.03211,"23":0.03211,"24":0.04282,"25":0.73856,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 14.0 15.0 16.0","7.2-7.4":0.0107,"11.1-11.2":0.0107,"13.0":0.0107,"17.0":0.0107,"18.0":0.0107,"19.0":0.0107},I:{"0":0.0554,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00009},K:{"0":0.9822,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.04723,"9":0.0059,"10":0.0059,"11":0.11807,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":30.91444},R:{_:"0"},M:{"0":0.25482},Q:{"14.9":0.00927},O:{"0":0.16679},H:{"0":0}}; 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..9e316d1 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/RW.js @@ -0,0 +1 @@ +module.exports={C:{"40":0.00425,"41":0.00425,"68":0.00425,"75":0.00425,"78":0.00851,"79":0.00851,"80":0.02127,"81":0.06806,"82":0.02127,"84":0.00425,"88":0.02127,"99":0.00425,"111":0.00425,"115":0.22121,"116":0.01276,"118":0.00425,"121":0.00425,"122":0.00425,"123":0.00851,"124":0.00851,"125":0.00851,"126":0.02552,"127":0.64661,"128":0.91461,"129":0.05956,_:"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 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 69 70 71 72 73 74 76 77 83 85 86 87 89 90 91 92 93 94 95 96 97 98 100 101 102 103 104 105 106 107 108 109 110 112 113 114 117 119 120 130 131 3.5 3.6"},D:{"37":0.00425,"38":0.00425,"49":0.00425,"55":0.00425,"56":0.01276,"57":0.00851,"58":0.00851,"61":0.00425,"65":0.00425,"68":0.00425,"70":0.00851,"71":0.00425,"73":0.00425,"74":0.02127,"75":0.00851,"76":0.00425,"78":0.00851,"79":0.00851,"80":0.02552,"81":0.01702,"83":0.03829,"84":0.03829,"85":0.16165,"86":0.01276,"87":0.06381,"88":0.02552,"90":0.00851,"91":0.00851,"92":0.00425,"93":0.02978,"94":0.00425,"95":0.01702,"97":0.00425,"98":0.09784,"99":0.02978,"102":0.00425,"103":0.09359,"104":0.00851,"105":0.00425,"106":0.01276,"107":0.01276,"108":0.00425,"109":0.75721,"110":0.00851,"111":0.00851,"112":0.01702,"113":0.03829,"114":0.02127,"115":0.01276,"116":0.15314,"117":0.02978,"118":0.00851,"119":0.03403,"120":0.20845,"121":0.14464,"122":0.15314,"123":0.1106,"124":0.19568,"125":0.37435,"126":18.2922,"127":2.46307,"128":0.01276,"129":0.00425,_:"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 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 59 60 62 63 64 66 67 69 72 77 89 96 100 101 130"},F:{"45":0.01276,"70":0.01276,"71":0.00425,"79":0.01702,"83":0.07232,"95":0.01702,"108":0.00425,"109":0.07657,"110":0.01702,"111":0.55302,_:"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 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 72 73 74 75 76 77 78 80 81 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00851,"13":0.00851,"14":0.01276,"15":0.00851,"16":0.00851,"17":0.01276,"18":0.04679,"84":0.00425,"85":0.02552,"89":0.00851,"90":0.01702,"92":0.24673,"100":0.01702,"103":0.00851,"108":0.01276,"109":0.01702,"110":0.00425,"112":0.00851,"113":0.01276,"114":0.00851,"115":0.00851,"116":0.01702,"117":0.00425,"118":0.00425,"119":0.00851,"120":0.04254,"121":0.00425,"122":0.02127,"123":0.03403,"124":0.02978,"125":0.08933,"126":3.55209,"127":0.42965,_:"79 80 81 83 86 87 88 91 93 94 95 96 97 98 99 101 102 104 105 106 107 111"},E:{"14":0.01276,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 16.2 17.6","5.1":0.01276,"11.1":0.00425,"13.1":0.02127,"14.1":0.01702,"15.5":0.00425,"15.6":0.02552,"16.0":0.00425,"16.1":0.00851,"16.3":0.00425,"16.4":0.00425,"16.5":0.01276,"16.6":0.06381,"17.0":0.02978,"17.1":0.01702,"17.2":0.02552,"17.3":0.00851,"17.4":0.03829,"17.5":0.27226,"18.0":0.00425},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00101,"5.0-5.1":0.00051,"6.0-6.1":0.00304,"7.0-7.1":0.00304,"8.1-8.4":0,"9.0-9.2":0.00254,"9.3":0.01015,"10.0-10.2":0.00203,"10.3":0.01776,"11.0-11.2":0.04668,"11.3-11.4":0.00507,"12.0-12.1":0.00355,"12.2-12.5":0.06545,"13.0-13.1":0.00101,"13.2":0.01065,"13.3":0.00355,"13.4-13.7":0.01522,"14.0-14.4":0.03501,"14.5-14.8":0.03958,"15.0-15.1":0.01979,"15.2-15.3":0.02131,"15.4":0.02435,"15.5":0.02943,"15.6-15.8":0.26992,"16.0":0.05429,"16.1":0.11517,"16.2":0.05784,"16.3":0.09691,"16.4":0.02283,"16.5":0.0411,"16.6-16.7":0.33689,"17.0":0.03044,"17.1":0.04922,"17.2":0.04769,"17.3":0.07154,"17.4":0.1791,"17.5":3.27965,"17.6":0.02537,"18.0":0.03349},P:{"4":0.05164,"20":0.01033,"21":0.03099,"22":0.10329,"23":0.05164,"24":0.13427,"25":0.88827,"5.0-5.4":0.03099,"6.2-6.4":0.01033,"7.2-7.4":0.0723,_:"8.2 9.2 10.1 12.0 13.0 14.0","11.1-11.2":0.01033,"15.0":0.02066,"16.0":0.03099,"17.0":0.05164,"18.0":0.01033,"19.0":0.05164},I:{"0":0.1775,"3":0,"4":0.00002,"2.1":0,"2.2":0.00004,"2.3":0,"4.1":0.00011,"4.2-4.3":0.00007,"4.4":0,"4.4.3-4.4.4":0.0003},K:{"0":5.04403,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.02552,_:"6 7 8 9 10 5.5"},S:{"2.5":0.03448,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":53.1386},R:{_:"0"},M:{"0":0.09768},Q:{"14.9":0.00575},O:{"0":0.31028},H:{"0":1.38}}; 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..5694ce2 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SA.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00161,"52":0.00322,"72":0.00161,"78":0.00161,"82":0.00161,"89":0.00161,"90":0.00161,"91":0.00161,"98":0.00161,"101":0.00161,"102":0.00322,"105":0.00161,"106":0.00161,"107":0.00161,"108":0.00161,"111":0.00161,"115":0.04514,"118":0.07738,"121":0.00161,"122":0.00161,"123":0.00161,"124":0.00322,"125":0.00161,"126":0.00645,"127":0.12896,"128":0.1886,"129":0.00161,_:"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 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 83 84 85 86 87 88 92 93 94 95 96 97 99 100 103 104 109 110 112 113 114 116 117 119 120 130 131 3.5 3.6"},D:{"5":0.00322,"11":0.00322,"34":0.00161,"38":0.00645,"41":0.00322,"47":0.00322,"48":0.00161,"49":0.00161,"51":0.00161,"56":0.00322,"58":0.02096,"63":0.00322,"65":0.00161,"67":0.00161,"68":0.00161,"69":0.00161,"70":0.00161,"72":0.00806,"73":0.00161,"74":0.00161,"75":0.00322,"76":0.00161,"78":0.00161,"79":0.01934,"80":0.00322,"81":0.00161,"83":0.00645,"85":0.00322,"86":0.00161,"87":0.01934,"88":0.00645,"89":0.00161,"90":0.00322,"91":0.00645,"92":0.00161,"93":0.01612,"94":0.01128,"95":0.00484,"96":0.00322,"97":0.00161,"98":0.00645,"99":0.02418,"100":0.00322,"101":0.00484,"102":0.00322,"103":0.02418,"104":0.00322,"105":0.00645,"106":0.00645,"107":0.00967,"108":0.01128,"109":0.5368,"110":0.01612,"111":0.01128,"112":0.00967,"113":0.00161,"114":0.00645,"115":0.00806,"116":0.03546,"117":0.01451,"118":0.01612,"119":0.01934,"120":0.0403,"121":0.02902,"122":0.08382,"123":0.03708,"124":0.10478,"125":0.1886,"126":7.96167,"127":0.94463,"128":0.00322,_:"4 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 39 40 42 43 44 45 46 50 52 53 54 55 57 59 60 61 62 64 66 71 77 84 129 130"},F:{"46":0.00161,"82":0.00322,"83":0.01934,"95":0.00161,"108":0.01451,"109":0.05964,"110":0.00484,"111":0.0403,_:"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 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00484,"92":0.00806,"100":0.00161,"105":0.00161,"107":0.00161,"108":0.00161,"109":0.0129,"110":0.00161,"113":0.00161,"114":0.00322,"115":0.00161,"116":0.00161,"117":0.00322,"118":0.00322,"119":0.00322,"120":0.00645,"121":0.00645,"122":0.00484,"123":0.01128,"124":0.01612,"125":0.22407,"126":1.57331,"127":0.21117,_:"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 101 102 103 104 106 111 112"},E:{"13":0.00161,"14":0.0129,"15":0.00322,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00161,"11.1":0.00322,"12.1":0.00161,"13.1":0.00645,"14.1":0.03546,"15.1":0.00484,"15.2-15.3":0.00484,"15.4":0.00967,"15.5":0.01451,"15.6":0.08382,"16.0":0.01612,"16.1":0.03063,"16.2":0.02257,"16.3":0.03869,"16.4":0.01773,"16.5":0.02579,"16.6":0.10156,"17.0":0.01773,"17.1":0.01934,"17.2":0.02257,"17.3":0.03546,"17.4":0.0935,"17.5":0.92529,"17.6":0.00484,"18.0":0.01128},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00478,"5.0-5.1":0.00239,"6.0-6.1":0.01433,"7.0-7.1":0.01433,"8.1-8.4":0,"9.0-9.2":0.01194,"9.3":0.04778,"10.0-10.2":0.00956,"10.3":0.08361,"11.0-11.2":0.21978,"11.3-11.4":0.02389,"12.0-12.1":0.01672,"12.2-12.5":0.30817,"13.0-13.1":0.00478,"13.2":0.05017,"13.3":0.01672,"13.4-13.7":0.07167,"14.0-14.4":0.16483,"14.5-14.8":0.18633,"15.0-15.1":0.09317,"15.2-15.3":0.10033,"15.4":0.11467,"15.5":0.13856,"15.6-15.8":1.2709,"16.0":0.25561,"16.1":0.54228,"16.2":0.27233,"16.3":0.45628,"16.4":0.1075,"16.5":0.1935,"16.6-16.7":1.58623,"17.0":0.14333,"17.1":0.23172,"17.2":0.22456,"17.3":0.33684,"17.4":0.84328,"17.5":15.44187,"17.6":0.11945,"18.0":0.15767},P:{"4":0.02037,"20":0.02037,"21":0.0611,"22":0.14256,"23":0.08146,"24":0.09165,"25":1.43578,"5.0-5.4":0.01018,_:"6.2-6.4 8.2 9.2 10.1 12.0 15.0","7.2-7.4":0.03055,"11.1-11.2":0.01018,"13.0":0.01018,"14.0":0.01018,"16.0":0.01018,"17.0":0.01018,"18.0":0.01018,"19.0":0.03055},I:{"0":0.05015,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00009},K:{"0":0.41101,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00509,"9":0.0017,"10":0.0017,"11":0.056,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":56.92592},R:{_:"0"},M:{"0":0.05872},Q:{_:"14.9"},O:{"0":1.35886},H:{"0":0}}; 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..72fc43f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SB.js @@ -0,0 +1 @@ +module.exports={C:{"78":0.0031,"103":0.0062,"108":0.0062,"109":0.0031,"112":0.0031,"115":0.04343,"124":0.0031,"126":0.06204,"127":0.21404,"128":0.26677,"129":0.0031,_:"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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 110 111 113 114 116 117 118 119 120 121 122 123 125 130 131 3.5 3.6"},D:{"49":0.0031,"53":0.68864,"56":0.12408,"59":0.0031,"69":0.0031,"70":0.0062,"79":0.01551,"81":0.0062,"88":0.0062,"89":0.01241,"91":0.02792,"94":0.01241,"96":0.0031,"97":0.00931,"98":0.01551,"99":0.02171,"100":0.00931,"102":0.04653,"103":0.04343,"105":0.0062,"106":0.04033,"107":0.00931,"108":0.63591,"109":0.18922,"110":0.0031,"111":0.04033,"113":0.01241,"114":0.0031,"115":0.0062,"116":0.01861,"117":0.00931,"118":0.02792,"119":0.00931,"120":0.00931,"121":0.05273,"122":0.05894,"123":0.05273,"124":0.05894,"125":0.20163,"126":12.408,"127":1.98838,_:"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 54 55 57 58 60 61 62 63 64 65 66 67 68 71 72 73 74 75 76 77 78 80 83 84 85 86 87 90 92 93 95 101 104 112 128 129 130"},F:{"83":0.02482,"95":0.00931,"109":0.0062,"111":0.152,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"13":0.01551,"14":0.01551,"15":0.0062,"16":0.05273,"17":0.08375,"18":0.00931,"84":0.00931,"89":0.0031,"90":0.0031,"92":0.02792,"100":0.02792,"109":0.07445,"112":0.00931,"114":0.0062,"116":0.02171,"117":0.0062,"119":0.02482,"121":0.0062,"122":0.01551,"123":0.02792,"124":0.04343,"125":0.18612,"126":5.13071,"127":0.38465,_:"12 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 113 115 118 120"},E:{"15":0.0062,_:"0 4 5 6 7 8 9 10 11 12 13 14 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4 15.5 16.0 16.4 17.0 17.6","14.1":0.00931,"15.6":0.23885,"16.1":0.0031,"16.2":0.00931,"16.3":0.0062,"16.5":0.00931,"16.6":0.0031,"17.1":0.0062,"17.2":0.0031,"17.3":0.00931,"17.4":0.00931,"17.5":0.21714,"18.0":0.0031},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00075,"5.0-5.1":0.00038,"6.0-6.1":0.00226,"7.0-7.1":0.00226,"8.1-8.4":0,"9.0-9.2":0.00189,"9.3":0.00755,"10.0-10.2":0.00151,"10.3":0.0132,"11.0-11.2":0.03471,"11.3-11.4":0.00377,"12.0-12.1":0.00264,"12.2-12.5":0.04867,"13.0-13.1":0.00075,"13.2":0.00792,"13.3":0.00264,"13.4-13.7":0.01132,"14.0-14.4":0.02603,"14.5-14.8":0.02943,"15.0-15.1":0.01471,"15.2-15.3":0.01585,"15.4":0.01811,"15.5":0.02188,"15.6-15.8":0.20071,"16.0":0.04037,"16.1":0.08564,"16.2":0.04301,"16.3":0.07206,"16.4":0.01698,"16.5":0.03056,"16.6-16.7":0.2505,"17.0":0.02264,"17.1":0.03659,"17.2":0.03546,"17.3":0.05319,"17.4":0.13317,"17.5":2.43865,"17.6":0.01886,"18.0":0.0249},P:{"4":0.11187,"20":0.01017,"21":0.08136,"22":0.1017,"23":0.06102,"24":0.06102,"25":1.34246,"5.0-5.4":0.02034,"6.2-6.4":0.05085,"7.2-7.4":0.12204,_:"8.2 9.2 10.1 11.1-11.2 12.0 15.0","13.0":0.01017,"14.0":0.03051,"16.0":0.1017,"17.0":0.05085,"18.0":0.02034,"19.0":0.04068},I:{"0":0.06873,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00012},K:{"0":1.64218,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01064,"10":0.00709,"11":0.00709,_:"6 7 9 5.5"},S:{"2.5":0.0069,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":64.87463},R:{_:"0"},M:{"0":1.50355},Q:{_:"14.9"},O:{"0":0.84833},H:{"0":0.02}}; 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..80471c8 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SC.js @@ -0,0 +1 @@ +module.exports={C:{"9":0.00517,"47":0.01552,"52":0.01552,"64":0.00517,"65":0.00517,"68":0.01552,"69":0.01034,"70":0.01034,"71":0.01034,"72":0.02069,"73":0.01552,"74":0.01552,"75":0.01034,"76":0.02069,"77":0.01552,"78":0.01034,"79":0.01034,"80":0.02069,"81":0.01034,"82":0.01034,"83":0.01552,"89":0.00517,"91":0.01034,"92":0.01034,"95":0.04655,"96":0.01034,"97":0.00517,"99":0.00517,"100":0.01552,"101":0.00517,"102":0.06206,"103":0.00517,"104":0.00517,"105":0.01034,"106":0.00517,"108":0.00517,"109":0.01552,"110":0.14482,"111":0.01034,"113":0.00517,"114":0.00517,"115":0.481,"116":0.07758,"117":0.00517,"120":0.00517,"123":0.00517,"124":0.17585,"125":0.22757,"126":0.01034,"127":0.47065,"128":1.01371,_:"2 3 4 5 6 7 8 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 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 66 67 84 85 86 87 88 90 93 94 98 107 112 118 119 121 122 129 130 131 3.6","3.5":0.00517},D:{"10":0.00517,"30":0.00517,"41":0.01034,"45":10.87672,"47":0.00517,"48":0.00517,"49":0.01034,"54":0.00517,"60":0.03103,"63":0.02069,"64":0.00517,"65":0.00517,"66":0.00517,"67":0.01034,"68":0.0931,"69":0.06724,"70":0.07241,"71":0.06724,"72":0.08792,"73":0.10344,"74":0.11378,"75":0.06724,"76":0.07758,"77":0.31549,"78":0.10861,"79":0.11896,"80":0.13964,"81":0.11378,"83":0.13964,"84":0.05689,"85":0.11378,"86":0.20688,"87":0.13447,"88":0.14482,"89":0.10344,"90":0.15516,"91":0.05689,"92":0.02586,"93":0.02586,"94":0.00517,"95":0.00517,"96":0.00517,"97":0.04138,"98":0.02069,"99":0.01552,"100":0.01034,"101":0.02069,"102":0.19136,"103":0.03103,"104":0.01034,"105":0.02069,"106":0.0362,"107":0.01034,"108":0.05689,"109":0.82752,"110":0.63616,"111":0.21722,"112":0.04138,"113":0.03103,"114":0.07241,"115":0.21205,"116":0.4241,"117":0.04138,"118":0.12413,"119":0.1293,"120":0.15516,"121":0.13964,"122":0.46548,"123":0.58444,"124":2.19293,"125":1.6809,"126":10.83017,"127":1.73779,"128":0.01034,_:"4 5 6 7 8 9 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 38 39 40 42 43 44 46 50 51 52 53 55 56 57 58 59 61 62 129 130"},F:{"46":0.01034,"47":0.00517,"48":0.00517,"49":0.01034,"51":0.00517,"52":0.00517,"53":0.0362,"54":0.04655,"55":0.06206,"56":0.00517,"57":0.00517,"60":0.00517,"62":0.00517,"65":0.01034,"66":0.00517,"67":0.01552,"68":0.01034,"69":0.00517,"70":0.00517,"71":0.00517,"72":0.00517,"73":0.00517,"74":0.01034,"75":0.01034,"76":0.01034,"79":0.00517,"83":0.08275,"89":0.00517,"90":0.00517,"91":0.00517,"94":0.01034,"95":0.05689,"96":0.00517,"102":0.00517,"106":0.00517,"108":0.00517,"109":0.28446,"110":0.00517,"111":0.24308,_:"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 50 58 63 64 77 78 80 81 82 84 85 86 87 88 92 93 97 98 99 100 101 103 104 105 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00517,"14":0.00517,"15":0.00517,"16":0.01552,"18":0.02069,"79":0.0362,"80":0.0931,"81":0.0931,"83":0.08275,"84":0.09827,"85":0.04655,"86":0.07758,"87":0.06206,"88":0.06206,"89":0.07241,"90":0.07241,"91":0.01034,"92":0.00517,"93":0.00517,"97":0.01552,"101":0.00517,"107":0.00517,"108":0.01552,"109":0.01034,"110":0.30515,"111":0.00517,"113":0.00517,"114":0.01552,"115":0.00517,"116":0.00517,"117":0.01034,"118":0.01552,"119":0.01034,"120":0.01034,"121":0.0362,"122":0.02069,"123":0.02586,"124":0.02069,"125":0.03103,"126":2.20844,"127":0.26894,_:"13 17 94 95 96 98 99 100 102 103 104 105 106 112"},E:{"9":0.01034,"14":0.04138,_:"0 4 5 6 7 8 10 11 12 13 15 3.1 3.2 6.1 7.1 10.1 12.1","5.1":0.00517,"9.1":0.41893,"11.1":0.00517,"13.1":0.15516,"14.1":0.02069,"15.1":0.04655,"15.2-15.3":0.02586,"15.4":0.04138,"15.5":0.02586,"15.6":0.07758,"16.0":0.01034,"16.1":0.10861,"16.2":0.04655,"16.3":0.01552,"16.4":0.01034,"16.5":0.22757,"16.6":0.05172,"17.0":0.00517,"17.1":0.01552,"17.2":0.01552,"17.3":0.02069,"17.4":0.26377,"17.5":0.54306,"17.6":0.00517,"18.0":0.04655},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00157,"5.0-5.1":0.00078,"6.0-6.1":0.0047,"7.0-7.1":0.0047,"8.1-8.4":0,"9.0-9.2":0.00392,"9.3":0.01566,"10.0-10.2":0.00313,"10.3":0.02741,"11.0-11.2":0.07205,"11.3-11.4":0.00783,"12.0-12.1":0.00548,"12.2-12.5":0.10102,"13.0-13.1":0.00157,"13.2":0.01645,"13.3":0.00548,"13.4-13.7":0.02349,"14.0-14.4":0.05403,"14.5-14.8":0.06108,"15.0-15.1":0.03054,"15.2-15.3":0.03289,"15.4":0.03759,"15.5":0.04542,"15.6-15.8":0.41661,"16.0":0.08379,"16.1":0.17776,"16.2":0.08927,"16.3":0.14957,"16.4":0.03524,"16.5":0.06343,"16.6-16.7":0.51998,"17.0":0.04699,"17.1":0.07596,"17.2":0.07361,"17.3":0.11042,"17.4":0.27643,"17.5":5.06197,"17.6":0.03916,"18.0":0.05168},P:{"20":0.04192,"21":0.01048,"22":0.08383,"23":0.04192,"24":0.06288,"25":1.70811,_:"4 5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 15.0 16.0 17.0 18.0","7.2-7.4":0.06288,"14.0":0.01048,"19.0":0.07335},I:{"0":0.01443,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":1.34218,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.58185,"9":0.00647,"11":0.05819,_:"6 7 10 5.5"},S:{"2.5":0.0338,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":39.2149},R:{_:"0"},M:{"0":0.78214},Q:{"14.9":0.07242},O:{"0":1.22631},H:{"0":0}}; 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..fce6149 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SD.js @@ -0,0 +1 @@ +module.exports={C:{"44":0.00096,"45":0.00048,"46":0.00048,"47":0.00383,"48":0.00335,"52":0.00048,"59":0.00048,"61":0.00048,"64":0.00048,"66":0.00048,"69":0.00096,"72":0.0024,"73":0.00048,"78":0.00048,"80":0.00096,"81":0.00048,"83":0.00287,"85":0.00096,"89":0.00048,"91":0.00144,"93":0.00096,"94":0.00144,"95":0.00048,"96":0.00096,"98":0.00048,"101":0.00096,"102":0.00048,"104":0.00192,"106":0.00096,"108":0.00192,"109":0.00144,"110":0.00096,"111":0.00048,"112":0.00096,"113":0.00096,"114":0.00048,"115":0.15568,"117":0.00048,"118":0.00287,"119":0.00192,"120":0.00048,"121":0.00623,"122":0.00144,"123":0.00192,"124":0.00287,"125":0.00719,"126":0.01102,"127":0.09197,"128":0.18921,"129":0.00192,"130":0.00048,_:"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 49 50 51 53 54 55 56 57 58 60 62 63 65 67 68 70 71 74 75 76 77 79 82 84 86 87 88 90 92 97 99 100 103 105 107 116 131 3.5 3.6"},D:{"23":0.00048,"26":0.00144,"33":0.00096,"37":0.00048,"39":0.0024,"41":0.00048,"43":0.0024,"44":0.0024,"48":0.00192,"49":0.00096,"50":0.00671,"52":0.00096,"56":0.00431,"57":0.00431,"58":0.10921,"61":0.00814,"63":0.00719,"64":0.00048,"66":0.00048,"68":0.00766,"69":0.00527,"70":0.01533,"71":0.00144,"72":0.00096,"74":0.00144,"75":0.00144,"76":0.00383,"78":0.05173,"79":0.01054,"80":0.00287,"81":0.00383,"83":0.0091,"84":0.00335,"85":0.00383,"86":0.00623,"87":0.0091,"88":0.01581,"89":0.00335,"90":0.00144,"91":0.00527,"92":0.00479,"93":0.00048,"94":0.00048,"96":0.00479,"97":0.00096,"98":0.00144,"99":0.0273,"100":0.00048,"101":0.00335,"102":0.0024,"103":0.02443,"104":0.01581,"105":0.00287,"106":0.00862,"107":0.00144,"108":0.01198,"109":0.15759,"110":0.00096,"111":0.01245,"112":0.00335,"113":0.00287,"114":0.00766,"115":0.00144,"116":0.00623,"117":0.01054,"118":0.01293,"119":0.0115,"120":0.02395,"121":0.00575,"122":0.01581,"123":0.01198,"124":0.02539,"125":0.06754,"126":0.85262,"127":0.10969,"128":0.0024,"129":0.00048,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 27 28 29 30 31 32 34 35 36 38 40 42 45 46 47 51 53 54 55 59 60 62 65 67 73 77 95 130"},F:{"22":0.00144,"36":0.00048,"40":0.00144,"43":0.00192,"45":0.00048,"50":0.00144,"67":0.00144,"69":0.0024,"72":0.00144,"73":0.00383,"74":0.00096,"76":0.00048,"79":0.00479,"83":0.03209,"84":0.00719,"85":0.00096,"94":0.00048,"95":0.01102,"101":0.00048,"102":0.00048,"104":0.00096,"106":0.00096,"108":0.00479,"109":0.01245,"110":0.02156,"111":0.03257,_:"9 11 12 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 41 42 44 46 47 48 49 51 52 53 54 55 56 57 58 60 62 63 64 65 66 68 70 71 75 77 78 80 81 82 86 87 88 89 90 91 92 93 96 97 98 99 100 103 105 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00287,"14":0.00766,"15":0.00144,"16":0.00479,"17":0.00287,"18":0.00862,"80":0.00144,"84":0.0091,"89":0.00096,"90":0.0091,"92":0.02156,"100":0.00479,"103":0.00048,"106":0.00048,"107":0.00048,"108":0.00144,"109":0.00719,"110":0.00096,"111":0.00192,"112":0.00096,"114":0.00096,"115":0.00096,"116":0.00096,"117":0.00048,"119":0.00144,"120":0.0024,"121":0.00096,"122":0.00814,"123":0.00527,"124":0.00335,"125":0.04455,"126":0.28165,"127":0.0297,_:"13 79 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 104 105 113 118"},E:{"13":0.00048,"14":0.00048,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 17.3 17.4 17.6 18.0","5.1":0.00527,"12.1":0.00048,"15.6":0.00144,"16.3":0.00048,"16.5":0.00192,"16.6":0.00335,"17.0":0.00048,"17.1":0.00144,"17.2":0.00048,"17.5":0.01341},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00036,"5.0-5.1":0.00018,"6.0-6.1":0.00107,"7.0-7.1":0.00107,"8.1-8.4":0,"9.0-9.2":0.00089,"9.3":0.00358,"10.0-10.2":0.00072,"10.3":0.00626,"11.0-11.2":0.01647,"11.3-11.4":0.00179,"12.0-12.1":0.00125,"12.2-12.5":0.02309,"13.0-13.1":0.00036,"13.2":0.00376,"13.3":0.00125,"13.4-13.7":0.00537,"14.0-14.4":0.01235,"14.5-14.8":0.01396,"15.0-15.1":0.00698,"15.2-15.3":0.00752,"15.4":0.00859,"15.5":0.01038,"15.6-15.8":0.09523,"16.0":0.01915,"16.1":0.04063,"16.2":0.02041,"16.3":0.03419,"16.4":0.00805,"16.5":0.0145,"16.6-16.7":0.11885,"17.0":0.01074,"17.1":0.01736,"17.2":0.01683,"17.3":0.02524,"17.4":0.06319,"17.5":1.15702,"17.6":0.00895,"18.0":0.01181},P:{"4":0.23071,"20":0.11034,"21":0.27084,"22":0.5818,"23":0.31096,"24":0.32099,"25":0.82255,"5.0-5.4":0.02006,"6.2-6.4":0.04012,"7.2-7.4":0.50155,"8.2":0.02006,"9.2":0.04012,_:"10.1","11.1-11.2":0.03009,"12.0":0.02006,"13.0":0.05016,"14.0":0.11034,"15.0":0.02006,"16.0":0.34106,"17.0":0.07022,"18.0":0.1304,"19.0":0.23071},I:{"0":0.23719,"3":0,"4":0.00002,"2.1":0,"2.2":0.00005,"2.3":0,"4.1":0.00014,"4.2-4.3":0.0001,"4.4":0,"4.4.3-4.4.4":0.0004},K:{"0":8.76232,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01054,_:"6 7 8 9 10 5.5"},S:{"2.5":0.01904,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":78.84264},R:{_:"0"},M:{"0":0.12377},Q:{_:"14.9"},O:{"0":1.19013},H:{"0":1.13}}; 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..3f60f59 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SE.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00939,"56":0.0047,"59":0.00939,"68":0.0047,"78":0.01409,"88":0.00939,"101":0.0047,"102":0.0047,"105":0.01409,"108":0.0047,"113":0.00939,"115":0.25828,"121":0.0047,"123":0.0047,"124":0.00939,"125":0.02348,"126":0.03287,"127":0.61518,"128":1.11765,_:"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 57 58 60 61 62 63 64 65 66 67 69 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 99 100 103 104 106 107 109 110 111 112 114 116 117 118 119 120 122 129 130 131 3.5 3.6"},D:{"49":0.00939,"62":0.0047,"65":0.0047,"66":0.04226,"68":0.0047,"70":0.0047,"74":0.06105,"75":0.07514,"76":0.0047,"79":0.02818,"80":0.0047,"85":0.0047,"87":0.01878,"88":0.00939,"89":0.01878,"90":0.0047,"91":0.01409,"92":0.0047,"93":0.07983,"94":0.0047,"96":0.0047,"97":0.0047,"98":0.01409,"99":0.00939,"102":0.01409,"103":0.33811,"104":0.01878,"105":0.00939,"106":0.01409,"107":0.00939,"108":0.1127,"109":0.85467,"110":0.01409,"111":0.01409,"112":0.00939,"113":0.25358,"114":0.30524,"115":0.01878,"116":0.26298,"117":0.05635,"118":0.15027,"119":0.12679,"120":0.15027,"121":0.17845,"122":0.19723,"123":0.30994,"124":0.63866,"125":2.4701,"126":23.41895,"127":1.93006,"128":0.0047,_:"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 63 64 67 69 71 72 73 77 78 81 83 84 86 95 100 101 129 130"},F:{"83":0.00939,"89":0.0047,"94":0.0047,"95":0.01409,"102":0.0047,"109":0.38977,"110":0.0047,"111":0.2301,_:"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 84 85 86 87 88 90 91 92 93 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.0047,"92":0.0047,"107":0.0047,"109":0.07514,"110":0.0047,"113":0.0047,"114":0.0047,"116":0.00939,"119":0.0047,"120":0.01409,"121":0.00939,"122":0.02348,"123":0.02348,"124":0.05635,"125":0.21132,"126":6.02027,"127":0.67153,_:"12 13 14 15 16 18 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 108 111 112 115 117 118"},E:{"13":0.0047,"14":0.02818,"15":0.0047,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00939,"12.1":0.00939,"13.1":0.03287,"14.1":0.07044,"15.1":0.0047,"15.2-15.3":0.00939,"15.4":0.01878,"15.5":0.02818,"15.6":0.34281,"16.0":0.04696,"16.1":0.03757,"16.2":0.03757,"16.3":0.07983,"16.4":0.02348,"16.5":0.03757,"16.6":0.40855,"17.0":0.02348,"17.1":0.03287,"17.2":0.05635,"17.3":0.04226,"17.4":0.1221,"17.5":2.15077,"17.6":0.01409,"18.0":0.01409},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00524,"5.0-5.1":0.00262,"6.0-6.1":0.01573,"7.0-7.1":0.01573,"8.1-8.4":0,"9.0-9.2":0.01311,"9.3":0.05245,"10.0-10.2":0.01049,"10.3":0.09178,"11.0-11.2":0.24125,"11.3-11.4":0.02622,"12.0-12.1":0.01836,"12.2-12.5":0.33828,"13.0-13.1":0.00524,"13.2":0.05507,"13.3":0.01836,"13.4-13.7":0.07867,"14.0-14.4":0.18094,"14.5-14.8":0.20454,"15.0-15.1":0.10227,"15.2-15.3":0.11014,"15.4":0.12587,"15.5":0.1521,"15.6-15.8":1.39508,"16.0":0.28059,"16.1":0.59527,"16.2":0.29895,"16.3":0.50087,"16.4":0.11801,"16.5":0.21241,"16.6-16.7":1.74123,"17.0":0.15734,"17.1":0.25437,"17.2":0.2465,"17.3":0.36975,"17.4":0.92568,"17.5":16.95076,"17.6":0.13112,"18.0":0.17307},P:{"4":0.04162,"20":0.01041,"21":0.04162,"22":0.04162,"23":0.05203,"24":0.06243,"25":3.47541,"5.0-5.4":0.01041,_:"6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 18.0","16.0":0.01041,"17.0":0.01041,"19.0":0.02081},I:{"0":0.0687,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00012},K:{"0":0.19091,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00587,"11":0.01761,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":21.91369},R:{_:"0"},M:{"0":0.48257},Q:{"14.9":0.0053},O:{"0":0.02652},H:{"0":0}}; 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..9324b3f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SG.js @@ -0,0 +1 @@ +module.exports={C:{"3":0.00307,"4":0.00307,"40":0.00307,"48":0.00307,"50":0.00307,"51":0.00307,"52":0.00613,"53":0.00307,"54":0.00307,"55":0.00613,"56":0.00613,"57":0.00613,"58":0.00307,"59":0.00613,"60":0.00307,"61":0.00307,"62":0.00307,"63":0.00307,"64":0.00307,"65":0.00307,"66":0.0092,"67":0.00307,"70":0.00307,"72":0.01839,"78":0.00613,"81":0.00307,"83":0.00307,"87":0.00307,"88":0.00307,"91":0.00307,"96":0.00307,"101":0.01533,"102":0.00613,"103":0.03678,"105":0.00307,"106":0.00613,"107":0.00307,"108":0.00307,"109":0.00307,"110":0.00613,"111":0.00307,"112":0.00307,"113":0.00307,"115":0.10115,"118":0.00307,"119":0.00307,"121":0.00307,"123":0.00307,"124":0.00307,"125":0.01533,"126":0.01533,"127":0.41378,"128":0.6743,_:"2 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 41 42 43 44 45 46 47 49 68 69 71 73 74 75 76 77 79 80 82 84 85 86 89 90 92 93 94 95 97 98 99 100 104 114 116 117 120 122 129 130 131","3.5":0.00307,"3.6":0.00307},D:{"4":0.00307,"10":0.00307,"34":0.01533,"36":0.00307,"38":0.06743,"41":0.00307,"48":0.00307,"49":0.0092,"53":0.0092,"55":0.00307,"56":0.0092,"60":0.0092,"61":0.0092,"62":0.0092,"63":0.01226,"64":0.01226,"65":0.0092,"66":0.01226,"67":0.0092,"68":0.01533,"69":0.00613,"70":0.01533,"71":0.00613,"72":0.00307,"73":0.00613,"74":0.00613,"75":0.01226,"76":0.00307,"77":0.01533,"78":0.01226,"79":0.1318,"80":0.01226,"81":0.03985,"83":0.0092,"84":0.00613,"85":0.07356,"86":0.02452,"87":0.09808,"88":0.0092,"89":0.01839,"90":0.0092,"91":0.02452,"92":0.47508,"93":0.0092,"94":0.0705,"95":0.03678,"96":0.00613,"97":0.0092,"98":0.01839,"99":0.02146,"100":0.02146,"101":0.01839,"102":0.01839,"103":0.05211,"104":0.14099,"105":0.05211,"106":0.03985,"107":0.05517,"108":0.06437,"109":0.59768,"110":0.03065,"111":0.04291,"112":0.04291,"113":0.08582,"114":0.49653,"115":0.0092,"116":0.10728,"117":0.02452,"118":0.02146,"119":0.04904,"120":0.07356,"121":0.09502,"122":0.11341,"123":0.15325,"124":0.34941,"125":0.72947,"126":13.16724,"127":1.48346,"128":0.01839,"129":0.00307,_:"5 6 7 8 9 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 39 40 42 43 44 45 46 47 50 51 52 54 57 58 59 130"},F:{"28":0.00307,"36":0.00613,"46":0.05211,"50":0.00613,"51":0.0092,"52":0.0092,"53":0.01226,"54":0.01839,"55":0.01533,"56":0.02452,"57":0.0092,"58":0.00613,"60":0.00307,"79":0.00307,"83":0.06437,"84":0.00307,"85":0.00307,"86":0.00307,"89":0.01839,"92":0.00307,"93":0.00307,"94":0.00307,"95":0.02759,"102":0.00307,"109":0.11954,"110":0.01226,"111":0.36474,_:"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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 87 88 90 91 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00307,"92":0.00307,"100":0.00307,"101":0.00307,"104":0.01533,"105":0.00307,"106":0.00613,"107":0.00613,"108":0.01226,"109":0.02452,"110":0.00307,"111":0.00307,"112":0.00613,"113":0.00613,"114":0.00307,"115":0.00613,"116":0.00307,"117":0.00307,"118":0.00307,"119":0.00613,"120":0.01533,"121":0.00613,"122":0.02452,"123":0.01533,"124":0.01839,"125":0.07663,"126":2.44281,"127":0.32183,_:"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 102 103"},E:{"5":0.00307,"7":0.00307,"8":0.00613,"11":0.00307,"13":0.00613,"14":0.01839,"15":0.00613,_:"0 4 6 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00307,"13.1":0.03065,"14.1":0.06437,"15.1":0.0092,"15.2-15.3":0.00613,"15.4":0.01839,"15.5":0.02452,"15.6":0.1931,"16.0":0.05517,"16.1":0.05211,"16.2":0.03065,"16.3":0.08582,"16.4":0.01839,"16.5":0.04291,"16.6":0.26359,"17.0":0.01226,"17.1":0.03372,"17.2":0.04291,"17.3":0.04291,"17.4":0.10728,"17.5":1.82061,"17.6":0.00613,"18.0":0.0092},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00298,"5.0-5.1":0.00149,"6.0-6.1":0.00895,"7.0-7.1":0.00895,"8.1-8.4":0,"9.0-9.2":0.00746,"9.3":0.02983,"10.0-10.2":0.00597,"10.3":0.0522,"11.0-11.2":0.13722,"11.3-11.4":0.01492,"12.0-12.1":0.01044,"12.2-12.5":0.1924,"13.0-13.1":0.00298,"13.2":0.03132,"13.3":0.01044,"13.4-13.7":0.04475,"14.0-14.4":0.10291,"14.5-14.8":0.11634,"15.0-15.1":0.05817,"15.2-15.3":0.06264,"15.4":0.07159,"15.5":0.08651,"15.6-15.8":0.79348,"16.0":0.15959,"16.1":0.33857,"16.2":0.17003,"16.3":0.28488,"16.4":0.06712,"16.5":0.12081,"16.6-16.7":0.99036,"17.0":0.08949,"17.1":0.14468,"17.2":0.1402,"17.3":0.2103,"17.4":0.5265,"17.5":9.64108,"17.6":0.07458,"18.0":0.09844},P:{"4":0.38616,"20":0.01044,"21":0.02087,"22":0.02087,"23":0.04175,"24":0.03131,"25":2.74486,"5.0-5.4":0.04175,"6.2-6.4":0.03131,_:"7.2-7.4 8.2 9.2 10.1 13.0 14.0 15.0 18.0","11.1-11.2":0.01044,"12.0":0.01044,"16.0":0.01044,"17.0":0.01044,"19.0":0.01044},I:{"0":18.29006,"3":0,"4":0.00184,"2.1":0,"2.2":0.00367,"2.3":0,"4.1":0.01101,"4.2-4.3":0.00734,"4.4":0,"4.4.3-4.4.4":0.0312},K:{"0":1.22732,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.02863,"9":0.01145,"10":0.00573,"11":0.25763,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":29.54385},R:{_:"0"},M:{"0":0.68647},Q:{"14.9":0.06934},O:{"0":0.56165},H:{"0":0}}; 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..246dc57 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SH.js @@ -0,0 +1 @@ +module.exports={C:{"111":0.00447,"126":0.00894,"127":0.01789,"128":0.12074,_:"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 112 113 114 115 116 117 118 119 120 121 122 123 124 125 129 130 131 3.5 3.6"},D:{"11":0.17441,"49":0.04472,"65":0.00447,"74":0.24149,"81":0.00447,"87":0.02236,"98":0.01342,"103":0.01342,"106":0.00447,"109":2.21811,"110":0.00894,"119":0.03578,"120":0.02236,"123":0.12522,"124":0.17441,"125":0.07602,"126":8.24637,"127":1.66358,"128":0.02236,_:"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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 75 76 77 78 79 80 83 84 85 86 88 89 90 91 92 93 94 95 96 97 99 100 101 102 104 105 107 108 111 112 113 114 115 116 117 118 121 122 129 130"},F:{"42":0.00894,"57":0.00447,"95":0.00894,"109":0.04025,"111":0.72446,_:"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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 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 96 97 98 99 100 101 102 103 104 105 106 107 108 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00447,"105":0.00894,"109":0.02236,"113":0.19677,"119":0.00894,"120":0.16546,"121":17.26192,"123":0.00447,"124":0.1431,"126":5.52739,"127":0.46062,_:"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 106 107 108 110 111 112 114 115 116 117 118 122 125"},E:{_:"0 4 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 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.6 18.0","11.1":0.01342,"15.6":0.03578,"17.5":0.05814},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00033,"5.0-5.1":0.00016,"6.0-6.1":0.00098,"7.0-7.1":0.00098,"8.1-8.4":0,"9.0-9.2":0.00081,"9.3":0.00325,"10.0-10.2":0.00065,"10.3":0.00569,"11.0-11.2":0.01495,"11.3-11.4":0.00163,"12.0-12.1":0.00114,"12.2-12.5":0.02097,"13.0-13.1":0.00033,"13.2":0.00341,"13.3":0.00114,"13.4-13.7":0.00488,"14.0-14.4":0.01121,"14.5-14.8":0.01268,"15.0-15.1":0.00634,"15.2-15.3":0.00683,"15.4":0.0078,"15.5":0.00943,"15.6-15.8":0.08646,"16.0":0.01739,"16.1":0.03689,"16.2":0.01853,"16.3":0.03104,"16.4":0.00731,"16.5":0.01316,"16.6-16.7":0.10792,"17.0":0.00975,"17.1":0.01576,"17.2":0.01528,"17.3":0.02292,"17.4":0.05737,"17.5":1.05055,"17.6":0.00813,"18.0":0.01073},P:{"21":0.02135,"22":0.01067,"23":0.01067,"25":0.2135,_:"4 20 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0 19.0","16.0":0.01067},I:{"0":0.02203,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.1382,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{"2.5":0.05528,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":59.73183},R:{_:"0"},M:{_:"0"},Q:{_:"14.9"},O:{"0":0.02764},H:{"0":0}}; 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..e2a1793 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SI.js @@ -0,0 +1 @@ +module.exports={C:{"9":0.00488,"52":0.04878,"68":0.00488,"72":0.00488,"77":0.01463,"78":0.02927,"83":0.01951,"88":0.01463,"91":0.02439,"95":0.00488,"99":0.00488,"102":0.02439,"103":0.02439,"108":0.00488,"109":0.00488,"113":0.02927,"114":0.00488,"115":0.72682,"117":0.00488,"118":0.01463,"119":0.00976,"120":0.00488,"121":0.01463,"122":0.03415,"123":0.00488,"124":0.01951,"125":0.02927,"126":0.16585,"127":2.13169,"128":3.32192,"129":0.01951,_:"2 3 4 5 6 7 8 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 67 69 70 71 73 74 75 76 79 80 81 82 84 85 86 87 89 90 92 93 94 96 97 98 100 101 104 105 106 107 110 111 112 116 130 131 3.5 3.6"},D:{"34":0.00488,"43":0.00488,"44":0.00488,"46":0.00488,"47":0.00488,"49":0.00488,"51":0.03902,"54":0.03902,"79":0.02439,"80":0.00488,"83":0.00488,"85":0.00488,"86":0.00488,"87":0.0439,"88":0.00488,"89":0.00488,"90":0.00488,"91":0.03902,"93":0.00976,"94":0.00488,"95":0.00488,"96":0.00488,"97":0.00488,"98":0.05854,"99":0.01463,"100":0.02439,"102":0.02439,"103":0.02927,"104":0.0439,"106":0.01951,"107":0.00976,"108":0.00976,"109":2.26827,"110":0.00488,"111":0.00488,"112":0.03902,"113":0.00976,"114":0.00976,"115":0.00488,"116":0.22439,"117":0.01951,"118":0.05366,"119":0.05854,"120":0.05366,"121":0.04878,"122":0.14146,"123":0.32195,"124":0.25366,"125":0.58048,"126":22.33148,"127":2.76583,"128":0.01463,_:"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 45 48 50 52 53 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 81 84 92 101 105 129 130"},F:{"46":0.01951,"49":0.00488,"83":0.01463,"95":0.02439,"109":0.47317,"110":0.02927,"111":0.92682,_:"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 47 48 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00488,"85":0.00488,"92":0.00488,"98":0.00488,"100":0.00488,"107":0.00488,"108":0.00488,"109":0.0878,"114":0.00488,"117":0.00488,"118":0.00488,"119":0.00488,"120":0.01951,"121":0.00488,"122":0.00976,"123":0.01463,"124":0.02439,"125":0.0878,"126":5.16092,"127":0.63414,_:"12 13 14 15 16 18 79 80 81 83 84 86 87 88 89 90 91 93 94 95 96 97 99 101 102 103 104 105 106 110 111 112 113 115 116"},E:{"9":0.00488,"14":0.01463,_:"0 4 5 6 7 8 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1","5.1":0.00976,"13.1":0.06829,"14.1":0.05366,"15.1":0.00488,"15.2-15.3":0.00488,"15.4":0.01463,"15.5":0.00976,"15.6":0.12195,"16.0":0.03902,"16.1":0.06341,"16.2":0.08293,"16.3":0.0439,"16.4":0.01463,"16.5":0.03902,"16.6":0.69755,"17.0":0.01463,"17.1":0.0439,"17.2":0.03902,"17.3":0.05366,"17.4":0.09268,"17.5":1.2195,"17.6":0.00488,"18.0":0.03902},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00207,"5.0-5.1":0.00103,"6.0-6.1":0.00621,"7.0-7.1":0.00621,"8.1-8.4":0,"9.0-9.2":0.00517,"9.3":0.02069,"10.0-10.2":0.00414,"10.3":0.0362,"11.0-11.2":0.09516,"11.3-11.4":0.01034,"12.0-12.1":0.00724,"12.2-12.5":0.13343,"13.0-13.1":0.00207,"13.2":0.02172,"13.3":0.00724,"13.4-13.7":0.03103,"14.0-14.4":0.07137,"14.5-14.8":0.08068,"15.0-15.1":0.04034,"15.2-15.3":0.04344,"15.4":0.04965,"15.5":0.05999,"15.6-15.8":0.55027,"16.0":0.11067,"16.1":0.23479,"16.2":0.11791,"16.3":0.19756,"16.4":0.04655,"16.5":0.08378,"16.6-16.7":0.6868,"17.0":0.06206,"17.1":0.10033,"17.2":0.09723,"17.3":0.14584,"17.4":0.36512,"17.5":6.68593,"17.6":0.05172,"18.0":0.06827},P:{"4":0.09348,"20":0.02077,"21":0.03116,"22":0.09348,"23":0.10386,"24":0.09348,"25":3.31325,"5.0-5.4":0.01039,"6.2-6.4":0.03116,"7.2-7.4":0.02077,_:"8.2 9.2 10.1 12.0","11.1-11.2":0.02077,"13.0":0.02077,"14.0":0.03116,"15.0":0.02077,"16.0":0.01039,"17.0":0.02077,"18.0":0.01039,"19.0":0.01039},I:{"0":0.06126,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.0001},K:{"0":0.36886,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01463,"9":0.00488,"10":0.00488,"11":0.01951,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":36.12199},R:{_:"0"},M:{"0":0.69673},Q:{_:"14.9"},O:{"0":0.02049},H:{"0":0}}; 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..9be0231 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SK.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00394,"43":0.0197,"48":0.00394,"52":0.07486,"61":0.00394,"68":0.00394,"70":0.00394,"72":0.00394,"78":0.00788,"79":0.00788,"88":0.00394,"91":0.00394,"92":0.00394,"99":0.01182,"101":0.00394,"102":0.01182,"103":0.01182,"105":0.00394,"107":0.00394,"108":0.00394,"109":0.00394,"113":0.00394,"115":0.7486,"116":0.00394,"117":0.00394,"118":0.00394,"119":0.00394,"120":0.00788,"121":0.00788,"122":0.01182,"123":0.00394,"124":0.0197,"125":0.10638,"126":0.05122,"127":1.63904,"128":2.80134,"129":0.00788,_:"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 47 49 50 51 53 54 55 56 57 58 59 60 62 63 64 65 66 67 69 71 73 74 75 76 77 80 81 82 83 84 85 86 87 89 90 93 94 95 96 97 98 100 104 106 110 111 112 114 130 131 3.5 3.6"},D:{"34":0.00394,"38":0.00788,"41":0.00394,"47":0.00394,"49":0.02364,"51":0.00394,"63":0.09062,"67":0.00394,"71":0.00394,"79":0.10638,"80":0.00394,"81":0.00394,"83":0.00788,"84":0.00394,"85":0.00788,"86":0.01182,"87":0.05122,"88":0.01182,"89":0.00394,"90":0.00788,"91":0.0197,"92":0.00788,"93":0.15366,"94":0.02364,"95":0.00394,"96":0.00394,"97":0.00394,"98":0.03546,"99":0.01576,"100":0.00394,"101":0.00394,"102":0.02758,"103":0.02758,"104":0.01182,"105":0.00394,"106":0.02758,"107":0.04334,"108":0.0394,"109":1.90696,"110":0.00788,"111":0.00788,"112":0.01182,"113":0.2955,"114":0.29156,"115":0.00788,"116":0.07092,"117":0.00788,"118":0.01576,"119":0.03152,"120":0.0591,"121":0.03546,"122":0.14184,"123":0.10638,"124":0.1379,"125":0.56342,"126":16.56376,"127":2.04092,"128":0.00394,_:"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 42 43 44 45 46 48 50 52 53 54 55 56 57 58 59 60 61 62 64 65 66 68 69 70 72 73 74 75 76 77 78 129 130"},F:{"46":0.00788,"79":0.00394,"83":0.05516,"85":0.00394,"93":0.00394,"95":0.12608,"96":0.00394,"101":0.00394,"104":0.00394,"108":0.00394,"109":0.5122,"110":0.03546,"111":1.20564,_:"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 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 84 86 87 88 89 90 91 92 94 97 98 99 100 102 103 105 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00394,"92":0.00394,"100":0.00394,"103":0.00788,"105":0.00394,"107":0.00394,"108":0.00394,"109":0.06698,"110":0.00394,"111":0.00394,"112":0.00788,"114":0.00394,"115":0.00394,"118":0.00394,"119":0.00394,"120":0.01182,"121":0.00394,"122":0.0197,"123":0.00394,"124":0.04334,"125":0.13396,"126":3.62086,"127":0.50432,_:"12 13 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 104 106 113 116 117"},E:{"9":0.00394,"14":0.00394,"15":0.01182,_:"0 4 5 6 7 8 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.02364,"14.1":0.03152,"15.1":0.00394,"15.2-15.3":0.00394,"15.4":0.00394,"15.5":0.01576,"15.6":0.11426,"16.0":0.00788,"16.1":0.01576,"16.2":0.01182,"16.3":0.03152,"16.4":0.0197,"16.5":0.0197,"16.6":0.12214,"17.0":0.01576,"17.1":0.04334,"17.2":0.09062,"17.3":0.04334,"17.4":0.08274,"17.5":0.94954,"17.6":0.00788,"18.0":0.0197},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00204,"5.0-5.1":0.00102,"6.0-6.1":0.00613,"7.0-7.1":0.00613,"8.1-8.4":0,"9.0-9.2":0.00511,"9.3":0.02043,"10.0-10.2":0.00409,"10.3":0.03574,"11.0-11.2":0.09396,"11.3-11.4":0.01021,"12.0-12.1":0.00715,"12.2-12.5":0.13174,"13.0-13.1":0.00204,"13.2":0.02145,"13.3":0.00715,"13.4-13.7":0.03064,"14.0-14.4":0.07047,"14.5-14.8":0.07966,"15.0-15.1":0.03983,"15.2-15.3":0.04289,"15.4":0.04902,"15.5":0.05923,"15.6-15.8":0.54332,"16.0":0.10928,"16.1":0.23183,"16.2":0.11643,"16.3":0.19506,"16.4":0.04596,"16.5":0.08272,"16.6-16.7":0.67813,"17.0":0.06128,"17.1":0.09906,"17.2":0.096,"17.3":0.144,"17.4":0.36051,"17.5":6.60154,"17.6":0.05106,"18.0":0.0674},P:{"4":0.1245,"20":0.01038,"21":0.03113,"22":0.03113,"23":0.083,"24":0.0415,"25":2.14768,"5.0-5.4":0.01038,"6.2-6.4":0.01038,_:"7.2-7.4 8.2 9.2 10.1 12.0 14.0 15.0 16.0","11.1-11.2":0.01038,"13.0":0.01038,"17.0":0.01038,"18.0":0.01038,"19.0":0.01038},I:{"0":0.0906,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00015},K:{"0":0.63641,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00876,"9":0.00438,"11":0.02627,_:"6 7 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":47.58416},R:{_:"0"},M:{"0":0.40609},Q:{"14.9":0.00606},O:{"0":0.03637},H:{"0":0}}; 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..2ed0245 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SL.js @@ -0,0 +1 @@ +module.exports={C:{"66":0.00187,"72":0.00373,"87":0.00933,"89":0.00187,"102":0.00187,"109":0.00187,"112":0.00187,"115":0.05598,"119":0.01866,"124":0.00373,"125":0.00373,"126":0.00746,"127":0.22579,"128":0.50195,"129":0.05411,_:"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 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 88 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 110 111 113 114 116 117 118 120 121 122 123 130 131 3.5 3.6"},D:{"11":0.0056,"30":0.00187,"41":0.00187,"42":0.00187,"43":0.00187,"46":0.01493,"48":0.0112,"50":0.00373,"55":0.00373,"57":0.01306,"58":0.03172,"60":0.00373,"63":0.00187,"64":0.00187,"65":0.02053,"67":0.0056,"68":0.00933,"69":0.00187,"70":0.0112,"72":0.01493,"73":0.0056,"74":0.00373,"75":0.05038,"76":0.01679,"77":0.0056,"79":0.0112,"80":0.01306,"81":0.02426,"83":0.07651,"84":0.00187,"86":0.00187,"87":0.02426,"88":0.0056,"89":0.00187,"90":0.00187,"91":0.0112,"92":0.02239,"93":0.07651,"94":0.00187,"95":0.01493,"96":0.00746,"97":0.02986,"98":0.0056,"99":0.00933,"100":0.00187,"101":0.00373,"102":0.00373,"103":0.09703,"104":0.00187,"105":0.00746,"106":0.01679,"108":0.01306,"109":0.42358,"110":0.00746,"111":0.02053,"112":0.00187,"114":0.02426,"115":0.00187,"116":0.03172,"117":0.03545,"118":0.01306,"119":0.09703,"120":0.05225,"121":0.04852,"122":0.05038,"123":0.03919,"124":0.08584,"125":0.14555,"126":5.05313,"127":0.69229,"128":0.00746,_:"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 31 32 33 34 35 36 37 38 39 40 44 45 47 49 51 52 53 54 56 59 61 62 66 71 78 85 107 113 129 130"},F:{"34":0.00373,"46":0.01866,"79":0.04292,"83":0.02053,"90":0.00373,"95":0.03919,"97":0.00187,"100":0.00187,"102":0.00187,"105":0.00187,"107":0.00187,"108":0.00746,"109":0.01866,"110":0.01679,"111":0.71281,_:"9 11 12 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 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 84 85 86 87 88 89 91 92 93 94 96 98 99 101 103 104 106 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.14928,"13":0.00373,"14":0.04292,"15":0.0056,"16":0.01306,"17":0.0056,"18":0.06344,"84":0.00933,"89":0.00746,"90":0.00933,"92":0.04478,"100":0.0112,"105":0.00187,"107":0.00187,"108":0.00187,"109":0.00373,"113":0.00187,"114":0.00373,"115":0.0056,"116":0.00187,"119":0.0056,"120":0.00746,"121":0.00746,"122":0.0112,"123":0.01679,"124":0.02426,"125":0.04292,"126":2.75048,"127":0.32842,_:"79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 106 110 111 112 117 118"},E:{"14":0.02986,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.1 15.2-15.3 16.0 16.2 17.3 17.6 18.0","11.1":0.00187,"12.1":0.02239,"13.1":0.0112,"14.1":0.01493,"15.4":0.00187,"15.5":0.02239,"15.6":0.04105,"16.1":0.00373,"16.3":0.00373,"16.4":0.00187,"16.5":0.01493,"16.6":0.01866,"17.0":0.00187,"17.1":0.00187,"17.2":0.0056,"17.4":0.00373,"17.5":0.0821},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00132,"5.0-5.1":0.00066,"6.0-6.1":0.00395,"7.0-7.1":0.00395,"8.1-8.4":0,"9.0-9.2":0.00329,"9.3":0.01316,"10.0-10.2":0.00263,"10.3":0.02303,"11.0-11.2":0.06053,"11.3-11.4":0.00658,"12.0-12.1":0.00461,"12.2-12.5":0.08488,"13.0-13.1":0.00132,"13.2":0.01382,"13.3":0.00461,"13.4-13.7":0.01974,"14.0-14.4":0.0454,"14.5-14.8":0.05132,"15.0-15.1":0.02566,"15.2-15.3":0.02763,"15.4":0.03158,"15.5":0.03816,"15.6-15.8":0.35003,"16.0":0.0704,"16.1":0.14936,"16.2":0.07501,"16.3":0.12567,"16.4":0.02961,"16.5":0.05329,"16.6-16.7":0.43689,"17.0":0.03948,"17.1":0.06382,"17.2":0.06185,"17.3":0.09277,"17.4":0.23226,"17.5":4.25305,"17.6":0.0329,"18.0":0.04343},P:{"4":0.05178,"20":0.05178,"21":0.05178,"22":0.18641,"23":0.10356,"24":0.08285,"25":0.59029,_:"5.0-5.4 6.2-6.4 8.2 10.1 12.0 14.0 15.0 18.0","7.2-7.4":0.11392,"9.2":0.01036,"11.1-11.2":0.01036,"13.0":0.01036,"16.0":0.03107,"17.0":0.01036,"19.0":0.04142},I:{"0":0.04863,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":8.36743,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.00187,"11":0.01306,_:"6 7 8 9 5.5"},S:{"2.5":0.03253,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":66.24519},R:{_:"0"},M:{"0":0.0488},Q:{_:"14.9"},O:{"0":0.39852},H:{"0":2.36}}; 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..a5b7305 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SM.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00691,"74":0.00691,"78":0.00691,"99":0.00691,"102":0.04835,"105":0.00691,"115":1.22254,"121":0.05526,"122":0.01381,"126":0.46277,"127":3.56401,"128":4.13729,"129":0.02072,_:"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 67 68 69 70 71 72 73 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 100 101 103 104 106 107 108 109 110 111 112 113 114 116 117 118 119 120 123 124 125 130 131 3.5 3.6"},D:{"53":0.00691,"61":0.00691,"76":0.00691,"87":0.00691,"94":0.00691,"98":0.00691,"103":0.02763,"106":0.25556,"107":0.00691,"109":5.0352,"116":0.03454,"117":0.03454,"120":0.02763,"121":0.01381,"122":0.18649,"123":0.00691,"124":0.00691,"125":0.0967,"126":35.55724,"127":9.91845,_:"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 54 55 56 57 58 59 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 80 81 83 84 85 86 88 89 90 91 92 93 95 96 97 99 100 101 102 104 105 108 110 111 112 113 114 115 118 119 128 129 130"},F:{"46":0.01381,"109":0.35226,"110":0.00691,"111":0.08979,_:"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 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 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00691,"109":0.02763,"126":4.99376,"127":0.52493,_:"12 13 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 107 108 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125"},E:{"14":0.00691,_:"0 4 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 15.1 16.0 16.1","12.1":0.00691,"13.1":0.01381,"14.1":0.03454,"15.2-15.3":0.02763,"15.4":0.02763,"15.5":0.03454,"15.6":0.41442,"16.2":0.00691,"16.3":0.00691,"16.4":0.01381,"16.5":0.03454,"16.6":0.1934,"17.0":0.02072,"17.1":0.02072,"17.2":0.00691,"17.3":0.00691,"17.4":0.04144,"17.5":0.62854,"17.6":0.00691,"18.0":0.02072},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00189,"5.0-5.1":0.00095,"6.0-6.1":0.00567,"7.0-7.1":0.00567,"8.1-8.4":0,"9.0-9.2":0.00473,"9.3":0.0189,"10.0-10.2":0.00378,"10.3":0.03308,"11.0-11.2":0.08696,"11.3-11.4":0.00945,"12.0-12.1":0.00662,"12.2-12.5":0.12193,"13.0-13.1":0.00189,"13.2":0.01985,"13.3":0.00662,"13.4-13.7":0.02836,"14.0-14.4":0.06522,"14.5-14.8":0.07373,"15.0-15.1":0.03686,"15.2-15.3":0.0397,"15.4":0.04537,"15.5":0.05482,"15.6-15.8":0.50286,"16.0":0.10114,"16.1":0.21457,"16.2":0.10776,"16.3":0.18054,"16.4":0.04253,"16.5":0.07656,"16.6-16.7":0.62763,"17.0":0.05671,"17.1":0.09169,"17.2":0.08885,"17.3":0.13328,"17.4":0.33366,"17.5":6.10991,"17.6":0.04726,"18.0":0.06238},P:{"4":0.01028,"22":0.03085,"25":1.41916,_:"20 21 23 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.00308,"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.00001},K:{"0":0.27837,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":19.55579},R:{_:"0"},M:{"0":0.06805},Q:{_:"14.9"},O:{_:"0"},H:{"0":0}}; 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..e5d7f4f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SN.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.00233,"68":0.00233,"70":0.0372,"71":0.00233,"72":0.00465,"78":0.02558,"81":0.00233,"84":0.00233,"91":0.00233,"94":0.00233,"95":0.00698,"99":0.00465,"102":0.00233,"104":0.00465,"109":0.00465,"113":0.00233,"115":0.19298,"116":0.00233,"121":0.00233,"122":0.00233,"123":0.00233,"124":0.00233,"125":0.01163,"126":0.02093,"127":0.5022,"128":0.73005,"129":0.00465,_:"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 67 69 73 74 75 76 77 79 80 82 83 85 86 87 88 89 90 92 93 96 97 98 100 101 103 105 106 107 108 110 111 112 114 117 118 119 120 130 131 3.5 3.6"},D:{"39":0.00233,"49":0.00698,"50":0.00233,"58":0.03255,"59":0.00233,"63":0.00233,"65":0.00465,"66":0.00233,"69":0.02325,"70":0.01163,"73":0.00233,"74":0.00233,"75":0.00233,"76":0.00233,"77":0.00698,"79":0.03255,"80":0.00233,"81":0.0093,"83":0.0093,"84":0.00233,"85":0.00233,"86":0.01395,"87":0.02558,"88":0.00698,"90":0.00233,"91":0.0186,"92":0.00233,"93":0.01628,"94":0.00465,"95":0.0279,"96":0.00233,"98":0.0093,"99":0.0093,"100":0.00465,"103":0.1116,"104":0.00233,"105":0.00233,"106":0.00465,"107":0.02558,"108":0.01395,"109":1.32525,"110":0.00465,"111":0.00233,"112":0.00698,"113":0.00233,"114":0.01628,"115":0.00698,"116":0.1395,"117":0.01163,"118":0.01163,"119":0.0279,"120":0.13718,"121":0.0372,"122":0.0372,"123":0.04418,"124":0.05813,"125":0.16043,"126":9.07913,"127":1.22295,_:"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 40 41 42 43 44 45 46 47 48 51 52 53 54 55 56 57 60 61 62 64 67 68 71 72 78 89 97 101 102 128 129 130"},F:{"46":0.00465,"79":0.00233,"83":0.01628,"85":0.00233,"95":0.02558,"102":0.00233,"108":0.00233,"109":0.03255,"110":0.01163,"111":0.27435,_:"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 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 84 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00233,"14":0.00233,"15":0.00233,"16":0.00233,"18":0.00698,"84":0.00233,"90":0.00233,"92":0.02093,"100":0.04185,"109":0.0279,"110":0.00233,"114":0.00233,"115":0.00233,"117":0.00698,"118":0.00233,"119":0.00465,"120":0.03488,"121":0.0093,"122":0.0093,"123":0.03953,"124":0.02558,"125":0.06278,"126":2.82488,"127":0.38363,_:"13 17 79 80 81 83 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 111 112 113 116"},E:{"13":0.00465,"14":0.00698,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 17.6","12.1":0.00465,"13.1":0.0279,"14.1":0.04418,"15.2-15.3":0.00233,"15.4":0.00233,"15.5":0.00233,"15.6":0.09533,"16.0":0.00233,"16.1":0.01395,"16.2":0.00465,"16.3":0.00698,"16.4":0.00233,"16.5":0.00233,"16.6":0.0279,"17.0":0.00698,"17.1":0.00465,"17.2":0.0093,"17.3":0.00698,"17.4":0.0186,"17.5":0.279,"18.0":0.00465},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00312,"5.0-5.1":0.00156,"6.0-6.1":0.00935,"7.0-7.1":0.00935,"8.1-8.4":0,"9.0-9.2":0.00779,"9.3":0.03116,"10.0-10.2":0.00623,"10.3":0.05453,"11.0-11.2":0.14334,"11.3-11.4":0.01558,"12.0-12.1":0.01091,"12.2-12.5":0.20099,"13.0-13.1":0.00312,"13.2":0.03272,"13.3":0.01091,"13.4-13.7":0.04674,"14.0-14.4":0.1075,"14.5-14.8":0.12153,"15.0-15.1":0.06076,"15.2-15.3":0.06544,"15.4":0.07479,"15.5":0.09037,"15.6-15.8":0.82887,"16.0":0.16671,"16.1":0.35367,"16.2":0.17761,"16.3":0.29758,"16.4":0.07011,"16.5":0.1262,"16.6-16.7":1.03453,"17.0":0.09348,"17.1":0.15113,"17.2":0.14645,"17.3":0.21968,"17.4":0.54998,"17.5":10.07107,"17.6":0.0779,"18.0":0.10283},P:{"4":0.08099,"20":0.03037,"21":0.08099,"22":0.18223,"23":0.14174,"24":0.11136,"25":1.49834,"5.0-5.4":0.01012,"6.2-6.4":0.01012,"7.2-7.4":0.39483,_:"8.2 10.1 12.0","9.2":0.02025,"11.1-11.2":0.02025,"13.0":0.02025,"14.0":0.03037,"15.0":0.01012,"16.0":0.02025,"17.0":0.0405,"18.0":0.02025,"19.0":0.08099},I:{"0":0.03059,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":0.25095,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00233,_:"6 7 8 9 10 5.5"},S:{"2.5":0.00768,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":61.44005},R:{_:"0"},M:{"0":0.11513},Q:{_:"14.9"},O:{"0":0.03838},H:{"0":0.01}}; 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..829212c --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SO.js @@ -0,0 +1 @@ +module.exports={C:{"106":0.00166,"109":0.00166,"113":0.00166,"115":0.04645,"121":0.00332,"124":0.0083,"125":0.00995,"126":0.01493,"127":0.16922,"128":0.22894,"129":0.0083,_:"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 107 108 110 111 112 114 116 117 118 119 120 122 123 130 131 3.5 3.6"},D:{"11":0.00166,"26":0.00332,"40":0.00166,"43":0.00166,"49":0.01161,"51":0.00332,"58":0.00664,"64":0.02654,"68":0.01991,"69":0.01327,"70":0.01659,"72":0.00664,"73":0.01161,"74":0.00332,"76":0.00166,"78":0.01493,"79":0.05807,"80":0.00664,"81":0.00332,"83":0.01327,"86":0.00166,"87":0.04811,"88":0.01493,"89":0.00332,"91":0.00166,"92":0.00166,"93":0.01161,"94":0.00166,"95":0.00498,"96":0.00166,"97":0.00332,"98":0.02157,"99":0.0083,"100":0.00166,"102":0.01161,"103":0.0365,"105":0.0083,"106":0.01493,"107":0.0083,"108":0.01493,"109":0.35005,"110":0.01161,"111":0.02323,"112":0.00332,"113":0.00332,"114":0.00664,"115":0.00332,"116":0.0282,"117":0.02489,"118":0.00995,"119":0.20074,"120":0.04148,"121":0.01991,"122":0.02654,"123":0.06304,"124":0.11613,"125":0.16756,"126":9.02164,"127":1.06674,"128":0.00498,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 44 45 46 47 48 50 52 53 54 55 56 57 59 60 61 62 63 65 66 67 71 75 77 84 85 90 101 104 129 130"},F:{"40":0.00166,"79":0.00498,"83":0.00664,"89":0.00498,"94":0.00166,"95":0.00498,"102":0.00166,"108":0.04977,"109":0.02157,"110":0.00664,"111":0.19576,_:"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 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 84 85 86 87 88 90 91 92 93 96 97 98 99 100 101 103 104 105 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00332,"13":0.00166,"14":0.00166,"16":0.00166,"17":0.00498,"18":0.02323,"84":0.00332,"86":0.00166,"89":0.00166,"90":0.00166,"92":0.03152,"100":0.00498,"107":0.00332,"109":0.01327,"111":0.00332,"112":0.00166,"113":0.00166,"114":0.00332,"115":0.00166,"117":0.00332,"119":0.00664,"120":0.00498,"121":0.01327,"122":0.0083,"123":0.02323,"124":0.0365,"125":0.03484,"126":1.84979,"127":0.25383,_:"15 79 80 81 83 85 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 108 110 116 118"},E:{"14":0.00332,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 17.2 17.6","5.1":0.00166,"13.1":0.00332,"14.1":0.00995,"15.2-15.3":0.00166,"15.4":0.00332,"15.5":0.00664,"15.6":0.02323,"16.0":0.00664,"16.1":0.00332,"16.2":0.00498,"16.3":0.04479,"16.4":0.00166,"16.5":0.00995,"16.6":0.0365,"17.0":0.0083,"17.1":0.00498,"17.3":0.00498,"17.4":0.0083,"17.5":0.11447,"18.0":0.00498},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0015,"5.0-5.1":0.00075,"6.0-6.1":0.00449,"7.0-7.1":0.00449,"8.1-8.4":0,"9.0-9.2":0.00374,"9.3":0.01498,"10.0-10.2":0.003,"10.3":0.02621,"11.0-11.2":0.0689,"11.3-11.4":0.00749,"12.0-12.1":0.00524,"12.2-12.5":0.09661,"13.0-13.1":0.0015,"13.2":0.01573,"13.3":0.00524,"13.4-13.7":0.02247,"14.0-14.4":0.05168,"14.5-14.8":0.05842,"15.0-15.1":0.02921,"15.2-15.3":0.03146,"15.4":0.03595,"15.5":0.04344,"15.6-15.8":0.39843,"16.0":0.08014,"16.1":0.17001,"16.2":0.08538,"16.3":0.14305,"16.4":0.0337,"16.5":0.06066,"16.6-16.7":0.49729,"17.0":0.04494,"17.1":0.07265,"17.2":0.0704,"17.3":0.1056,"17.4":0.26437,"17.5":4.8411,"17.6":0.03745,"18.0":0.04943},P:{"4":0.04082,"20":0.03062,"21":0.10206,"22":0.60216,"23":0.34701,"24":0.39804,"25":2.18412,"5.0-5.4":0.02041,"6.2-6.4":0.01021,"7.2-7.4":0.60216,_:"8.2 10.1","9.2":0.01021,"11.1-11.2":0.02041,"12.0":0.01021,"13.0":0.04082,"14.0":0.02041,"15.0":0.01021,"16.0":0.06124,"17.0":0.01021,"18.0":0.02041,"19.0":0.1633},I:{"0":0.10804,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00007,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00018},K:{"0":2.09006,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00332,"11":0.00166,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":68.50187},R:{_:"0"},M:{"0":0.05838},Q:{_:"14.9"},O:{"0":0.9591},H:{"0":0.07}}; 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..edbad47 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SR.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.02406,"99":0.00902,"113":0.00902,"115":0.47526,"125":0.00602,"126":0.00602,"127":0.98061,"128":1.65139,"129":0.00301,_:"2 3 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 100 101 102 103 104 105 106 107 108 109 110 111 112 114 116 117 118 119 120 121 122 123 124 130 131 3.5 3.6"},D:{"22":0.00301,"38":0.00301,"43":0.00301,"49":0.03008,"59":0.00602,"63":0.00301,"65":0.02106,"67":0.00301,"69":0.03309,"70":0.00301,"73":0.00301,"76":0.00301,"77":0.00902,"79":0.00602,"80":0.00301,"81":0.01504,"83":0.00602,"87":0.00602,"88":0.02707,"89":0.00301,"92":0.01504,"93":0.01203,"94":0.00301,"95":0.00301,"99":0.00301,"101":0.08723,"103":0.15942,"105":0.00602,"106":0.00301,"107":0.00602,"108":0.00602,"109":0.61965,"110":0.00301,"111":0.0391,"112":0.00301,"113":0.00301,"114":0.00301,"116":0.27072,"119":0.01504,"120":0.04211,"121":0.0361,"122":1.44986,"123":0.0391,"124":0.04512,"125":0.21958,"126":12.84115,"127":1.37165,"128":0.02106,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 48 50 51 52 53 54 55 56 57 58 60 61 62 64 66 68 71 72 74 75 78 84 85 86 90 91 96 97 98 100 102 104 115 117 118 129 130"},F:{"46":0.01504,"73":0.00902,"83":0.01504,"95":0.01203,"106":0.01805,"107":0.01504,"109":0.33088,"110":0.00301,"111":0.63168,_:"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 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 78 79 80 81 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00301,"17":0.00301,"18":0.00301,"89":0.00301,"92":0.00602,"100":0.00301,"103":0.00301,"107":0.01504,"109":0.0391,"113":0.00301,"117":0.02106,"118":0.0361,"119":0.00301,"120":0.02106,"121":0.02406,"122":0.00902,"123":0.00301,"124":0.02106,"125":0.06618,"126":3.83821,"127":0.52038,_:"12 13 15 16 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 99 101 102 104 105 106 108 110 111 112 114 115 116"},E:{"11":0.00301,_:"0 4 5 6 7 8 9 10 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3 15.4 15.5 17.1 17.3 17.6 18.0","13.1":0.00602,"14.1":0.02707,"15.1":0.00301,"15.6":0.1865,"16.0":0.02707,"16.1":0.01203,"16.2":0.00602,"16.3":0.00301,"16.4":0.00301,"16.5":0.00902,"16.6":0.07821,"17.0":0.00301,"17.2":0.0391,"17.4":0.00902,"17.5":0.81216},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00211,"5.0-5.1":0.00105,"6.0-6.1":0.00633,"7.0-7.1":0.00633,"8.1-8.4":0,"9.0-9.2":0.00527,"9.3":0.02109,"10.0-10.2":0.00422,"10.3":0.03691,"11.0-11.2":0.09702,"11.3-11.4":0.01055,"12.0-12.1":0.00738,"12.2-12.5":0.13604,"13.0-13.1":0.00211,"13.2":0.02215,"13.3":0.00738,"13.4-13.7":0.03164,"14.0-14.4":0.07276,"14.5-14.8":0.08225,"15.0-15.1":0.04113,"15.2-15.3":0.04429,"15.4":0.05062,"15.5":0.06116,"15.6-15.8":0.56102,"16.0":0.11284,"16.1":0.23938,"16.2":0.12022,"16.3":0.20142,"16.4":0.04745,"16.5":0.08542,"16.6-16.7":0.70022,"17.0":0.06327,"17.1":0.10229,"17.2":0.09913,"17.3":0.14869,"17.4":0.37225,"17.5":6.81658,"17.6":0.05273,"18.0":0.0696},P:{"4":0.12485,"20":0.05202,"21":0.11444,"22":0.22889,"23":0.16646,"24":0.31212,"25":3.58936,_:"5.0-5.4 6.2-6.4 8.2 10.1 12.0 15.0 16.0","7.2-7.4":0.5202,"9.2":0.0104,"11.1-11.2":0.0104,"13.0":0.02081,"14.0":0.04162,"17.0":0.02081,"18.0":0.04162,"19.0":0.05202},I:{"0":0.02787,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":0.34965,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.62867,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":53.11481},R:{_:"0"},M:{"0":0.04895},Q:{"14.9":0.29371},O:{"0":0.23077},H:{"0":0}}; 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..b7b538c --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ST.js @@ -0,0 +1 @@ +module.exports={C:{"78":0.04374,"115":0.73102,"123":0.02499,"125":0.00625,"126":0.00625,"127":0.19369,"128":0.19369,_:"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 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 112 113 114 116 117 118 119 120 121 122 124 129 130 131 3.5 3.6"},D:{"36":0.00625,"43":0.0125,"54":0.02499,"58":0.03749,"64":0.00625,"66":0.00625,"68":0.00625,"70":0.00625,"72":0.01874,"79":0.0125,"83":0.00625,"88":0.10622,"90":0.00625,"91":0.01874,"102":0.00625,"103":0.00625,"105":0.03749,"106":0.03124,"108":0.00625,"109":1.52451,"112":0.00625,"116":19.00642,"117":0.02499,"119":0.03749,"121":0.11246,"122":0.00625,"123":0.04374,"124":0.0125,"125":0.03749,"126":8.64098,"127":0.86847,_:"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 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 55 56 57 59 60 61 62 63 65 67 69 71 73 74 75 76 77 78 80 81 84 85 86 87 89 92 93 94 95 96 97 98 99 100 101 104 107 110 111 113 114 115 118 120 128 129 130"},F:{"46":0.00625,"83":0.00625,"95":0.16245,"109":0.02499,"110":0.00625,"111":0.28116,_:"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 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00625,"92":0.02499,"109":0.83723,"112":0.00625,"114":0.00625,"115":0.0125,"119":0.02499,"120":0.00625,"124":0.18119,"125":0.06873,"126":21.50562,"127":3.17398,_:"13 14 15 16 17 18 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 108 110 111 113 116 117 118 121 122 123"},E:{_:"0 4 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.2 16.4 16.5 17.0 17.1 17.2 17.3 17.6 18.0","13.1":0.00625,"15.6":0.0125,"16.1":0.01874,"16.3":0.00625,"16.6":0.0125,"17.4":0.0125,"17.5":0.09372},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0003,"5.0-5.1":0.00015,"6.0-6.1":0.0009,"7.0-7.1":0.0009,"8.1-8.4":0,"9.0-9.2":0.00075,"9.3":0.00302,"10.0-10.2":0.0006,"10.3":0.00528,"11.0-11.2":0.01388,"11.3-11.4":0.00151,"12.0-12.1":0.00106,"12.2-12.5":0.01946,"13.0-13.1":0.0003,"13.2":0.00317,"13.3":0.00106,"13.4-13.7":0.00452,"14.0-14.4":0.01041,"14.5-14.8":0.01176,"15.0-15.1":0.00588,"15.2-15.3":0.00633,"15.4":0.00724,"15.5":0.00875,"15.6-15.8":0.08024,"16.0":0.01614,"16.1":0.03424,"16.2":0.01719,"16.3":0.02881,"16.4":0.00679,"16.5":0.01222,"16.6-16.7":0.10015,"17.0":0.00905,"17.1":0.01463,"17.2":0.01418,"17.3":0.02127,"17.4":0.05324,"17.5":0.97497,"17.6":0.00754,"18.0":0.00995},P:{"4":0.08425,"20":0.01053,"21":0.02106,"22":0.07372,"23":0.07372,"24":0.05266,"25":0.5055,_:"5.0-5.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 17.0 18.0","6.2-6.4":0.02106,"7.2-7.4":0.01053,"11.1-11.2":0.01053,"16.0":0.01053,"19.0":0.03159},I:{"0":0.07478,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00013},K:{"0":0.25138,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":36.72241},R:{_:"0"},M:{"0":0.04878},Q:{_:"14.9"},O:{"0":1.9623},H:{"0":0}}; 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..63b5c17 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SV.js @@ -0,0 +1 @@ +module.exports={C:{"51":0.0044,"52":0.0044,"72":0.0044,"78":0.0044,"88":0.0044,"91":0.01321,"102":0.00881,"103":0.02642,"104":0.01321,"105":0.0044,"106":0.0044,"108":0.00881,"113":0.0044,"114":0.0044,"115":0.436,"118":0.0044,"120":0.08368,"121":0.10129,"122":0.0044,"123":0.03083,"124":0.00881,"125":0.01321,"126":0.02202,"127":0.7751,"128":1.38286,"129":0.01321,_:"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 53 54 55 56 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 87 89 90 92 93 94 95 96 97 98 99 100 101 107 109 110 111 112 116 117 119 130 131 3.5 3.6"},D:{"34":0.0044,"49":0.01762,"58":0.04404,"65":0.00881,"70":0.0044,"75":0.0044,"76":0.0044,"78":0.00881,"79":0.03523,"81":0.0044,"87":0.07487,"88":0.01321,"89":0.0044,"91":0.01762,"92":0.0044,"93":0.02202,"94":0.02642,"96":0.0044,"97":0.00881,"98":0.01762,"99":0.00881,"100":0.0044,"101":0.00881,"102":0.0044,"103":0.1145,"104":0.0044,"105":0.03083,"106":0.00881,"107":0.00881,"108":0.01762,"109":2.07869,"110":0.02202,"111":0.03964,"112":0.01762,"113":0.00881,"114":0.02642,"115":0.00881,"116":0.07487,"117":0.00881,"118":0.01762,"119":0.03083,"120":0.1057,"121":0.03083,"122":0.14093,"123":0.08808,"124":0.25984,"125":0.62096,"126":23.42488,"127":3.0872,"128":0.0044,_:"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 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 62 63 64 66 67 68 69 71 72 73 74 77 80 83 84 85 86 90 95 129 130"},F:{"83":0.10129,"95":0.02642,"109":0.71345,"110":0.00881,"111":0.47563,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"85":0.0044,"87":0.0044,"89":0.0044,"92":0.02202,"100":0.0044,"104":0.0044,"107":0.0044,"109":0.02202,"110":0.0044,"111":0.00881,"112":0.0044,"113":0.0044,"114":0.00881,"115":0.0044,"117":0.0044,"118":0.00881,"119":0.00881,"120":0.02642,"121":0.02202,"122":0.01321,"123":0.01321,"124":0.05285,"125":0.1145,"126":4.4084,"127":0.60335,_:"12 13 14 15 16 17 18 79 80 81 83 84 86 88 90 91 93 94 95 96 97 98 99 101 102 103 105 106 108 116"},E:{"12":0.0044,"14":0.00881,_:"0 4 5 6 7 8 9 10 11 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 15.1 15.4 17.6","5.1":0.0044,"12.1":0.0044,"13.1":0.00881,"14.1":0.01321,"15.2-15.3":0.00881,"15.5":0.0044,"15.6":0.07046,"16.0":0.00881,"16.1":0.01762,"16.2":0.0044,"16.3":0.00881,"16.4":0.0044,"16.5":0.00881,"16.6":0.06166,"17.0":0.0044,"17.1":0.01321,"17.2":0.00881,"17.3":0.01762,"17.4":0.06166,"17.5":0.50206,"18.0":0.00881},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00118,"5.0-5.1":0.00059,"6.0-6.1":0.00355,"7.0-7.1":0.00355,"8.1-8.4":0,"9.0-9.2":0.00295,"9.3":0.01182,"10.0-10.2":0.00236,"10.3":0.02068,"11.0-11.2":0.05437,"11.3-11.4":0.00591,"12.0-12.1":0.00414,"12.2-12.5":0.07623,"13.0-13.1":0.00118,"13.2":0.01241,"13.3":0.00414,"13.4-13.7":0.01773,"14.0-14.4":0.04077,"14.5-14.8":0.04609,"15.0-15.1":0.02305,"15.2-15.3":0.02482,"15.4":0.02837,"15.5":0.03427,"15.6-15.8":0.31438,"16.0":0.06323,"16.1":0.13414,"16.2":0.06737,"16.3":0.11287,"16.4":0.02659,"16.5":0.04787,"16.6-16.7":0.39238,"17.0":0.03546,"17.1":0.05732,"17.2":0.05555,"17.3":0.08332,"17.4":0.2086,"17.5":3.81982,"17.6":0.02955,"18.0":0.039},P:{"4":0.02068,"20":0.02068,"21":0.13445,"22":0.08274,"23":0.05171,"24":0.06205,"25":1.64442,_:"5.0-5.4 8.2 9.2 10.1 12.0 15.0","6.2-6.4":0.01034,"7.2-7.4":0.12411,"11.1-11.2":0.01034,"13.0":0.06205,"14.0":0.01034,"16.0":0.02068,"17.0":0.01034,"18.0":0.02068,"19.0":0.02068},I:{"0":0.06134,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.0001},K:{"0":0.36374,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00881,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":48.8048},R:{_:"0"},M:{"0":0.2742},Q:{_:"14.9"},O:{"0":0.10073},H:{"0":0}}; 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..9ddc048 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SY.js @@ -0,0 +1 @@ +module.exports={C:{"35":0.00075,"44":0.00075,"48":0.00149,"50":0.00075,"52":0.00671,"58":0.00075,"59":0.00075,"63":0.00075,"68":0.00075,"72":0.00149,"78":0.00075,"80":0.00149,"82":0.00075,"83":0.00075,"84":0.00298,"88":0.00075,"89":0.00075,"91":0.00075,"92":0.00075,"99":0.00075,"101":0.00075,"102":0.00075,"103":0.00075,"105":0.00149,"106":0.00447,"107":0.00075,"108":0.00075,"109":0.00075,"111":0.00149,"112":0.00149,"113":0.00149,"115":0.14751,"117":0.00075,"119":0.00149,"120":0.01118,"122":0.00075,"123":0.00075,"124":0.00224,"125":0.01043,"126":0.00745,"127":0.10058,"128":0.13485,"129":0.00075,_:"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 36 37 38 39 40 41 42 43 45 46 47 49 51 53 54 55 56 57 60 61 62 64 65 66 67 69 70 71 73 74 75 76 77 79 81 85 86 87 90 93 94 95 96 97 98 100 104 110 114 116 118 121 130 131 3.5 3.6"},D:{"11":0.00298,"34":0.00149,"35":0.00075,"36":0.00075,"37":0.00224,"38":0.00671,"39":0.00075,"41":0.00075,"42":0.00075,"43":0.00298,"44":0.00149,"45":0.00075,"47":0.00075,"49":0.00298,"50":0.00373,"54":0.00075,"55":0.00224,"56":0.00224,"58":0.04545,"59":0.00075,"60":0.00373,"61":0.00075,"62":0.00075,"63":0.00224,"64":0.00224,"65":0.00075,"66":0.00298,"68":0.01192,"69":0.00671,"70":0.01118,"71":0.00298,"72":0.00224,"73":0.00373,"74":0.00224,"75":0.00149,"76":0.00149,"77":0.00075,"78":0.01639,"79":0.02086,"80":0.04172,"81":0.00596,"83":0.03055,"84":0.00149,"85":0.00224,"86":0.00373,"87":0.02161,"88":0.00522,"89":0.00596,"90":0.00224,"91":0.01267,"92":0.00745,"93":0.00447,"94":0.01118,"95":0.00298,"96":0.00447,"97":0.00298,"98":0.02161,"99":0.00894,"100":0.00373,"101":0.00149,"102":0.00745,"103":0.01341,"104":0.00671,"105":0.01118,"106":0.00969,"107":0.00745,"108":0.0149,"109":0.66007,"110":0.00149,"111":0.0149,"112":0.00522,"113":0.00373,"114":0.01714,"115":0.00298,"116":0.0231,"117":0.01043,"118":0.01714,"119":0.01341,"120":0.03874,"121":0.03278,"122":0.02682,"123":0.03502,"124":0.03427,"125":0.0596,"126":1.84239,"127":0.22648,"128":0.00075,_:"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 40 46 48 51 52 53 57 67 129 130"},F:{"73":0.00075,"79":0.00298,"80":0.00075,"81":0.00075,"83":0.01788,"84":0.00075,"85":0.00149,"86":0.00075,"89":0.00149,"95":0.03055,"99":0.00075,"101":0.00075,"107":0.00075,"109":0.02459,"110":0.00224,"111":0.09685,_:"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 74 75 76 77 78 82 87 88 90 91 92 93 94 96 97 98 100 102 103 104 105 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00075,"16":0.00149,"17":0.00075,"18":0.00224,"80":0.00149,"85":0.00075,"88":0.00075,"89":0.00075,"90":0.00075,"92":0.00894,"100":0.00224,"109":0.00745,"110":0.00075,"111":0.00075,"112":0.00075,"117":0.00075,"120":0.01043,"121":0.00149,"122":0.00149,"123":0.00149,"124":0.00596,"125":0.0082,"126":0.30247,"127":0.04396,_:"12 13 14 79 81 83 84 86 87 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 113 114 115 116 118 119"},E:{"14":0.00373,"15":0.00075,_:"0 4 5 6 7 8 9 10 11 12 13 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.4 16.0 17.6 18.0","5.1":0.03651,"11.1":0.00075,"13.1":0.00075,"14.1":0.00298,"15.1":0.00298,"15.2-15.3":0.00075,"15.5":0.00373,"15.6":0.01267,"16.1":0.00149,"16.2":0.00075,"16.3":0.00075,"16.4":0.00149,"16.5":0.00149,"16.6":0.0082,"17.0":0.00447,"17.1":0.00149,"17.2":0.00149,"17.3":0.00149,"17.4":0.00522,"17.5":0.02161},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00042,"5.0-5.1":0.00021,"6.0-6.1":0.00126,"7.0-7.1":0.00126,"8.1-8.4":0,"9.0-9.2":0.00105,"9.3":0.0042,"10.0-10.2":0.00084,"10.3":0.00735,"11.0-11.2":0.01933,"11.3-11.4":0.0021,"12.0-12.1":0.00147,"12.2-12.5":0.0271,"13.0-13.1":0.00042,"13.2":0.00441,"13.3":0.00147,"13.4-13.7":0.0063,"14.0-14.4":0.0145,"14.5-14.8":0.01639,"15.0-15.1":0.00819,"15.2-15.3":0.00882,"15.4":0.01008,"15.5":0.01219,"15.6-15.8":0.11177,"16.0":0.02248,"16.1":0.04769,"16.2":0.02395,"16.3":0.04013,"16.4":0.00945,"16.5":0.01702,"16.6-16.7":0.1395,"17.0":0.01261,"17.1":0.02038,"17.2":0.01975,"17.3":0.02962,"17.4":0.07416,"17.5":1.35801,"17.6":0.0105,"18.0":0.01387},P:{"4":2.10634,"20":0.12094,"21":0.25195,"22":0.40313,"23":0.45352,"24":0.24188,"25":1.27993,"5.0-5.4":0.14109,"6.2-6.4":0.57446,"7.2-7.4":0.63492,"8.2":0.08063,"9.2":0.25195,"10.1":0.07055,"11.1-11.2":0.15117,"12.0":0.0907,"13.0":0.25195,"14.0":0.27211,"15.0":0.0907,"16.0":0.21164,"17.0":0.34266,"18.0":0.0907,"19.0":0.15117},I:{"0":0.2029,"3":0,"4":0.00002,"2.1":0,"2.2":0.00004,"2.3":0,"4.1":0.00012,"4.2-4.3":0.00008,"4.4":0,"4.4.3-4.4.4":0.00035},K:{"0":1.58739,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00075,"9":0.00075,"11":0.00596,_:"6 7 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":81.53406},R:{_:"0"},M:{"0":0.05553},Q:{_:"14.9"},O:{"0":1.15688},H:{"0":0.06}}; 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..8cc8d24 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SZ.js @@ -0,0 +1 @@ +module.exports={C:{"60":0.03558,"72":0.00178,"94":0.00356,"99":0.00178,"100":0.00356,"101":0.00178,"102":0.01779,"108":0.00178,"112":0.00178,"115":0.07472,"122":0.00356,"123":0.00356,"124":0.00178,"125":0.00178,"126":0.00178,"127":0.15122,"128":0.25618,"129":0.00356,_:"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 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 103 104 105 106 107 109 110 111 113 114 116 117 118 119 120 121 130 131 3.5 3.6"},D:{"11":0.00712,"33":0.00356,"49":0.00178,"55":0.00178,"56":0.00356,"60":0.00178,"66":0.00178,"68":0.00356,"69":0.01067,"70":0.03024,"71":0.00178,"73":0.00356,"74":0.01245,"79":0.00178,"80":0.00178,"81":0.01067,"83":0.00178,"86":0.00178,"87":0.01245,"88":0.01423,"90":0.00356,"91":0.01245,"93":0.00178,"95":0.01423,"98":0.00178,"99":0.01779,"100":0.00356,"102":0.01423,"103":0.00356,"104":0.0089,"106":0.08006,"107":0.00178,"109":0.67424,"111":0.02491,"112":0.00356,"113":0.00178,"114":0.00712,"115":0.03024,"116":0.0089,"117":0.01245,"118":0.03202,"119":0.03202,"120":0.01067,"121":0.02669,"122":0.02313,"123":0.03024,"124":0.05693,"125":0.13698,"126":5.12886,"127":0.75785,"128":0.00178,_:"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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 57 58 59 61 62 63 64 65 67 72 75 76 77 78 84 85 89 92 94 96 97 101 105 108 110 129 130"},F:{"40":0.00356,"42":0.00178,"45":0.00712,"64":0.00178,"83":0.01957,"84":0.0089,"95":0.00356,"98":0.00178,"99":0.00356,"102":0.00356,"107":0.01779,"109":0.0338,"110":0.09607,"111":0.20459,_:"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 41 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 85 86 87 88 89 90 91 92 93 94 96 97 100 101 103 104 105 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.01601,"13":0.00356,"14":0.00356,"15":0.00178,"16":0.00178,"17":0.00356,"18":0.01067,"80":0.00178,"89":0.00178,"90":0.01067,"92":0.03024,"96":0.00178,"100":0.01423,"109":0.01423,"110":0.00178,"111":0.00178,"112":0.00178,"114":0.0089,"117":0.00178,"118":0.0089,"119":0.00178,"120":0.01423,"121":0.00356,"122":0.01245,"123":0.0089,"124":0.03024,"125":0.04092,"126":2.33049,"127":0.32912,_:"79 81 83 84 85 86 87 88 91 93 94 95 97 98 99 101 102 103 104 105 106 107 108 113 115 116"},E:{"14":0.00178,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4 16.0 16.2 16.4 16.5 17.0","11.1":0.00178,"13.1":0.00356,"14.1":0.0089,"15.5":0.00178,"15.6":0.02313,"16.1":0.01067,"16.3":0.01245,"16.6":0.0089,"17.1":0.00712,"17.2":0.00712,"17.3":0.0089,"17.4":0.02135,"17.5":0.14054,"17.6":0.00178,"18.0":0.00356},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00071,"5.0-5.1":0.00036,"6.0-6.1":0.00214,"7.0-7.1":0.00214,"8.1-8.4":0,"9.0-9.2":0.00178,"9.3":0.00714,"10.0-10.2":0.00143,"10.3":0.01249,"11.0-11.2":0.03282,"11.3-11.4":0.00357,"12.0-12.1":0.0025,"12.2-12.5":0.04603,"13.0-13.1":0.00071,"13.2":0.00749,"13.3":0.0025,"13.4-13.7":0.0107,"14.0-14.4":0.02462,"14.5-14.8":0.02783,"15.0-15.1":0.01391,"15.2-15.3":0.01499,"15.4":0.01713,"15.5":0.02069,"15.6-15.8":0.18981,"16.0":0.03818,"16.1":0.08099,"16.2":0.04067,"16.3":0.06815,"16.4":0.01606,"16.5":0.0289,"16.6-16.7":0.23691,"17.0":0.02141,"17.1":0.03461,"17.2":0.03354,"17.3":0.05031,"17.4":0.12595,"17.5":2.3063,"17.6":0.01784,"18.0":0.02355},P:{"4":0.15462,"20":0.02062,"21":0.05154,"22":0.08246,"23":0.51538,"24":0.20615,"25":0.82461,_:"5.0-5.4 6.2-6.4 9.2 10.1 12.0 13.0 14.0","7.2-7.4":1.16477,"8.2":0.01031,"11.1-11.2":0.01031,"15.0":0.01031,"16.0":0.01031,"17.0":0.02062,"18.0":0.03092,"19.0":0.10308},I:{"0":0.04915,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":14.86499,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00712,_:"6 7 8 9 10 5.5"},S:{"2.5":0.10687,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":64.53646},R:{_:"0"},M:{"0":0.16442},Q:{_:"14.9"},O:{"0":0.39461},H:{"0":0.87}}; 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..ceac5cc --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TC.js @@ -0,0 +1 @@ +module.exports={C:{"103":0.00426,"104":0.00426,"109":0.00426,"110":0.00426,"115":4.21215,"117":0.00426,"118":0.00426,"126":0.03407,"127":0.53663,"128":0.24276,_:"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 105 106 107 108 111 112 113 114 116 119 120 121 122 123 124 125 129 130 131 3.5 3.6"},D:{"39":0.00426,"40":0.00852,"46":0.00426,"49":0.00426,"51":0.00426,"58":0.00426,"75":0.03407,"76":0.02981,"79":0.01704,"80":0.01278,"81":0.01278,"83":0.00852,"87":0.01704,"91":0.00426,"94":0.00852,"103":0.06389,"104":0.01278,"105":0.02981,"106":0.00426,"107":0.00852,"109":0.58774,"110":0.08092,"111":0.00426,"112":0.01278,"113":0.00426,"114":0.00852,"115":0.01704,"116":0.05537,"117":0.00852,"119":0.00852,"120":0.01704,"121":0.03407,"122":0.01278,"123":0.19166,"124":0.14055,"125":1.10734,"126":16.61862,"127":0.89439,"128":0.01278,_:"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 41 42 43 44 45 47 48 50 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 77 78 84 85 86 88 89 90 92 93 95 96 97 98 99 100 101 102 108 118 129 130"},F:{"95":0.12351,"109":0.41312,"110":0.00426,"111":0.10648,_:"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 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00426,"92":0.00852,"100":0.00426,"101":0.00426,"109":0.0213,"120":0.00426,"122":0.00852,"123":0.00852,"124":0.00852,"125":0.45997,"126":5.66873,"127":0.592,_:"12 13 14 15 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 102 103 104 105 106 107 108 110 111 112 113 114 115 116 117 118 119 121"},E:{"14":0.00426,"15":0.02981,_:"0 4 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 15.1","13.1":0.0213,"14.1":4.65509,"15.2-15.3":0.13203,"15.4":0.00852,"15.5":0.01278,"15.6":0.05963,"16.0":0.11499,"16.1":0.0213,"16.2":0.01278,"16.3":0.07666,"16.4":0.29813,"16.5":0.02555,"16.6":0.54515,"17.0":0.01704,"17.1":0.09796,"17.2":0.23425,"17.3":0.01278,"17.4":0.04685,"17.5":2.16357,"17.6":0.0213,"18.0":0.05111},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00576,"5.0-5.1":0.00288,"6.0-6.1":0.01727,"7.0-7.1":0.01727,"8.1-8.4":0,"9.0-9.2":0.01439,"9.3":0.05756,"10.0-10.2":0.01151,"10.3":0.10073,"11.0-11.2":0.26477,"11.3-11.4":0.02878,"12.0-12.1":0.02015,"12.2-12.5":0.37126,"13.0-13.1":0.00576,"13.2":0.06044,"13.3":0.02015,"13.4-13.7":0.08634,"14.0-14.4":0.19858,"14.5-14.8":0.22448,"15.0-15.1":0.11224,"15.2-15.3":0.12087,"15.4":0.13814,"15.5":0.16692,"15.6-15.8":1.53108,"16.0":0.30794,"16.1":0.6533,"16.2":0.32809,"16.3":0.54969,"16.4":0.12951,"16.5":0.23312,"16.6-16.7":1.91097,"17.0":0.17268,"17.1":0.27916,"17.2":0.27053,"17.3":0.40579,"17.4":1.01592,"17.5":18.60315,"17.6":0.1439,"18.0":0.18995},P:{"4":0.01072,"20":0.01072,"21":0.25739,"22":0.06435,"23":0.02145,"24":0.01072,"25":2.04838,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 15.0 17.0 18.0","7.2-7.4":0.02145,"13.0":0.0429,"14.0":0.01072,"16.0":0.02145,"19.0":0.05362},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":0.35594,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.05111,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":25.87403},R:{_:"0"},M:{"0":0.12056},Q:{_:"14.9"},O:{"0":0.0976},H:{"0":0}}; 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..1116049 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TD.js @@ -0,0 +1 @@ +module.exports={C:{"44":0.00076,"48":0.00076,"52":0.00379,"58":0.00227,"60":0.00076,"66":0.00076,"72":0.00076,"75":0.00076,"93":0.0212,"99":0.00076,"106":0.00076,"108":0.00076,"109":0.00076,"111":0.00151,"115":0.03104,"118":0.00076,"121":0.00303,"123":0.00151,"124":0.00151,"125":0.0053,"126":0.00303,"127":0.17411,"128":0.41257,"129":0.00076,_:"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 45 46 47 49 50 51 53 54 55 56 57 59 61 62 63 64 65 67 68 69 70 71 73 74 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 94 95 96 97 98 100 101 102 103 104 105 107 110 112 113 114 116 117 119 120 122 130 131 3.5 3.6"},D:{"44":0.00076,"50":0.00454,"58":0.00303,"63":0.00076,"64":0.00151,"68":0.00151,"69":0.00227,"70":0.0053,"71":0.00076,"74":0.00076,"75":0.00076,"76":0.00076,"77":0.00076,"78":0.04693,"80":0.00076,"81":0.00076,"83":0.0053,"86":0.00076,"87":0.00076,"88":0.00151,"92":0.01136,"93":0.00076,"94":0.01514,"95":0.28236,"99":0.05223,"101":0.00076,"102":0.00379,"103":0.00151,"104":0.00151,"105":0.00076,"106":0.00076,"108":0.00379,"109":0.09084,"111":0.01665,"113":0.00076,"114":0.00076,"116":0.00227,"117":0.00303,"118":0.00076,"119":0.00227,"120":0.01665,"121":0.04921,"122":0.02347,"123":0.00606,"124":0.01438,"125":0.03179,"126":0.84784,"127":0.10977,"128":0.00151,_:"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 46 47 48 49 51 52 53 54 55 56 57 59 60 61 62 65 66 67 72 73 79 84 85 89 90 91 96 97 98 100 107 110 112 115 129 130"},F:{"34":0.00076,"38":0.00076,"40":0.00076,"46":0.00076,"51":0.00076,"74":0.00076,"79":0.00151,"83":0.00151,"95":0.00908,"106":0.00151,"107":0.00076,"108":0.00151,"109":0.00227,"110":0.00076,"111":0.09008,_:"9 11 12 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 43 44 45 47 48 49 50 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 78 80 81 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00303,"14":0.00227,"15":0.00151,"17":0.00227,"18":0.00379,"84":0.00606,"90":0.00151,"92":0.00681,"100":0.00151,"108":0.00076,"109":0.00757,"110":0.00227,"111":0.00833,"113":0.00454,"114":0.00076,"119":0.00076,"120":0.00379,"121":0.00076,"122":0.03482,"123":0.00227,"124":0.00833,"125":0.00833,"126":0.35806,"127":0.03785,_:"13 16 79 80 81 83 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 112 115 116 117 118"},E:{_:"0 4 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 15.1 15.2-15.3 15.4 15.5 16.0 16.1 16.2 16.4 16.5 17.2 17.3 17.6 18.0","13.1":0.00076,"14.1":0.0969,"15.6":0.00833,"16.3":0.00151,"16.6":0.00606,"17.0":0.00076,"17.1":0.00076,"17.4":0.00151,"17.5":0.00681},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00077,"5.0-5.1":0.00038,"6.0-6.1":0.00231,"7.0-7.1":0.00231,"8.1-8.4":0,"9.0-9.2":0.00192,"9.3":0.00769,"10.0-10.2":0.00154,"10.3":0.01346,"11.0-11.2":0.03537,"11.3-11.4":0.00384,"12.0-12.1":0.00269,"12.2-12.5":0.0496,"13.0-13.1":0.00077,"13.2":0.00807,"13.3":0.00269,"13.4-13.7":0.01153,"14.0-14.4":0.02653,"14.5-14.8":0.02999,"15.0-15.1":0.01499,"15.2-15.3":0.01615,"15.4":0.01845,"15.5":0.0223,"15.6-15.8":0.20454,"16.0":0.04114,"16.1":0.08727,"16.2":0.04383,"16.3":0.07343,"16.4":0.0173,"16.5":0.03114,"16.6-16.7":0.25529,"17.0":0.02307,"17.1":0.03729,"17.2":0.03614,"17.3":0.05421,"17.4":0.13572,"17.5":2.4852,"17.6":0.01922,"18.0":0.02537},P:{"4":0.02019,"20":0.02019,"21":0.8882,"22":0.81755,"23":0.13121,"24":0.34317,"25":0.48448,"5.0-5.4":0.01009,_:"6.2-6.4 8.2 10.1 12.0 17.0","7.2-7.4":0.13121,"9.2":0.04037,"11.1-11.2":0.02019,"13.0":0.03028,"14.0":0.03028,"15.0":0.01009,"16.0":0.07065,"18.0":0.04037,"19.0":0.3028},I:{"0":0.04605,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":1.2963,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00681,_:"6 7 8 9 10 5.5"},S:{"2.5":0.00924,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":87.25708},R:{_:"0"},M:{"0":0.00924},Q:{"14.9":0.02773},O:{"0":0.12939},H:{"0":0.09}}; 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..5a1ddeb --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TG.js @@ -0,0 +1 @@ +module.exports={C:{"41":0.00338,"43":0.00338,"47":0.00675,"52":0.01351,"57":0.00338,"72":0.01013,"82":0.00338,"91":0.00675,"95":0.00338,"100":0.01013,"102":0.00675,"103":0.02364,"107":0.00675,"108":0.02364,"111":0.05403,"112":0.01013,"114":0.00338,"115":1.0131,"117":0.00338,"120":0.00675,"121":0.01013,"122":0.01351,"123":0.00675,"124":0.00675,"125":0.01351,"126":0.1182,"127":1.41496,"128":2.06672,"129":0.01351,_:"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 42 44 45 46 48 49 50 51 53 54 55 56 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 92 93 94 96 97 98 99 101 104 105 106 109 110 113 116 118 119 130 131 3.5 3.6"},D:{"34":0.00338,"47":0.00338,"48":0.00675,"49":0.00338,"58":0.00338,"60":0.00338,"64":0.00338,"65":0.00338,"66":0.00338,"68":0.00675,"69":0.00675,"70":0.01351,"73":0.00338,"74":0.00338,"75":0.00338,"76":0.05066,"77":0.01013,"79":0.00338,"80":0.00675,"81":0.0439,"83":0.01351,"84":0.00338,"86":0.00675,"87":0.01689,"88":0.02364,"89":0.01013,"90":0.00338,"91":0.02026,"92":0.00675,"93":0.11144,"94":0.00338,"95":0.02364,"96":0.00338,"98":0.00338,"99":0.00675,"100":0.00338,"101":0.00338,"102":0.01351,"103":0.1756,"104":0.15534,"105":0.00338,"106":0.03039,"107":0.01013,"108":0.01013,"109":2.9954,"110":0.00675,"111":0.00675,"112":0.00675,"113":0.00338,"114":0.00338,"115":0.00338,"116":0.08443,"117":0.02364,"118":0.01351,"119":0.07767,"120":0.11144,"121":0.04052,"122":0.04052,"123":0.18911,"124":0.09793,"125":0.13846,"126":9.78655,"127":1.39132,"128":0.00675,_:"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 43 44 45 46 50 51 52 53 54 55 56 57 59 61 62 63 67 71 72 78 85 97 129 130"},F:{"36":0.00338,"46":0.01689,"79":0.01689,"83":0.01351,"95":0.20262,"102":0.00338,"106":0.00338,"107":0.00338,"108":0.00675,"109":0.09118,"110":0.02702,"111":0.98271,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 80 81 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00338,"14":0.00338,"15":0.00338,"16":0.00338,"17":0.00675,"18":0.02026,"84":0.01351,"89":0.00338,"90":0.00338,"92":0.07092,"100":0.01013,"109":0.05403,"116":0.00338,"117":0.00338,"119":0.00338,"120":0.01351,"121":0.00675,"122":0.00675,"123":0.01351,"124":0.01689,"125":0.06416,"126":4.5083,"127":0.76658,_:"13 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 113 114 115 118"},E:{_:"0 4 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 12.1 15.1 15.4 15.5 16.0 16.2 16.4 16.5 17.1 17.3 18.0","11.1":0.00338,"13.1":0.00675,"14.1":0.03715,"15.2-15.3":0.03377,"15.6":0.04052,"16.1":0.00675,"16.3":0.00338,"16.6":0.02364,"17.0":0.00675,"17.2":0.00338,"17.4":0.01689,"17.5":0.06079,"17.6":0.00338},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00118,"5.0-5.1":0.00059,"6.0-6.1":0.00353,"7.0-7.1":0.00353,"8.1-8.4":0,"9.0-9.2":0.00294,"9.3":0.01178,"10.0-10.2":0.00236,"10.3":0.02061,"11.0-11.2":0.05417,"11.3-11.4":0.00589,"12.0-12.1":0.00412,"12.2-12.5":0.07595,"13.0-13.1":0.00118,"13.2":0.01236,"13.3":0.00412,"13.4-13.7":0.01766,"14.0-14.4":0.04063,"14.5-14.8":0.04593,"15.0-15.1":0.02296,"15.2-15.3":0.02473,"15.4":0.02826,"15.5":0.03415,"15.6-15.8":0.31323,"16.0":0.063,"16.1":0.13365,"16.2":0.06712,"16.3":0.11246,"16.4":0.0265,"16.5":0.04769,"16.6-16.7":0.39095,"17.0":0.03533,"17.1":0.05711,"17.2":0.05535,"17.3":0.08302,"17.4":0.20784,"17.5":3.8059,"17.6":0.02944,"18.0":0.03886},P:{"4":0.05194,"21":0.01039,"22":0.04155,"23":0.02078,"24":0.01039,"25":0.62326,_:"20 7.2-7.4 8.2 10.1 11.1-11.2 14.0 15.0 16.0 18.0","5.0-5.4":0.01039,"6.2-6.4":0.01039,"9.2":0.01039,"12.0":0.01039,"13.0":0.01039,"17.0":0.13504,"19.0":0.01039},I:{"0":0.0264,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":1.56392,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01013,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":61.45074},R:{_:"0"},M:{"0":0.29804},Q:{"14.9":0.02649},O:{"0":0.2583},H:{"0":0.37}}; 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..385a660 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TH.js @@ -0,0 +1 @@ +module.exports={C:{"42":0.00374,"48":0.00374,"52":0.01121,"53":0.02616,"55":0.29896,"56":1.6256,"75":0.00374,"78":0.00747,"85":0.00374,"96":0.00374,"98":0.00374,"101":0.00374,"103":0.00374,"105":0.00374,"106":0.00374,"109":0.00374,"110":0.00374,"111":0.00374,"113":0.00374,"115":0.14948,"119":0.00374,"120":0.00374,"122":0.00374,"124":0.00374,"125":0.00374,"126":0.01121,"127":0.32512,"128":0.55308,"129":0.00374,_:"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 43 44 45 46 47 49 50 51 54 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 79 80 81 82 83 84 86 87 88 89 90 91 92 93 94 95 97 99 100 102 104 107 108 112 114 116 117 118 121 123 130 131 3.5 3.6"},D:{"25":0.10464,"37":0.03737,"38":0.00374,"43":0.00374,"49":0.01495,"56":0.00374,"64":0.00374,"65":0.00374,"67":0.00374,"69":0.00374,"70":0.00374,"74":0.00374,"75":0.00374,"76":0.00374,"79":0.02242,"80":0.00747,"81":0.01121,"83":0.00747,"84":0.00374,"85":0.00747,"86":0.00374,"87":0.02616,"88":0.00747,"89":0.00374,"90":0.00374,"91":0.01121,"92":0.00374,"93":0.00374,"94":0.02242,"95":0.00374,"96":0.00374,"97":0.00374,"98":0.00374,"99":0.02242,"100":0.00374,"101":0.04484,"102":0.01121,"103":0.0299,"104":0.01121,"105":0.0299,"106":0.02242,"107":0.02242,"108":0.10464,"109":2.29452,"110":0.01495,"111":0.01495,"112":0.01495,"113":0.07474,"114":0.05232,"115":0.01495,"116":0.05606,"117":0.02616,"118":0.08221,"119":0.03363,"120":0.04858,"121":0.04858,"122":0.16443,"123":0.07848,"124":0.17938,"125":0.23169,"126":18.58036,"127":2.3431,"128":0.00747,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 36 39 40 41 42 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 63 66 68 71 72 73 77 78 129 130"},F:{"83":0.01495,"93":0.00374,"95":0.01869,"109":0.1009,"110":0.00374,"111":0.1719,_:"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 84 85 86 87 88 89 90 91 92 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.01121,"92":0.00747,"100":0.00374,"105":0.00374,"106":0.00374,"107":0.00374,"108":0.01869,"109":0.05979,"110":0.00374,"111":0.00374,"113":0.00374,"114":0.00747,"115":0.00374,"116":0.00374,"117":0.00374,"118":0.00374,"119":0.00374,"120":0.01121,"121":0.00747,"122":0.01495,"123":0.01121,"124":0.02242,"125":0.04111,"126":2.64206,"127":0.36996,_:"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 101 102 103 104 112"},E:{"14":0.01495,"15":0.00747,_:"0 4 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.00747,"13.1":0.01495,"14.1":0.04484,"15.1":0.00747,"15.2-15.3":0.00747,"15.4":0.01121,"15.5":0.02242,"15.6":0.11585,"16.0":0.01495,"16.1":0.07474,"16.2":0.0299,"16.3":0.07848,"16.4":0.01869,"16.5":0.03363,"16.6":0.17564,"17.0":0.0299,"17.1":0.0299,"17.2":0.04111,"17.3":0.04111,"17.4":0.12706,"17.5":1.98061,"17.6":0.01121,"18.0":0.01495},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0033,"5.0-5.1":0.00165,"6.0-6.1":0.00989,"7.0-7.1":0.00989,"8.1-8.4":0,"9.0-9.2":0.00824,"9.3":0.03298,"10.0-10.2":0.0066,"10.3":0.05771,"11.0-11.2":0.15169,"11.3-11.4":0.01649,"12.0-12.1":0.01154,"12.2-12.5":0.21269,"13.0-13.1":0.0033,"13.2":0.03462,"13.3":0.01154,"13.4-13.7":0.04946,"14.0-14.4":0.11377,"14.5-14.8":0.12861,"15.0-15.1":0.0643,"15.2-15.3":0.06925,"15.4":0.07914,"15.5":0.09563,"15.6-15.8":0.87715,"16.0":0.17642,"16.1":0.37427,"16.2":0.18796,"16.3":0.31492,"16.4":0.0742,"16.5":0.13355,"16.6-16.7":1.09479,"17.0":0.09893,"17.1":0.15993,"17.2":0.15499,"17.3":0.23248,"17.4":0.58202,"17.5":10.65774,"17.6":0.08244,"18.0":0.10882},P:{"4":0.04221,"20":0.01055,"21":0.05277,"22":0.11608,"23":0.12664,"24":0.10553,"25":2.15281,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 15.0","7.2-7.4":0.04221,"11.1-11.2":0.02111,"13.0":0.01055,"14.0":0.01055,"16.0":0.01055,"17.0":0.01055,"18.0":0.01055,"19.0":0.04221},I:{"0":0.04992,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00009},K:{"0":0.243,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00811,"9":0.00405,"10":0.00405,"11":0.22295,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":44.39415},R:{_:"0"},M:{"0":0.13776},Q:{"14.9":0.01252},O:{"0":0.18786},H:{"0":0.02}}; 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..d32ccb5 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TJ.js @@ -0,0 +1 @@ +module.exports={C:{"35":0.00235,"52":0.01176,"56":0.00235,"65":0.0047,"102":0.00235,"103":0.00235,"105":0.00235,"106":0.00235,"107":0.0047,"109":0.03762,"110":0.0047,"111":0.00235,"112":0.00235,"113":0.00235,"115":0.06818,"117":0.00235,"119":0.00705,"122":0.00235,"123":0.00235,"124":0.01176,"125":0.0047,"126":0.00235,"127":0.14811,"128":0.20454,_:"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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 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 104 108 114 116 118 120 121 129 130 131 3.5 3.6"},D:{"11":0.00705,"35":0.01646,"45":0.00705,"46":0.0047,"48":0.00235,"49":0.0094,"52":0.00235,"63":0.00235,"64":0.0047,"66":0.00235,"68":0.0047,"69":0.00705,"70":0.00235,"71":0.00235,"73":0.00235,"74":0.00235,"75":0.00235,"76":0.00235,"77":1.3001,"78":0.0094,"79":0.01646,"80":0.00705,"81":0.03997,"83":0.00705,"84":0.0047,"85":0.00235,"87":0.01411,"88":0.00705,"89":0.00235,"90":0.00235,"91":0.00235,"94":0.0047,"95":0.0047,"97":0.0047,"99":0.01411,"100":0.03997,"101":0.00235,"102":0.0047,"103":0.00705,"104":0.00705,"106":0.03527,"107":0.09639,"108":0.19984,"109":1.69272,"110":0.1246,"111":0.00705,"112":0.07993,"114":0.01646,"115":0.01646,"116":0.03056,"118":0.01176,"119":0.10344,"120":0.05642,"121":0.04467,"122":0.21159,"123":0.06818,"124":0.14811,"125":0.13166,"126":7.65956,"127":1.21077,_:"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 36 37 38 39 40 41 42 43 44 47 50 51 53 54 55 56 57 58 59 60 61 62 65 67 72 86 92 93 96 98 105 113 117 128 129 130"},F:{"36":0.00235,"79":0.03527,"81":0.0047,"82":0.0047,"83":0.01646,"84":0.00235,"85":0.0047,"86":0.0047,"89":0.00235,"91":0.00235,"94":0.00235,"95":0.1246,"104":0.00235,"108":0.0047,"109":0.05642,"110":0.01881,"111":0.43494,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 80 87 88 90 92 93 96 97 98 99 100 101 102 103 105 106 107 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5","11.6":0.0047,"12.1":0.0047},B:{"13":0.00235,"15":0.0047,"17":0.0047,"18":0.00705,"84":0.00235,"90":0.0047,"92":0.02351,"98":0.0047,"100":0.01646,"103":0.00235,"106":0.00235,"108":0.04702,"109":0.01411,"110":0.00235,"112":0.00235,"113":0.00235,"116":0.00235,"118":0.00235,"119":0.00235,"120":0.01176,"121":0.0094,"122":0.05642,"123":0.00705,"124":0.00235,"125":0.04937,"126":1.21077,"127":0.21159,_:"12 14 16 79 80 81 83 85 86 87 88 89 91 93 94 95 96 97 99 101 102 104 105 107 111 114 115 117"},E:{"14":0.00235,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 16.0 16.3 17.2","5.1":0.27272,"13.1":0.01411,"14.1":0.00235,"15.2-15.3":0.02821,"15.4":0.00235,"15.5":0.00235,"15.6":0.02586,"16.1":0.0047,"16.2":0.00235,"16.4":0.00705,"16.5":0.11755,"16.6":0.03997,"17.0":0.0047,"17.1":0.01881,"17.3":0.00235,"17.4":0.02116,"17.5":0.21864,"17.6":0.00235,"18.0":0.00235},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00138,"5.0-5.1":0.00069,"6.0-6.1":0.00414,"7.0-7.1":0.00414,"8.1-8.4":0,"9.0-9.2":0.00345,"9.3":0.01382,"10.0-10.2":0.00276,"10.3":0.02418,"11.0-11.2":0.06355,"11.3-11.4":0.00691,"12.0-12.1":0.00484,"12.2-12.5":0.08911,"13.0-13.1":0.00138,"13.2":0.01451,"13.3":0.00484,"13.4-13.7":0.02072,"14.0-14.4":0.04766,"14.5-14.8":0.05388,"15.0-15.1":0.02694,"15.2-15.3":0.02901,"15.4":0.03316,"15.5":0.04007,"15.6-15.8":0.3675,"16.0":0.07392,"16.1":0.15681,"16.2":0.07875,"16.3":0.13194,"16.4":0.03109,"16.5":0.05595,"16.6-16.7":0.45869,"17.0":0.04145,"17.1":0.06701,"17.2":0.06493,"17.3":0.0974,"17.4":0.24385,"17.5":4.4653,"17.6":0.03454,"18.0":0.04559},P:{"4":0.76475,"20":0.04025,"21":0.28175,"22":0.28175,"23":0.161,"24":0.11069,"25":1.127,"5.0-5.4":0.06038,"6.2-6.4":0.18113,"7.2-7.4":0.23144,_:"8.2 10.1","9.2":0.03019,"11.1-11.2":0.02013,"12.0":0.02013,"13.0":0.03019,"14.0":0.02013,"15.0":0.02013,"16.0":0.11069,"17.0":0.03019,"18.0":0.04025,"19.0":0.05031},I:{"0":0.00762,"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.00001},K:{"0":1.42825,_:"10 11 12 11.1 11.5 12.1"},A:{"6":0.00242,"8":0.03629,"9":0.01693,"10":0.00242,"11":0.10886,_:"7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":64.98466},R:{_:"0"},M:{"0":0.0306},Q:{"14.9":0.0306},O:{"0":0.459},H:{"0":0.14}}; 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..9996181 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TK.js @@ -0,0 +1 @@ +module.exports={C:{_:"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 112 113 114 115 116 117 118 119 120 3.5 3.6"},D:{"91":0.71912,"117":4.31719,_:"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 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 118 119 120"},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 99 100 101 102 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"116":1.43825,_:"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 107 108 109 110 111 112 113 114 115 117"},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.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1","15.1":2.15737,"15.2-15.3":11.51088,"16.6":0.71912},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.70962,"15.2-15.3":8.51107,"15.4":0,"15.5":0,"15.6-15.7":0,"16.0":0,"16.1":2.12885,"16.2":0,"16.3":0,"16.4":0,"16.5":1.41923,"16.6":21.27985,"17.0":9.22069,"17.1":0},P:{"4":0.11467,"20":0.01042,"21":0.73274,"22":2.93095,"5.0-5.4":0.01042,"6.2-6.4":0,"7.2-7.4":0.01042,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0.02085,"14.0":0,"15.0":0,"16.0":0,"17.0":0.01042,"18.0":0.01042,"19.0":0.01042},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},L:{"0":28.59944},R:{_:"0"},M:{"0":0},Q:{"13.1":0},O:{"0":0},H:{"0":0}}; 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..61ee02e --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TL.js @@ -0,0 +1 @@ +module.exports={C:{"8":0.00382,"37":0.00382,"43":0.00382,"44":0.00382,"47":0.02294,"48":0.01147,"50":0.01147,"52":0.02676,"56":0.01912,"57":0.01147,"59":0.00765,"60":0.00382,"62":0.00765,"63":0.00765,"67":0.01147,"68":0.00382,"72":0.06881,"77":0.00382,"78":0.02294,"79":0.1988,"85":0.01529,"88":0.00382,"95":0.00765,"101":0.00382,"102":0.01147,"103":0.00382,"105":0.00382,"107":0.00382,"111":0.00382,"112":0.00382,"114":0.00382,"115":0.87164,"118":0.00765,"119":0.00382,"121":0.02294,"122":0.02676,"123":0.02294,"124":0.01529,"125":0.05735,"126":0.07264,"127":2.03766,"128":2.2938,"129":0.15292,_:"2 3 4 5 6 7 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 38 39 40 41 42 45 46 49 51 53 54 55 58 61 64 65 66 69 70 71 73 74 75 76 80 81 82 83 84 86 87 89 90 91 92 93 94 96 97 98 99 100 104 106 108 109 110 113 116 117 120 130 131 3.5 3.6"},D:{"31":0.01147,"42":0.00382,"43":0.00382,"49":0.01147,"50":0.00382,"51":0.00382,"55":0.00382,"58":0.00765,"63":0.01529,"64":0.00382,"65":0.01529,"66":0.00765,"67":0.00765,"68":0.01147,"70":0.00765,"73":0.01529,"74":0.03441,"75":0.00382,"76":0.00382,"79":0.02294,"80":0.03441,"81":0.00765,"83":0.00382,"84":0.01147,"85":0.00765,"86":0.01147,"87":0.02294,"88":0.01147,"89":0.02294,"90":0.00382,"91":0.00765,"92":0.00765,"93":0.00382,"94":0.00765,"95":0.03823,"96":0.02294,"97":0.02676,"99":0.00382,"100":0.01147,"102":0.01147,"103":0.14145,"105":0.00382,"106":0.00382,"107":0.00765,"108":0.00382,"109":1.62478,"110":0.01147,"111":0.10704,"112":0.01147,"113":0.01147,"114":0.06499,"115":0.00765,"116":0.70726,"117":0.05352,"118":0.02676,"119":0.05735,"120":0.21027,"121":0.10704,"122":0.09175,"123":0.17204,"124":0.26761,"125":0.55434,"126":15.6246,"127":1.61331,_:"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 32 33 34 35 36 37 38 39 40 41 44 45 46 47 48 52 53 54 56 57 59 60 61 62 69 71 72 77 78 98 101 104 128 129 130"},F:{"37":0.00382,"58":0.00382,"72":0.00382,"84":0.00382,"85":0.00765,"95":0.07264,"102":0.01147,"106":0.00382,"109":0.01529,"110":0.05352,"111":0.3326,_:"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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 60 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.02294,"13":0.03823,"14":0.01147,"15":0.01912,"16":0.01147,"17":0.01529,"18":0.05735,"80":0.00382,"84":0.00765,"85":0.00382,"89":0.02676,"90":0.08411,"92":0.06117,"96":0.03441,"97":0.01147,"100":0.05352,"104":0.00765,"107":0.00382,"108":0.03441,"109":0.05352,"110":0.01147,"111":0.01912,"112":0.00765,"113":0.02294,"114":0.01912,"115":0.01912,"116":0.02294,"117":0.02676,"118":0.01147,"119":0.01147,"120":0.0994,"121":0.04205,"122":0.06117,"123":0.0497,"124":0.20262,"125":0.20262,"126":4.92402,"127":0.38995,_:"79 81 83 86 87 88 91 93 94 95 98 99 101 102 103 105 106"},E:{"11":0.00382,"14":0.01529,_:"0 4 5 6 7 8 9 10 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 16.0 16.2 17.6 18.0","12.1":0.00382,"13.1":0.01529,"14.1":0.10322,"15.1":0.01147,"15.2-15.3":0.00765,"15.4":0.01147,"15.5":0.00382,"15.6":0.04205,"16.1":0.01529,"16.3":0.01147,"16.4":0.00382,"16.5":0.04205,"16.6":0.05735,"17.0":0.02676,"17.1":0.02294,"17.2":0.02294,"17.3":0.03823,"17.4":0.02294,"17.5":0.23703},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00125,"5.0-5.1":0.00063,"6.0-6.1":0.00375,"7.0-7.1":0.00375,"8.1-8.4":0,"9.0-9.2":0.00313,"9.3":0.0125,"10.0-10.2":0.0025,"10.3":0.02188,"11.0-11.2":0.05751,"11.3-11.4":0.00625,"12.0-12.1":0.00438,"12.2-12.5":0.08064,"13.0-13.1":0.00125,"13.2":0.01313,"13.3":0.00438,"13.4-13.7":0.01875,"14.0-14.4":0.04313,"14.5-14.8":0.04876,"15.0-15.1":0.02438,"15.2-15.3":0.02625,"15.4":0.03001,"15.5":0.03626,"15.6-15.8":0.33256,"16.0":0.06689,"16.1":0.1419,"16.2":0.07126,"16.3":0.1194,"16.4":0.02813,"16.5":0.05063,"16.6-16.7":0.41507,"17.0":0.03751,"17.1":0.06064,"17.2":0.05876,"17.3":0.08814,"17.4":0.22066,"17.5":4.04073,"17.6":0.03126,"18.0":0.04126},P:{"20":0.01027,"21":0.10265,"22":0.14372,"23":0.11292,"24":0.10265,"25":0.48247,_:"4 5.0-5.4 8.2 9.2 10.1 12.0 13.0 17.0","6.2-6.4":0.01027,"7.2-7.4":0.12318,"11.1-11.2":0.02053,"14.0":0.01027,"15.0":0.01027,"16.0":0.02053,"18.0":0.01027,"19.0":0.07186},I:{"0":0.00616,"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.00001},K:{"0":0.84007,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.03441,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":54.29598},R:{_:"0"},M:{"0":0.03089},Q:{_:"14.9"},O:{"0":0.80301},H:{"0":0}}; 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..763e39e --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TM.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00695,"48":0.00174,"49":0.00174,"52":0.00174,"59":0.00348,"60":0.00174,"64":0.00174,"67":0.00348,"69":0.01564,"70":0.00174,"72":0.00174,"74":0.00174,"78":0.00174,"85":0.00348,"87":0.00174,"89":0.00521,"91":0.00348,"94":0.00348,"104":0.00174,"109":0.00174,"110":0.00174,"111":0.00348,"112":0.00695,"113":0.00521,"115":0.00348,"119":0.00174,"124":0.00174,"125":0.0139,"126":0.00174,"127":0.04693,"128":0.04171,"129":0.00695,_:"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 43 44 45 46 47 50 51 53 54 55 56 57 58 61 62 63 65 66 68 71 73 75 76 77 79 80 81 82 83 84 86 88 90 92 93 95 96 97 98 99 100 101 102 103 105 106 107 108 114 116 117 118 120 121 122 123 130 131 3.5 3.6"},D:{"11":0.06778,"26":0.00521,"31":0.00174,"33":0.00695,"38":0.00521,"39":0.01043,"45":0.00174,"47":0.01043,"49":0.01912,"50":0.00174,"52":0.01043,"55":0.03997,"57":0.00869,"62":0.00174,"64":0.00174,"66":0.00348,"67":0.00174,"68":0.00348,"69":0.00521,"70":0.0139,"71":0.00521,"74":0.00348,"75":0.00174,"76":0.00174,"77":0.00174,"78":0.0365,"79":0.01912,"80":0.00521,"81":0.00521,"83":0.58918,"84":0.00348,"85":0.00869,"86":0.00521,"87":0.02781,"88":0.04345,"89":0.00348,"90":0.01217,"91":0.0139,"92":0.00869,"94":0.00174,"95":0.01738,"96":0.00521,"97":0.00521,"98":0.00521,"99":0.00869,"100":0.01217,"101":0.00695,"102":0.00348,"103":0.03128,"104":0.01738,"105":0.01043,"106":0.06604,"107":0.0365,"108":0.0504,"109":3.39779,"110":0.00521,"111":0.00348,"112":0.00348,"114":0.00695,"115":0.00348,"116":0.01738,"117":0.00695,"118":0.02955,"119":0.02259,"120":0.09211,"121":0.0139,"122":0.04345,"123":0.01564,"124":0.11818,"125":0.09211,"126":4.84728,"127":0.71779,"128":0.00521,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 32 34 35 36 37 40 41 42 43 44 46 48 51 53 54 56 58 59 60 61 63 65 72 73 93 113 129 130"},F:{"35":0.00521,"40":0.00348,"46":0.00521,"60":0.00174,"64":0.00174,"73":0.00348,"77":0.00174,"78":0.00174,"79":0.00521,"82":0.00348,"83":0.00521,"87":0.00174,"88":0.00174,"89":0.00348,"95":0.01738,"109":0.05388,"110":0.00348,"111":0.05735,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 62 63 65 66 67 68 69 70 71 72 74 75 76 80 81 84 85 86 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 12.1","11.6":0.00174},B:{"12":0.00174,"17":0.00174,"18":0.01564,"84":0.00521,"85":0.00174,"89":0.00695,"92":0.01738,"99":0.00348,"100":0.00348,"102":0.00174,"109":0.02086,"110":0.00348,"112":0.00348,"123":0.00348,"124":0.01564,"125":0.00695,"126":0.51619,"127":0.07126,_:"13 14 15 16 79 80 81 83 86 87 88 90 91 93 94 95 96 97 98 101 103 104 105 106 107 108 111 113 114 115 116 117 118 119 120 121 122"},E:{"12":0.00174,_:"0 4 5 6 7 8 9 10 11 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 16.0 16.2 16.5 17.0 17.2 17.3 17.4 17.6 18.0","13.1":0.00348,"14.1":0.00174,"15.5":0.00174,"15.6":0.02955,"16.1":0.00174,"16.3":0.0139,"16.4":0.00174,"16.6":0.02086,"17.1":0.14425,"17.5":0.073},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00049,"5.0-5.1":0.00024,"6.0-6.1":0.00146,"7.0-7.1":0.00146,"8.1-8.4":0,"9.0-9.2":0.00122,"9.3":0.00487,"10.0-10.2":0.00097,"10.3":0.00853,"11.0-11.2":0.02242,"11.3-11.4":0.00244,"12.0-12.1":0.00171,"12.2-12.5":0.03144,"13.0-13.1":0.00049,"13.2":0.00512,"13.3":0.00171,"13.4-13.7":0.00731,"14.0-14.4":0.01682,"14.5-14.8":0.01901,"15.0-15.1":0.00951,"15.2-15.3":0.01024,"15.4":0.0117,"15.5":0.01414,"15.6-15.8":0.12966,"16.0":0.02608,"16.1":0.05533,"16.2":0.02779,"16.3":0.04655,"16.4":0.01097,"16.5":0.01974,"16.6-16.7":0.16184,"17.0":0.01462,"17.1":0.02364,"17.2":0.02291,"17.3":0.03437,"17.4":0.08604,"17.5":1.57546,"17.6":0.01219,"18.0":0.01609},P:{"4":1.17946,"20":0.01063,"21":0.14876,"22":0.41441,"23":0.07438,"24":0.12751,"25":0.92444,"5.0-5.4":0.07438,"6.2-6.4":0.0425,"7.2-7.4":0.39315,_:"8.2 10.1 12.0 15.0","9.2":0.02125,"11.1-11.2":0.02125,"13.0":0.02125,"14.0":0.0425,"16.0":0.02125,"17.0":0.05313,"18.0":0.03188,"19.0":0.07438},I:{"0":0.05763,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.0001},K:{"0":0.19003,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.02609,"11":2.38973,_:"6 7 9 10 5.5"},S:{"2.5":0.00826,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":76.73031},R:{_:"0"},M:{"0":0.09088},Q:{_:"14.9"},O:{"0":0.55355},H:{"0":0}}; 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..bfae482 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TN.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.02039,"68":0.00255,"72":0.00255,"75":0.0051,"78":0.00765,"82":0.00255,"88":0.00255,"102":0.00255,"103":0.01529,"105":0.0051,"106":0.00255,"107":0.00255,"108":0.0051,"109":0.0051,"113":0.00255,"115":0.23961,"116":0.00255,"120":0.00255,"122":0.00255,"123":0.00765,"124":0.00255,"125":0.00765,"126":0.01275,"127":0.20902,"128":0.69843,"129":0.0051,_:"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 67 69 70 71 73 74 76 77 79 80 81 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 104 110 111 112 114 117 118 119 121 130 131 3.5 3.6"},D:{"11":0.00255,"38":0.00255,"42":0.00255,"47":0.00765,"49":0.03569,"50":0.00255,"53":0.00255,"56":0.00765,"58":0.09176,"60":0.00255,"63":0.00255,"64":0.00255,"65":0.0051,"66":0.00255,"68":0.00255,"69":0.02549,"70":0.0102,"71":0.00255,"72":0.00255,"73":0.0051,"74":0.00255,"75":0.00255,"76":0.00255,"77":0.00255,"78":0.0051,"79":0.02294,"80":0.00255,"81":0.01275,"83":0.0102,"84":0.00255,"85":0.01784,"86":0.01275,"87":0.04333,"88":0.02039,"89":0.0102,"90":0.0051,"91":0.01529,"92":0.0102,"93":0.00765,"94":0.0102,"95":0.01529,"96":0.0051,"97":0.0051,"98":0.08412,"99":0.01529,"100":0.0051,"101":0.0051,"102":0.01784,"103":0.03059,"104":0.03059,"105":0.0102,"106":0.03569,"107":0.01529,"108":0.02804,"109":3.22194,"110":0.02294,"111":0.02039,"112":0.19882,"113":0.0051,"114":0.0102,"115":0.00765,"116":0.04843,"117":0.0051,"118":0.01275,"119":0.03824,"120":0.07647,"121":0.05353,"122":0.07902,"123":0.04333,"124":0.08922,"125":0.23706,"126":10.76953,"127":1.52685,"128":0.00765,_:"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 39 40 41 43 44 45 46 48 51 52 54 55 57 59 61 62 67 129 130"},F:{"36":0.00255,"40":0.00255,"46":0.00255,"79":0.00255,"82":0.0051,"83":0.01529,"84":0.00255,"85":0.01275,"95":0.07392,"97":0.00255,"102":0.00255,"106":0.01784,"107":0.01784,"108":0.00255,"109":0.61941,"110":0.0102,"111":0.64235,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 74 75 76 77 78 80 81 86 87 88 89 90 91 92 93 94 96 98 99 100 101 103 104 105 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0051,"84":0.00255,"89":0.00255,"90":0.00255,"92":0.02804,"96":0.00255,"100":0.00255,"107":0.01529,"108":0.00255,"109":0.05608,"110":0.00255,"111":0.00255,"112":0.0051,"113":0.00255,"114":0.01275,"117":0.01784,"118":0.03314,"119":0.0102,"120":0.01784,"121":0.02294,"122":0.0102,"123":0.0051,"124":0.03569,"125":0.06627,"126":1.87861,"127":0.21412,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88 91 93 94 95 97 98 99 101 102 103 104 105 106 115 116"},E:{"14":0.00255,_:"0 4 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 12.1 15.2-15.3","13.1":0.0051,"14.1":0.0102,"15.1":0.00255,"15.4":0.00255,"15.5":0.0051,"15.6":0.01784,"16.0":0.01529,"16.1":0.0051,"16.2":0.00255,"16.3":0.00765,"16.4":0.00255,"16.5":0.0102,"16.6":0.02039,"17.0":0.0051,"17.1":0.0051,"17.2":0.03824,"17.3":0.0051,"17.4":0.02549,"17.5":0.15294,"17.6":0.00255,"18.0":0.00255},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00118,"5.0-5.1":0.00059,"6.0-6.1":0.00354,"7.0-7.1":0.00354,"8.1-8.4":0,"9.0-9.2":0.00295,"9.3":0.01179,"10.0-10.2":0.00236,"10.3":0.02063,"11.0-11.2":0.05422,"11.3-11.4":0.00589,"12.0-12.1":0.00413,"12.2-12.5":0.07603,"13.0-13.1":0.00118,"13.2":0.01238,"13.3":0.00413,"13.4-13.7":0.01768,"14.0-14.4":0.04067,"14.5-14.8":0.04597,"15.0-15.1":0.02299,"15.2-15.3":0.02475,"15.4":0.02829,"15.5":0.03418,"15.6-15.8":0.31355,"16.0":0.06306,"16.1":0.13379,"16.2":0.06719,"16.3":0.11257,"16.4":0.02652,"16.5":0.04774,"16.6-16.7":0.39134,"17.0":0.03536,"17.1":0.05717,"17.2":0.0554,"17.3":0.0831,"17.4":0.20805,"17.5":3.80971,"17.6":0.02947,"18.0":0.0389},P:{"4":0.11337,"20":0.04122,"21":0.05153,"22":0.08245,"23":0.10306,"24":0.07214,"25":1.03061,"5.0-5.4":0.01031,"6.2-6.4":0.02061,"7.2-7.4":0.27826,_:"8.2 9.2 10.1 12.0 15.0","11.1-11.2":0.02061,"13.0":0.01031,"14.0":0.01031,"16.0":0.01031,"17.0":0.05153,"18.0":0.01031,"19.0":0.04122},I:{"0":0.10395,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00006,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00018},K:{"0":0.41471,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00535,"9":0.00268,"10":0.00268,"11":0.04015,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":67.95564},R:{_:"0"},M:{"0":0.08196},Q:{_:"14.9"},O:{"0":0.11922},H:{"0":0.01}}; 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..0de7190 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TO.js @@ -0,0 +1 @@ +module.exports={C:{"110":0.00505,"115":0.10595,"120":0.00505,"125":0.00505,"126":0.00505,"127":1.45801,"128":2.44178,_:"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 111 112 113 114 116 117 118 119 121 122 123 124 129 130 131 3.5 3.6"},D:{"74":0.01009,"75":0.00505,"80":0.01009,"93":0.00505,"102":0.00505,"103":0.07568,"104":0.06054,"106":0.00505,"107":0.03027,"109":0.36324,"114":0.04541,"115":0.00505,"116":0.04541,"117":0.1009,"118":0.34811,"119":0.06559,"120":0.13622,"122":0.09081,"123":0.04036,"124":0.16144,"125":0.36829,"126":17.24381,"127":2.2753,_:"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 76 77 78 79 81 83 84 85 86 87 88 89 90 91 92 94 95 96 97 98 99 100 101 105 108 110 111 112 113 121 128 129 130"},F:{"82":0.00505,"83":0.02018,"109":0.07568,"110":0.01009,"111":0.06054,_:"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 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 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.02018,"18":0.01009,"84":0.00505,"92":0.03027,"100":0.00505,"108":0.02523,"109":0.01009,"111":0.00505,"113":0.00505,"115":0.03532,"116":0.00505,"117":0.02523,"120":0.03027,"121":0.18162,"122":0.18162,"124":0.11099,"125":0.20685,"126":9.40388,"127":2.02305,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 110 112 114 118 119 123"},E:{"11":0.01009,"13":0.00505,"14":0.03027,"15":0.14126,_:"0 4 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3 15.4 16.0 16.2 16.3 17.0 17.2 17.6 18.0","13.1":0.02523,"14.1":0.16649,"15.1":0.0555,"15.5":0.00505,"15.6":0.49441,"16.1":0.09586,"16.4":0.01009,"16.5":0.33802,"16.6":0.7618,"17.1":0.03027,"17.3":0.04541,"17.4":0.02018,"17.5":0.36829},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00219,"5.0-5.1":0.0011,"6.0-6.1":0.00657,"7.0-7.1":0.00657,"8.1-8.4":0,"9.0-9.2":0.00548,"9.3":0.0219,"10.0-10.2":0.00438,"10.3":0.03833,"11.0-11.2":0.10075,"11.3-11.4":0.01095,"12.0-12.1":0.00767,"12.2-12.5":0.14126,"13.0-13.1":0.00219,"13.2":0.023,"13.3":0.00767,"13.4-13.7":0.03285,"14.0-14.4":0.07556,"14.5-14.8":0.08541,"15.0-15.1":0.04271,"15.2-15.3":0.04599,"15.4":0.05256,"15.5":0.06351,"15.6-15.8":0.58257,"16.0":0.11717,"16.1":0.24858,"16.2":0.12484,"16.3":0.20916,"16.4":0.04928,"16.5":0.0887,"16.6-16.7":0.72712,"17.0":0.0657,"17.1":0.10622,"17.2":0.10294,"17.3":0.1544,"17.4":0.38655,"17.5":7.07844,"17.6":0.05475,"18.0":0.07227},P:{"4":0.02073,"20":0.01036,"21":0.14509,"22":0.04145,"23":0.228,"24":0.04145,"25":0.74618,_:"5.0-5.4 6.2-6.4 8.2 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0","7.2-7.4":0.03109,"9.2":0.02073,"10.1":0.05182,"16.0":0.01036,"19.0":0.01036},I:{"0":0.00988,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.07433,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.01009,_:"6 7 8 9 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":42.64137},R:{_:"0"},M:{"0":0.00991},Q:{"14.9":0.00496},O:{"0":0.10406},H:{"0":0}}; 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..18e4145 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TR.js @@ -0,0 +1 @@ +module.exports={C:{"47":0.00421,"48":0.0021,"51":0.0021,"52":0.00421,"72":0.0021,"78":0.0021,"88":0.00421,"96":0.0021,"102":0.00421,"103":0.0021,"105":0.0021,"106":0.0021,"107":0.0021,"108":0.0021,"109":0.0021,"110":0.0021,"115":0.11777,"116":0.0021,"123":0.0021,"124":0.0021,"125":0.0021,"126":0.00631,"127":0.12408,"128":0.22502,_:"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 49 50 53 54 55 56 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 87 89 90 91 92 93 94 95 97 98 99 100 101 104 111 112 113 114 117 118 119 120 121 122 129 130 131 3.5 3.6"},D:{"11":0.0021,"22":0.0021,"26":0.02313,"34":0.01682,"38":0.02103,"47":0.02524,"48":0.0021,"49":0.06309,"50":0.00421,"52":0.0021,"53":0.01052,"55":0.0021,"56":0.0021,"58":0.0021,"59":0.0021,"60":0.0021,"63":0.0021,"65":0.0021,"66":0.0021,"68":0.00421,"69":0.00421,"70":0.00421,"71":0.00421,"72":0.0021,"73":0.01472,"74":0.0021,"75":0.00421,"77":0.0021,"78":0.0021,"79":0.30494,"80":0.01472,"81":0.00421,"83":0.05888,"84":0.0021,"85":0.02524,"86":0.00631,"87":0.23764,"88":0.01472,"89":0.0021,"90":0.00421,"91":0.02313,"92":0.00421,"93":0.0021,"94":0.07781,"95":0.00841,"96":0.09884,"97":0.0021,"98":0.01262,"99":0.04416,"100":0.00421,"101":0.00421,"102":0.00631,"103":0.01262,"104":0.00631,"105":0.00421,"106":0.02524,"107":0.01893,"108":0.02524,"109":2.53622,"110":0.01682,"111":0.02313,"112":0.01893,"113":0.00841,"114":0.01262,"115":0.00841,"116":0.03996,"117":0.00841,"118":0.02103,"119":0.03575,"120":0.03365,"121":0.02734,"122":0.05678,"123":0.05468,"124":0.07571,"125":0.15352,"126":8.93565,"127":1.45317,"128":0.00421,"129":0.0021,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 51 54 57 61 62 64 67 76 130"},F:{"28":0.00421,"31":0.00421,"32":0.01682,"36":0.01472,"40":0.05468,"46":0.15352,"79":0.0021,"83":0.01893,"85":0.0021,"86":0.0021,"94":0.0021,"95":0.04627,"102":0.0021,"106":0.0021,"107":0.0021,"109":0.30914,"110":0.00841,"111":0.33858,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 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 80 81 82 84 87 88 89 90 91 92 93 96 97 98 99 100 101 103 104 105 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.0021,"13":0.0021,"14":0.0021,"15":0.0021,"17":0.00631,"18":0.00841,"84":0.0021,"92":0.00631,"100":0.0021,"106":0.0021,"107":0.00421,"108":0.00421,"109":0.07571,"110":0.00421,"111":0.0021,"113":0.0021,"114":0.00421,"115":0.00421,"116":0.0021,"117":0.0021,"118":0.00421,"119":0.0021,"120":0.00631,"121":0.00421,"122":0.00421,"123":0.00421,"124":0.01052,"125":0.03996,"126":1.41742,"127":0.25446,_:"16 79 80 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 112"},E:{"13":0.0021,"14":0.01052,"15":0.0021,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.2-15.3","12.1":0.0021,"13.1":0.01262,"14.1":0.01682,"15.1":0.0021,"15.4":0.00631,"15.5":0.00631,"15.6":0.05678,"16.0":0.00631,"16.1":0.00841,"16.2":0.00421,"16.3":0.01893,"16.4":0.00421,"16.5":0.01052,"16.6":0.0673,"17.0":0.00421,"17.1":0.01052,"17.2":0.01262,"17.3":0.01052,"17.4":0.02524,"17.5":0.2797,"17.6":0.0021,"18.0":0.00421},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00235,"5.0-5.1":0.00117,"6.0-6.1":0.00704,"7.0-7.1":0.00704,"8.1-8.4":0,"9.0-9.2":0.00586,"9.3":0.02345,"10.0-10.2":0.00469,"10.3":0.04104,"11.0-11.2":0.10789,"11.3-11.4":0.01173,"12.0-12.1":0.00821,"12.2-12.5":0.15128,"13.0-13.1":0.00235,"13.2":0.02463,"13.3":0.00821,"13.4-13.7":0.03518,"14.0-14.4":0.08092,"14.5-14.8":0.09147,"15.0-15.1":0.04574,"15.2-15.3":0.04925,"15.4":0.05629,"15.5":0.06802,"15.6-15.8":0.62388,"16.0":0.12548,"16.1":0.2662,"16.2":0.13369,"16.3":0.22399,"16.4":0.05277,"16.5":0.09499,"16.6-16.7":0.77868,"17.0":0.07036,"17.1":0.11375,"17.2":0.11023,"17.3":0.16535,"17.4":0.41396,"17.5":7.58036,"17.6":0.05864,"18.0":0.0774},P:{"4":0.34716,"20":0.03063,"21":0.11232,"22":0.06126,"23":0.08168,"24":0.08168,"25":2.03189,"5.0-5.4":0.04084,"6.2-6.4":0.04084,"7.2-7.4":0.1021,_:"8.2 10.1 15.0","9.2":0.02042,"11.1-11.2":0.02042,"12.0":0.01021,"13.0":0.04084,"14.0":0.02042,"16.0":0.02042,"17.0":0.08168,"18.0":0.01021,"19.0":0.03063},I:{"0":0.02361,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.86077,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00219,"9":0.00219,"11":0.09656,_:"6 7 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":62.29089},R:{_:"0"},M:{"0":0.11056},Q:{_:"14.9"},O:{"0":0.11056},H:{"0":0}}; 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..52c8314 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TT.js @@ -0,0 +1 @@ +module.exports={C:{"31":0.00336,"78":0.00336,"92":0.00336,"102":0.00336,"103":0.01679,"115":0.07052,"121":0.01679,"124":0.00336,"125":0.00336,"126":0.00672,"127":0.2317,"128":0.50706,_:"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 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 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 123 129 130 131 3.5 3.6"},D:{"49":0.00672,"65":0.00672,"75":0.00336,"76":0.00672,"79":0.02686,"81":0.00336,"83":0.00336,"85":0.00336,"87":0.01679,"88":0.00336,"89":0.00336,"91":0.01679,"93":0.02351,"94":0.00672,"95":0.01679,"96":0.00336,"97":0.00336,"98":0.00336,"101":0.00672,"102":0.00336,"103":0.23842,"104":0.02351,"105":0.00336,"106":0.03022,"109":0.72869,"111":0.03022,"112":0.01007,"113":0.00336,"114":0.00672,"115":0.00336,"116":0.07723,"117":0.01007,"118":0.00336,"119":0.01679,"120":0.03694,"121":0.01343,"122":0.42647,"123":0.03694,"124":0.30558,"125":0.31229,"126":16.63553,"127":0.89659,"128":0.01007,_:"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 63 64 66 67 68 69 70 71 72 73 74 77 78 80 84 86 90 92 99 100 107 108 110 129 130"},F:{"83":0.01007,"95":0.00336,"102":0.00336,"109":1.58162,"110":0.00336,"111":0.40296,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"13":0.01343,"15":0.05709,"18":0.00336,"92":0.00336,"109":0.05373,"112":0.00336,"117":0.00336,"118":0.00336,"119":0.00336,"120":0.00672,"122":0.00336,"123":0.02686,"124":0.01343,"125":0.41303,"126":4.55345,"127":0.30558,_:"12 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 107 108 110 111 113 114 115 116 121"},E:{"14":0.00336,"15":0.00336,_:"0 4 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 15.1","13.1":0.04365,"14.1":0.01007,"15.2-15.3":0.00336,"15.4":0.01343,"15.5":0.00672,"15.6":0.1041,"16.0":0.02015,"16.1":0.08059,"16.2":0.01343,"16.3":0.03694,"16.4":0.00336,"16.5":0.01343,"16.6":0.33916,"17.0":0.2317,"17.1":0.13768,"17.2":0.01679,"17.3":0.05709,"17.4":0.09738,"17.5":2.21964,"17.6":0.01007,"18.0":0.03022},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00677,"5.0-5.1":0.00338,"6.0-6.1":0.0203,"7.0-7.1":0.0203,"8.1-8.4":0,"9.0-9.2":0.01692,"9.3":0.06767,"10.0-10.2":0.01353,"10.3":0.11842,"11.0-11.2":0.31128,"11.3-11.4":0.03383,"12.0-12.1":0.02368,"12.2-12.5":0.43646,"13.0-13.1":0.00677,"13.2":0.07105,"13.3":0.02368,"13.4-13.7":0.1015,"14.0-14.4":0.23346,"14.5-14.8":0.26391,"15.0-15.1":0.13195,"15.2-15.3":0.1421,"15.4":0.1624,"15.5":0.19624,"15.6-15.8":1.79999,"16.0":0.36203,"16.1":0.76804,"16.2":0.38571,"16.3":0.64624,"16.4":0.15225,"16.5":0.27406,"16.6-16.7":2.2466,"17.0":0.20301,"17.1":0.32819,"17.2":0.31804,"17.3":0.47706,"17.4":1.19435,"17.5":21.87052,"17.6":0.16917,"18.0":0.22331},P:{"4":0.14905,"20":0.01065,"21":0.05323,"22":0.04259,"23":0.05323,"24":0.05323,"25":2.36351,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 15.0 16.0","7.2-7.4":0.10646,"11.1-11.2":0.01065,"14.0":0.01065,"17.0":0.02129,"18.0":0.01065,"19.0":0.01065},I:{"0":0.07943,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00014},K:{"0":0.13284,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.00672,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":29.80938},R:{_:"0"},M:{"0":0.24575},Q:{_:"14.9"},O:{"0":0.02657},H:{"0":0}}; 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..4a611cf --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TV.js @@ -0,0 +1 @@ +module.exports={C:{"112":0.63722,"127":3.18611,"128":0.63722,_:"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 115 116 117 118 119 120 121 122 123 124 125 126 129 130 131 3.5 3.6"},D:{"109":1.27444,"110":0.63722,"126":15.92278,"127":0.63722,_:"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 108 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 128 129 130"},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 99 100 101 102 103 104 105 106 107 108 109 110 111 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"120":1.27444,"125":0.63722,"126":51.59167,"127":0.63722,_:"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 107 108 109 110 111 112 113 114 115 116 117 118 119 121 122 123 124"},E:{_:"0 4 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.1 15.2-15.3 15.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 16.6 17.0 17.1 17.2 17.3 17.4 17.5 17.6 18.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-15.8":0,"16.0":0,"16.1":0,"16.2":0,"16.3":0,"16.4":0,"16.5":0,"16.6-16.7":0,"17.0":0,"17.1":0,"17.2":0,"17.3":0,"17.4":0,"17.5":0,"17.6":0,"18.0":0},P:{_:"4 20 21 22 23 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.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":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":22.29},R:{_:"0"},M:{_:"0"},Q:{_:"14.9"},O:{_:"0"},H:{"0":0}}; 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..bc5f181 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TW.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00442,"52":0.00442,"78":0.00442,"88":0.00442,"102":0.00442,"103":0.00884,"115":0.14144,"124":0.00442,"125":0.00442,"126":0.00884,"127":0.22984,"128":0.41106,_:"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 43 44 45 46 47 48 49 50 51 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 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 101 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 121 122 123 129 130 131 3.5 3.6"},D:{"11":0.00442,"17":0.02652,"26":0.00442,"30":0.00442,"34":0.01768,"38":0.06188,"45":0.00442,"48":0.00442,"49":0.03536,"53":0.0442,"55":0.00442,"56":0.01326,"61":0.0442,"63":0.00442,"65":0.00884,"66":0.00884,"67":0.00884,"68":0.00442,"70":0.00442,"71":0.00442,"72":0.00442,"73":0.02652,"74":0.01768,"75":0.00442,"76":0.00884,"77":0.07956,"78":0.00442,"79":0.4199,"80":0.00884,"81":0.0221,"83":0.01768,"84":0.00442,"85":0.00442,"86":0.00884,"87":0.32708,"88":0.00442,"89":0.00884,"90":0.00884,"91":0.01768,"92":0.00442,"94":0.10166,"95":0.00884,"96":0.00884,"97":0.01768,"98":0.00884,"99":0.01326,"100":0.00442,"101":0.01326,"102":0.01768,"103":0.06188,"104":0.0221,"105":0.00884,"106":0.01768,"107":0.01326,"108":0.03536,"109":3.0719,"110":0.01326,"111":0.01768,"112":0.01326,"113":0.00884,"114":0.0221,"115":0.00884,"116":0.12376,"117":0.01326,"118":0.03536,"119":0.07514,"120":0.06188,"121":0.07072,"122":0.07956,"123":0.07514,"124":0.15912,"125":0.45526,"126":21.75524,"127":2.62548,"128":0.01768,"129":0.00442,_:"4 5 6 7 8 9 10 12 13 14 15 16 18 19 20 21 22 23 24 25 27 28 29 31 32 33 35 36 37 39 40 41 42 43 44 46 47 50 51 52 54 57 58 59 60 62 64 69 93 130"},F:{"28":0.00442,"36":0.01768,"46":0.10608,"83":0.00442,"95":0.00884,"109":0.01326,"111":0.06188,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00442,"18":0.00442,"84":0.00442,"92":0.00442,"107":0.00442,"108":0.00442,"109":0.0884,"110":0.00442,"111":0.00442,"112":0.00442,"113":0.00442,"114":0.00442,"115":0.00442,"116":0.00442,"117":0.00442,"118":0.00442,"119":0.00442,"120":0.01326,"121":0.00884,"122":0.00884,"123":0.01326,"124":0.01768,"125":0.0663,"126":3.66418,"127":0.47294,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106"},E:{"12":0.00442,"13":0.02652,"14":0.09724,"15":0.01326,_:"0 4 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.01768,"13.1":0.07514,"14.1":0.2652,"15.1":0.03094,"15.2-15.3":0.0221,"15.4":0.07514,"15.5":0.14586,"15.6":0.5746,"16.0":0.02652,"16.1":0.11492,"16.2":0.07072,"16.3":0.21216,"16.4":0.0442,"16.5":0.11934,"16.6":0.69394,"17.0":0.02652,"17.1":0.09724,"17.2":0.0884,"17.3":0.11492,"17.4":0.26078,"17.5":3.71722,"17.6":0.00884,"18.0":0.00884},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00522,"5.0-5.1":0.00261,"6.0-6.1":0.01565,"7.0-7.1":0.01565,"8.1-8.4":0,"9.0-9.2":0.01304,"9.3":0.05216,"10.0-10.2":0.01043,"10.3":0.09128,"11.0-11.2":0.23994,"11.3-11.4":0.02608,"12.0-12.1":0.01826,"12.2-12.5":0.33644,"13.0-13.1":0.00522,"13.2":0.05477,"13.3":0.01826,"13.4-13.7":0.07824,"14.0-14.4":0.17996,"14.5-14.8":0.20343,"15.0-15.1":0.10172,"15.2-15.3":0.10954,"15.4":0.12519,"15.5":0.15127,"15.6-15.8":1.3875,"16.0":0.27907,"16.1":0.59204,"16.2":0.29732,"16.3":0.49815,"16.4":0.11736,"16.5":0.21126,"16.6-16.7":1.73177,"17.0":0.15649,"17.1":0.25298,"17.2":0.24516,"17.3":0.36774,"17.4":0.92066,"17.5":16.85871,"17.6":0.1304,"18.0":0.17213},P:{"4":0.67796,"20":0.03447,"21":0.06895,"22":0.09193,"23":0.11491,"24":0.14938,"25":2.30967,"5.0-5.4":0.1264,"6.2-6.4":0.06895,_:"7.2-7.4 8.2 10.1 12.0 14.0","9.2":0.01149,"11.1-11.2":0.03447,"13.0":0.02298,"15.0":0.01149,"16.0":0.02298,"17.0":0.03447,"18.0":0.02298,"19.0":0.02298},I:{"0":0.02224,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.1395,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.02463,"9":0.00821,"10":0.00821,"11":0.07388,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":25.89362},R:{_:"0"},M:{"0":0.12276},Q:{"14.9":0.01116},O:{"0":0.09486},H:{"0":0}}; 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..abf8e9d --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TZ.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00344,"43":0.00172,"47":0.00172,"48":0.00172,"49":0.00172,"52":0.00515,"65":0.00172,"68":0.00172,"72":0.00344,"76":0.00172,"78":0.00687,"85":0.00172,"89":0.00172,"91":0.00172,"94":0.00687,"102":0.01031,"103":0.00687,"105":0.00172,"107":0.00172,"111":0.00172,"112":0.00172,"113":0.00172,"114":0.00172,"115":0.26285,"116":0.00172,"120":0.00172,"122":0.00172,"123":0.00172,"124":0.00172,"125":0.00687,"126":0.01718,"127":0.40545,"128":0.56522,"129":0.02921,_:"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 50 51 53 54 55 56 57 58 59 60 61 62 63 64 66 67 69 70 71 73 74 75 77 79 80 81 82 83 84 86 87 88 90 92 93 95 96 97 98 99 100 101 104 106 108 109 110 117 118 119 121 130 131 3.5 3.6"},D:{"11":0.00172,"41":0.00172,"49":0.00344,"55":0.00515,"58":0.00172,"59":0.00172,"62":0.00172,"63":0.00344,"64":0.00172,"65":0.00172,"68":0.00515,"69":0.00344,"70":0.00687,"71":0.00344,"72":0.00172,"73":0.00344,"74":0.00344,"75":0.00172,"76":0.00344,"77":0.00344,"78":0.00172,"79":0.01203,"80":0.00515,"81":0.00344,"83":0.00344,"84":0.00172,"85":0.00172,"86":0.00172,"87":0.0189,"88":0.01374,"89":0.00172,"90":0.02405,"91":0.00172,"92":0.00172,"93":0.00687,"94":0.05669,"95":0.00687,"96":0.00687,"98":0.00172,"99":0.08418,"100":0.00344,"101":0.00344,"102":0.0189,"103":0.0189,"104":0.01718,"105":0.00344,"106":0.01374,"107":0.01203,"108":0.00515,"109":0.71641,"110":0.00515,"111":0.00859,"112":0.01374,"113":0.0189,"114":0.00859,"115":0.00687,"116":0.05154,"117":0.00687,"118":0.01031,"119":0.01546,"120":0.04295,"121":0.02577,"122":0.03436,"123":0.03608,"124":0.07731,"125":0.17352,"126":6.39955,"127":0.83495,"128":0.00172,_:"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 42 43 44 45 46 47 48 50 51 52 53 54 56 57 60 61 66 67 97 129 130"},F:{"36":0.00172,"37":0.00172,"40":0.00172,"79":0.01031,"80":0.00172,"83":0.01718,"84":0.00172,"86":0.00172,"90":0.00172,"94":0.00172,"95":0.02405,"102":0.00172,"107":0.00172,"109":0.02062,"110":0.01031,"111":0.23021,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 38 39 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 81 82 85 87 88 89 91 92 93 96 97 98 99 100 101 103 104 105 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00687,"13":0.00859,"14":0.00344,"15":0.00344,"16":0.01031,"17":0.00344,"18":0.0378,"84":0.00172,"89":0.00344,"90":0.00859,"92":0.03092,"100":0.00859,"103":0.00172,"107":0.00172,"109":0.00859,"111":0.00172,"112":0.00172,"113":0.00515,"114":0.00515,"116":0.00344,"117":0.00172,"118":0.00172,"119":0.00687,"120":0.00687,"121":0.00687,"122":0.00859,"123":0.00687,"124":0.0481,"125":0.04123,"126":1.37268,"127":0.18726,_:"79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 104 105 106 108 110 115"},E:{"13":0.00172,"14":0.00344,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1 16.2","5.1":0.01718,"11.1":0.00344,"12.1":0.00172,"13.1":0.00687,"14.1":0.01031,"15.1":0.00344,"15.2-15.3":0.00859,"15.4":0.00344,"15.5":0.00172,"15.6":0.02233,"16.0":0.00172,"16.1":0.01031,"16.3":0.01374,"16.4":0.00515,"16.5":0.00515,"16.6":0.01203,"17.0":0.00172,"17.1":0.00687,"17.2":0.01203,"17.3":0.00687,"17.4":0.01546,"17.5":0.11854,"17.6":0.00172,"18.0":0.00344},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00073,"5.0-5.1":0.00036,"6.0-6.1":0.00218,"7.0-7.1":0.00218,"8.1-8.4":0,"9.0-9.2":0.00182,"9.3":0.00727,"10.0-10.2":0.00145,"10.3":0.01273,"11.0-11.2":0.03345,"11.3-11.4":0.00364,"12.0-12.1":0.00255,"12.2-12.5":0.0469,"13.0-13.1":0.00073,"13.2":0.00764,"13.3":0.00255,"13.4-13.7":0.01091,"14.0-14.4":0.02509,"14.5-14.8":0.02836,"15.0-15.1":0.01418,"15.2-15.3":0.01527,"15.4":0.01745,"15.5":0.02109,"15.6-15.8":0.19342,"16.0":0.0389,"16.1":0.08253,"16.2":0.04145,"16.3":0.06944,"16.4":0.01636,"16.5":0.02945,"16.6-16.7":0.24142,"17.0":0.02181,"17.1":0.03527,"17.2":0.03418,"17.3":0.05126,"17.4":0.12834,"17.5":2.35018,"17.6":0.01818,"18.0":0.024},P:{"4":0.06102,"20":0.03051,"21":0.04068,"22":0.27459,"23":0.1017,"24":0.08136,"25":0.86446,"5.0-5.4":0.02034,"6.2-6.4":0.01017,"7.2-7.4":0.06102,_:"8.2 10.1 12.0","9.2":0.03051,"11.1-11.2":0.03051,"13.0":0.02034,"14.0":0.01017,"15.0":0.01017,"16.0":0.05085,"17.0":0.02034,"18.0":0.01017,"19.0":0.07119},I:{"0":0.09904,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00006,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00017},K:{"0":7.23342,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01374,_:"6 7 8 9 10 5.5"},S:{"2.5":1.17604,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":63.92483},R:{_:"0"},M:{"0":0.11595},Q:{_:"14.9"},O:{"0":0.34784},H:{"0":8.08}}; 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..73ace7a --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/UA.js @@ -0,0 +1 @@ +module.exports={C:{"38":0.00545,"44":0.00545,"49":0.00545,"51":0.00545,"52":0.12542,"53":0.00545,"55":0.00545,"56":0.05998,"57":0.03817,"68":0.03272,"72":0.00545,"78":0.01091,"82":0.00545,"83":0.02181,"84":0.00545,"88":0.01636,"91":0.00545,"98":0.01091,"99":0.00545,"102":0.02727,"103":0.06544,"105":0.01636,"106":0.01636,"107":0.02181,"108":0.03272,"109":0.03272,"110":0.02727,"111":0.02727,"113":0.01091,"115":0.75797,"116":0.00545,"119":0.00545,"120":0.00545,"121":0.00545,"122":0.01091,"123":0.01091,"124":0.01091,"125":0.01636,"126":0.03272,"127":0.65981,"128":1.20511,"129":0.00545,"130":0.00545,_:"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 39 40 41 42 43 45 46 47 48 50 54 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 85 86 87 89 90 92 93 94 95 96 97 100 101 104 112 114 117 118 131 3.5 3.6"},D:{"11":0.01091,"38":0.00545,"41":0.00545,"48":0.00545,"49":0.05998,"55":0.00545,"56":0.00545,"57":0.00545,"61":0.01636,"63":0.04908,"64":0.00545,"69":0.00545,"70":0.00545,"71":0.01091,"72":0.00545,"73":0.00545,"74":0.00545,"75":0.00545,"76":0.00545,"77":0.00545,"79":0.02727,"80":0.01636,"81":0.00545,"83":0.01636,"84":0.00545,"85":0.02181,"86":0.02727,"87":0.02727,"88":0.00545,"89":0.01091,"90":0.01636,"91":0.01091,"92":0.00545,"93":0.00545,"94":0.00545,"95":0.01091,"96":0.03272,"97":0.04908,"98":0.08725,"99":0.01091,"100":0.01636,"101":0.01636,"102":0.05998,"103":0.05998,"104":0.14178,"105":0.05998,"106":0.21267,"107":0.25629,"108":0.34899,"109":4.177,"110":0.1745,"111":0.1745,"112":0.17995,"113":0.07634,"114":0.0818,"115":0.00545,"116":0.05998,"117":0.01636,"118":0.20176,"119":0.05998,"120":0.16904,"121":0.07089,"122":0.13633,"123":0.10361,"124":0.39262,"125":0.75251,"126":18.04398,"127":2.60108,"128":0.01636,"129":0.00545,_:"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 39 40 42 43 44 45 46 47 50 51 52 53 54 58 59 60 62 65 66 67 68 78 130"},F:{"36":0.01091,"46":0.00545,"51":0.00545,"64":0.00545,"69":0.00545,"77":0.00545,"79":0.04362,"80":0.02727,"82":0.03272,"83":0.0818,"84":0.01636,"85":0.07089,"86":0.03272,"87":0.01636,"89":0.00545,"90":0.00545,"91":0.01091,"92":0.00545,"93":0.01636,"94":0.02181,"95":0.93792,"97":0.00545,"99":0.00545,"102":0.00545,"105":0.00545,"107":0.01091,"108":0.00545,"109":0.64891,"110":0.07634,"111":2.21392,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 52 53 54 55 56 57 58 60 62 63 65 66 67 68 70 71 72 73 74 75 76 78 81 88 96 98 100 101 103 104 106 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6","12.1":0.07634},B:{"92":0.01636,"100":0.00545,"102":0.00545,"103":0.00545,"106":0.02727,"107":0.05453,"108":0.03817,"109":0.07089,"110":0.03272,"111":0.02181,"112":0.00545,"113":0.00545,"114":0.00545,"116":0.00545,"120":0.00545,"121":0.00545,"122":0.00545,"123":0.00545,"124":0.00545,"125":0.02181,"126":6.40182,"127":1.81585,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 104 105 115 117 118 119"},E:{"13":0.00545,"14":0.01091,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 10.1 11.1","5.1":0.01636,"9.1":0.00545,"12.1":0.01091,"13.1":0.02181,"14.1":0.02181,"15.1":0.6271,"15.2-15.3":0.00545,"15.4":0.00545,"15.5":0.01091,"15.6":0.10361,"16.0":0.01091,"16.1":0.02727,"16.2":0.01636,"16.3":0.03817,"16.4":0.00545,"16.5":0.03272,"16.6":0.13087,"17.0":0.01636,"17.1":0.07089,"17.2":0.03817,"17.3":0.02727,"17.4":0.06544,"17.5":0.55075,"17.6":0.00545,"18.0":0.01091},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00198,"5.0-5.1":0.00099,"6.0-6.1":0.00593,"7.0-7.1":0.00593,"8.1-8.4":0,"9.0-9.2":0.00494,"9.3":0.01977,"10.0-10.2":0.00395,"10.3":0.0346,"11.0-11.2":0.09094,"11.3-11.4":0.00989,"12.0-12.1":0.00692,"12.2-12.5":0.12752,"13.0-13.1":0.00198,"13.2":0.02076,"13.3":0.00692,"13.4-13.7":0.02966,"14.0-14.4":0.06821,"14.5-14.8":0.0771,"15.0-15.1":0.03855,"15.2-15.3":0.04152,"15.4":0.04745,"15.5":0.05733,"15.6-15.8":0.52589,"16.0":0.10577,"16.1":0.22439,"16.2":0.11269,"16.3":0.18881,"16.4":0.04448,"16.5":0.08007,"16.6-16.7":0.65638,"17.0":0.05931,"17.1":0.09589,"17.2":0.09292,"17.3":0.13938,"17.4":0.34895,"17.5":6.38978,"17.6":0.04943,"18.0":0.06524},P:{"4":0.03211,"20":0.02141,"21":0.04282,"22":0.04282,"23":0.05352,"24":0.04282,"25":0.95269,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 14.0 15.0 16.0","7.2-7.4":0.02141,"11.1-11.2":0.0107,"13.0":0.0107,"17.0":0.02141,"18.0":0.0107,"19.0":0.0107},I:{"0":0.09515,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00006,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00016},K:{"0":1.29318,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.0361,"9":0.01203,"11":0.12636,_:"6 7 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":32.54461},R:{_:"0"},M:{"0":0.20007},Q:{"14.9":0.00455},O:{"0":0.1546},H:{"0":0.03}}; 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..ea8cb7c --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/UG.js @@ -0,0 +1 @@ +module.exports={C:{"41":0.00731,"50":0.00487,"52":0.00244,"55":0.00244,"58":0.00244,"68":0.00244,"72":0.00975,"78":0.00975,"82":0.00244,"89":0.00244,"91":0.01219,"93":0.00244,"100":0.00487,"102":0.00244,"103":0.00244,"106":0.00487,"109":0.00244,"110":0.00244,"111":0.00487,"112":0.00244,"113":0.00244,"114":0.00244,"115":0.38505,"117":0.0195,"118":0.0463,"121":0.00244,"122":0.00244,"123":0.00244,"124":0.00731,"125":0.01462,"126":0.03168,"127":0.60925,"128":0.94312,"129":0.0853,_:"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 42 43 44 45 46 47 48 49 51 53 54 56 57 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 83 84 85 86 87 88 90 92 94 95 96 97 98 99 101 104 105 107 108 116 119 120 130 131 3.5 3.6"},D:{"11":0.00244,"19":0.00487,"47":0.00244,"49":0.00731,"50":0.00244,"58":0.00244,"59":0.00244,"61":0.00244,"62":0.01219,"64":0.0195,"66":0.00244,"68":0.00975,"69":0.00731,"70":0.00731,"71":0.00244,"72":0.01706,"73":0.00244,"74":0.00244,"75":0.00487,"76":0.00487,"77":0.00244,"78":0.00244,"79":0.01219,"80":0.00731,"81":0.00487,"83":0.02193,"86":0.00244,"87":0.03168,"88":0.03168,"89":0.00244,"90":0.00244,"91":0.00487,"92":0.00487,"93":0.00975,"94":0.01706,"95":0.0195,"96":0.00244,"97":0.00244,"98":0.00487,"99":0.00975,"100":0.00731,"102":0.00731,"103":0.06824,"104":0.00975,"105":0.00731,"106":0.01462,"107":0.0195,"108":0.00487,"109":1.07228,"110":0.00487,"111":0.00487,"112":0.00731,"113":0.00244,"114":0.01462,"115":0.00244,"116":0.09748,"117":0.00731,"118":0.02193,"119":0.04387,"120":0.04143,"121":0.03168,"122":0.07555,"123":0.04874,"124":0.0853,"125":0.25832,"126":8.78782,"127":1.06984,"128":0.00487,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 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 48 51 52 53 54 55 56 57 60 63 65 67 84 85 101 129 130"},F:{"37":0.00244,"79":0.00487,"82":0.00244,"83":0.01706,"84":0.00244,"90":0.00244,"95":0.05118,"102":0.00244,"109":0.03168,"110":0.00975,"111":0.31681,_:"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 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 85 86 87 88 89 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.01462,"13":0.00487,"14":0.00731,"15":0.00487,"16":0.00975,"17":0.00487,"18":0.07555,"84":0.00487,"89":0.00244,"90":0.00975,"92":0.04387,"100":0.01706,"107":0.00244,"109":0.01706,"111":0.00244,"112":0.00244,"113":0.00244,"114":0.00244,"115":0.00731,"116":0.00487,"117":0.00244,"118":0.00244,"119":0.00244,"120":0.00487,"121":0.01219,"122":0.01219,"123":0.01706,"124":0.03168,"125":0.04874,"126":1.87405,"127":0.19252,_:"79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 108 110"},E:{"13":0.00244,"14":0.00244,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1 15.2-15.3 18.0","5.1":0.00731,"11.1":0.00487,"12.1":0.00487,"13.1":0.00975,"14.1":0.01219,"15.1":0.00244,"15.4":0.00244,"15.5":0.00487,"15.6":0.06093,"16.0":0.00244,"16.1":0.00244,"16.2":0.00244,"16.3":0.00244,"16.4":0.00487,"16.5":0.00244,"16.6":0.02681,"17.0":0.00244,"17.1":0.00244,"17.2":0.00487,"17.3":0.00731,"17.4":0.01462,"17.5":0.1121,"17.6":0.00244},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00072,"5.0-5.1":0.00036,"6.0-6.1":0.00217,"7.0-7.1":0.00217,"8.1-8.4":0,"9.0-9.2":0.00181,"9.3":0.00725,"10.0-10.2":0.00145,"10.3":0.01268,"11.0-11.2":0.03333,"11.3-11.4":0.00362,"12.0-12.1":0.00254,"12.2-12.5":0.04673,"13.0-13.1":0.00072,"13.2":0.00761,"13.3":0.00254,"13.4-13.7":0.01087,"14.0-14.4":0.025,"14.5-14.8":0.02826,"15.0-15.1":0.01413,"15.2-15.3":0.01522,"15.4":0.01739,"15.5":0.02101,"15.6-15.8":0.19273,"16.0":0.03876,"16.1":0.08223,"16.2":0.0413,"16.3":0.06919,"16.4":0.0163,"16.5":0.02934,"16.6-16.7":0.24055,"17.0":0.02174,"17.1":0.03514,"17.2":0.03405,"17.3":0.05108,"17.4":0.12788,"17.5":2.3417,"17.6":0.01811,"18.0":0.02391},P:{"4":0.05068,"20":0.01014,"21":0.08108,"22":0.22297,"23":0.08108,"24":0.12162,"25":0.79054,"5.0-5.4":0.05068,"6.2-6.4":0.01014,"7.2-7.4":0.11149,_:"8.2 10.1 12.0","9.2":0.07095,"11.1-11.2":0.04054,"13.0":0.01014,"14.0":0.01014,"15.0":0.01014,"16.0":0.01014,"17.0":0.01014,"18.0":0.01014,"19.0":0.13176},I:{"0":0.04522,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00008},K:{"0":6.11803,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01207,"9":0.00302,"10":0.00603,"11":0.04224,_:"6 7 5.5"},S:{"2.5":0.24202,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":63.43551},R:{_:"0"},M:{"0":0.11345},Q:{"14.9":0.00756},O:{"0":0.43109},H:{"0":5.65}}; 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..2c36fcd --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/US.js @@ -0,0 +1 @@ +module.exports={C:{"11":0.08837,"17":0.00465,"38":0.00465,"43":0.00465,"44":0.02326,"45":0.00465,"52":0.0186,"59":0.00465,"72":0.0093,"78":0.02791,"83":0.00465,"88":0.0093,"91":0.00465,"93":0.00465,"94":0.0186,"101":0.00465,"102":0.01395,"103":0.0093,"105":0.00465,"106":0.00465,"107":0.00465,"108":0.00465,"109":0.00465,"110":0.00465,"111":0.00465,"112":0.00465,"113":0.00465,"115":0.36278,"116":0.00465,"117":0.00465,"118":0.33952,"119":0.00465,"120":0.00465,"121":0.0093,"122":0.0093,"123":0.10232,"124":0.02326,"125":0.03721,"126":0.06046,"127":0.84183,"128":1.45111,"129":0.00465,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 46 47 48 49 50 51 53 54 55 56 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 87 89 90 92 95 96 97 98 99 100 104 114 130 131 3.5 3.6"},D:{"38":0.00465,"41":0.00465,"43":0.00465,"47":0.00465,"48":0.06511,"49":0.02791,"50":0.00465,"51":0.00465,"52":0.00465,"53":0.00465,"56":0.04651,"58":0.00465,"59":0.00465,"62":0.00465,"65":0.00465,"66":0.02326,"67":0.00465,"68":0.00465,"69":0.0093,"70":0.00465,"72":0.00465,"74":0.01395,"75":0.01395,"76":0.01395,"77":0.00465,"78":0.0093,"79":0.10697,"80":0.02326,"81":0.06046,"83":0.08837,"84":0.0093,"85":0.03721,"86":0.0186,"87":0.06046,"88":0.01395,"89":0.01395,"90":0.0093,"91":0.09302,"92":0.0093,"93":0.04186,"94":0.04186,"95":0.02791,"96":0.01395,"97":0.0186,"98":0.02326,"99":0.02791,"100":0.05581,"101":0.03256,"102":0.0186,"103":0.31627,"104":0.06511,"105":0.03721,"106":0.04651,"107":0.07442,"108":0.08372,"109":0.65579,"110":0.05116,"111":0.05581,"112":0.04651,"113":0.10232,"114":0.14883,"115":0.04186,"116":0.22325,"117":0.31162,"118":0.08372,"119":0.12093,"120":0.16744,"121":0.36743,"122":0.4465,"123":0.32557,"124":0.55812,"125":1.879,"126":16.46454,"127":1.76738,"128":0.02791,"129":0.00465,_:"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 42 44 45 46 54 55 57 60 61 63 64 71 73 130"},F:{"83":0.01395,"95":0.02326,"102":0.00465,"109":0.33952,"110":0.01395,"111":0.28836,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"13":0.00465,"17":0.00465,"18":0.00465,"85":0.00465,"87":0.00465,"92":0.00465,"106":0.00465,"107":0.0093,"108":0.00465,"109":0.07907,"110":0.0093,"111":0.00465,"112":0.0093,"113":0.00465,"114":0.00465,"115":0.00465,"116":0.00465,"117":0.00465,"118":0.00465,"119":0.0093,"120":0.02326,"121":0.0186,"122":0.02326,"123":0.0186,"124":0.05116,"125":0.2093,"126":5.93003,"127":0.78137,_:"12 14 15 16 79 80 81 83 84 86 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105"},E:{"8":0.00465,"9":0.0093,"13":0.0093,"14":0.05581,"15":0.01395,_:"0 4 5 6 7 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.00465,"11.1":0.00465,"12.1":0.02326,"13.1":0.17674,"14.1":0.15348,"15.1":0.08372,"15.2-15.3":0.0186,"15.4":0.03256,"15.5":0.04186,"15.6":0.40464,"16.0":0.06977,"16.1":0.07907,"16.2":0.06511,"16.3":0.30232,"16.4":0.05116,"16.5":0.09302,"16.6":0.61858,"17.0":0.04186,"17.1":0.08837,"17.2":0.09302,"17.3":0.09767,"17.4":0.30697,"17.5":3.76731,"17.6":0.02326,"18.0":0.02326},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00527,"5.0-5.1":0.00263,"6.0-6.1":0.01581,"7.0-7.1":0.01581,"8.1-8.4":0,"9.0-9.2":0.01317,"9.3":0.05269,"10.0-10.2":0.01054,"10.3":0.0922,"11.0-11.2":0.24236,"11.3-11.4":0.02634,"12.0-12.1":0.01844,"12.2-12.5":0.33984,"13.0-13.1":0.00527,"13.2":0.05532,"13.3":0.01844,"13.4-13.7":0.07903,"14.0-14.4":0.18177,"14.5-14.8":0.20548,"15.0-15.1":0.10274,"15.2-15.3":0.11064,"15.4":0.12645,"15.5":0.15279,"15.6-15.8":1.40149,"16.0":0.28188,"16.1":0.598,"16.2":0.30032,"16.3":0.50317,"16.4":0.11855,"16.5":0.21338,"16.6-16.7":1.74923,"17.0":0.15806,"17.1":0.25554,"17.2":0.24763,"17.3":0.37145,"17.4":0.92994,"17.5":17.02865,"17.6":0.13172,"18.0":0.17387},P:{"4":0.04304,"20":0.01076,"21":0.03228,"22":0.02152,"23":0.02152,"24":0.0538,"25":0.91456,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0","13.0":0.01076,"16.0":0.02152,"17.0":0.01076,"18.0":0.01076,"19.0":0.01076},I:{"0":0.10128,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00006,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00017},K:{"0":0.31559,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01134,"9":0.03968,"11":0.13037,_:"6 7 10 5.5"},S:{"2.5":0.00535,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":25.70228},R:{_:"0"},M:{"0":0.64723},Q:{"14.9":0.02675},O:{"0":0.08024},H:{"0":0}}; 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..74981d7 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/UY.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00447,"52":0.01786,"68":0.00447,"78":0.00893,"83":0.01786,"88":0.00893,"89":0.00447,"91":0.00447,"92":0.00447,"94":0.00447,"95":0.00447,"102":0.0268,"103":0.00447,"105":0.00447,"106":0.00447,"110":0.00447,"111":0.00447,"113":0.0134,"115":0.32155,"116":0.00447,"120":0.04466,"121":0.00893,"122":0.00447,"123":0.01786,"124":0.00447,"125":0.02233,"126":0.0134,"127":0.55378,"128":1.01825,"129":0.00447,_:"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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 87 90 93 96 97 98 99 100 101 104 107 108 109 112 114 117 118 119 130 131 3.5 3.6"},D:{"41":0.00447,"43":0.00447,"44":0.00447,"45":0.00447,"46":0.00447,"47":0.01786,"49":0.02233,"51":0.00447,"52":0.00447,"55":0.00893,"62":0.00893,"63":0.00447,"65":0.0134,"66":0.00893,"69":0.01786,"70":0.00893,"71":0.02233,"72":0.00893,"73":0.0268,"74":0.00447,"75":0.00893,"76":0.00447,"79":0.02233,"80":0.02233,"81":0.02233,"83":0.00893,"84":0.00447,"85":0.00893,"86":0.15631,"87":0.03573,"88":0.02233,"89":0.00893,"90":0.02233,"91":0.03126,"92":0.00447,"93":0.03573,"94":0.0268,"95":0.00893,"96":0.00447,"97":0.00447,"98":0.01786,"99":0.00893,"100":0.0134,"102":0.00447,"103":0.08932,"104":0.00893,"105":0.00893,"106":0.0268,"107":0.00447,"108":0.03573,"109":2.18834,"110":0.0134,"111":0.0134,"112":0.02233,"113":0.00447,"114":0.01786,"115":0.00893,"116":0.13845,"117":0.0134,"118":0.01786,"119":0.09825,"120":0.07146,"121":0.05359,"122":0.15184,"123":0.08485,"124":0.29029,"125":0.48233,"126":24.24145,"127":3.29144,"128":0.0134,_:"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 42 48 50 53 54 56 57 58 59 60 61 64 67 68 77 78 101 129 130"},F:{"83":0.00893,"95":0.04019,"109":1.37999,"110":0.03573,"111":0.75922,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00893,"92":0.0134,"100":0.00447,"109":0.02233,"114":0.00447,"116":0.00447,"117":0.00893,"119":0.00447,"120":0.01786,"121":0.00447,"122":0.00893,"123":0.00447,"124":0.01786,"125":0.06252,"126":3.59066,"127":0.48679,_:"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 101 102 103 104 105 106 107 108 110 111 112 113 115 118"},E:{"9":0.00447,"14":0.02233,_:"0 4 5 6 7 8 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 17.6 18.0","12.1":0.00447,"13.1":0.05359,"14.1":0.0134,"15.1":0.04019,"15.2-15.3":0.00893,"15.4":0.00893,"15.5":0.02233,"15.6":0.04019,"16.0":0.01786,"16.1":0.02233,"16.2":0.00447,"16.3":0.0134,"16.4":0.00893,"16.5":0.0268,"16.6":0.09379,"17.0":0.0134,"17.1":0.00893,"17.2":0.02233,"17.3":0.00893,"17.4":0.04466,"17.5":0.54932},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00156,"5.0-5.1":0.00078,"6.0-6.1":0.00468,"7.0-7.1":0.00468,"8.1-8.4":0,"9.0-9.2":0.0039,"9.3":0.01559,"10.0-10.2":0.00312,"10.3":0.02729,"11.0-11.2":0.07172,"11.3-11.4":0.0078,"12.0-12.1":0.00546,"12.2-12.5":0.10057,"13.0-13.1":0.00156,"13.2":0.01637,"13.3":0.00546,"13.4-13.7":0.02339,"14.0-14.4":0.05379,"14.5-14.8":0.06081,"15.0-15.1":0.0304,"15.2-15.3":0.03274,"15.4":0.03742,"15.5":0.04522,"15.6-15.8":0.41475,"16.0":0.08342,"16.1":0.17697,"16.2":0.08887,"16.3":0.1489,"16.4":0.03508,"16.5":0.06315,"16.6-16.7":0.51765,"17.0":0.04678,"17.1":0.07562,"17.2":0.07328,"17.3":0.10992,"17.4":0.2752,"17.5":5.03933,"17.6":0.03898,"18.0":0.05145},P:{"4":0.04156,"20":0.02078,"21":0.17665,"22":0.05196,"23":0.1143,"24":0.04156,"25":1.31969,"5.0-5.4":0.01039,_:"6.2-6.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 18.0","7.2-7.4":0.13509,"11.1-11.2":0.01039,"17.0":0.01039,"19.0":0.01039},I:{"0":0.0386,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00007},K:{"0":0.18812,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01786,"9":0.00447,"10":0.00447,"11":0.0134,_:"6 7 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":46.77112},R:{_:"0"},M:{"0":0.44264},Q:{_:"14.9"},O:{"0":0.0166},H:{"0":0}}; 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..5b90359 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/UZ.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.01664,"67":0.01331,"68":0.01331,"84":0.00333,"88":0.00333,"91":0.00333,"110":0.00998,"115":0.14639,"119":0.00333,"120":0.00333,"121":0.00333,"123":0.00333,"124":0.00665,"125":0.00998,"126":0.00665,"127":0.19629,"128":0.38926,"129":0.00665,_:"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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 85 86 87 89 90 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 111 112 113 114 116 117 118 122 130 131 3.5 3.6"},D:{"11":0.00333,"39":0.00333,"40":0.00333,"41":0.00333,"42":0.00333,"43":0.00665,"44":0.00665,"45":0.00333,"46":0.00333,"47":0.00333,"49":0.03327,"50":0.00333,"51":0.03327,"53":0.00333,"55":0.00665,"56":0.00665,"59":0.00333,"61":0.00333,"66":0.05989,"68":0.00333,"69":0.00333,"70":0.00333,"71":0.00333,"73":0.00665,"75":0.00333,"77":0.00333,"79":0.02329,"80":0.00333,"81":0.00665,"83":0.05323,"84":0.00333,"85":0.00665,"86":0.00333,"87":0.02329,"88":0.00333,"89":0.00665,"90":0.01331,"91":0.01331,"92":0.00665,"93":0.00333,"94":0.00998,"95":0.00333,"96":0.00665,"97":0.00665,"98":0.01331,"99":0.00998,"100":0.00665,"101":0.00333,"102":0.01331,"103":0.01996,"104":0.00665,"105":0.00665,"106":0.09648,"107":0.01996,"108":0.01996,"109":2.04278,"110":0.00998,"111":0.01996,"112":0.0366,"113":0.00333,"114":0.02329,"115":0.00665,"116":0.03992,"117":0.01996,"118":0.04658,"119":0.0366,"120":0.06654,"121":0.06987,"122":0.04658,"123":0.05656,"124":0.1597,"125":0.22624,"126":14.51903,"127":2.49858,"128":0.01664,_:"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 48 52 54 57 58 60 62 63 64 65 67 72 74 76 78 129 130"},F:{"19":0.00333,"53":0.01331,"55":0.00333,"57":0.00333,"62":0.00333,"64":0.00333,"76":0.00333,"79":0.02994,"82":0.00333,"83":0.00665,"87":0.00333,"90":0.00665,"93":0.00333,"95":0.05323,"101":0.00665,"102":0.00665,"104":0.00333,"105":0.13973,"106":0.00998,"107":0.02994,"108":0.00333,"109":0.07985,"110":0.22624,"111":0.25285,_:"9 11 12 15 16 17 18 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 54 56 58 60 63 65 66 67 68 69 70 71 72 73 74 75 77 78 80 81 84 85 86 88 89 91 92 94 96 97 98 99 100 103 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 12.1","11.6":0.00333},B:{"16":0.00333,"17":0.00333,"18":0.01996,"84":0.01664,"89":0.00333,"92":0.01996,"100":0.00333,"109":0.01331,"111":0.00665,"114":0.00333,"115":0.00333,"117":0.00333,"118":0.00333,"119":0.00333,"120":0.00998,"121":0.00665,"122":0.00333,"123":0.00333,"124":0.02329,"125":0.03992,"126":1.99287,"127":0.25618,_:"12 13 14 15 79 80 81 83 85 86 87 88 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 112 113 116"},E:{"9":0.00333,"14":0.00333,_:"0 4 5 6 7 8 10 11 12 13 15 3.1 3.2 6.1 7.1 10.1 11.1 12.1 15.1 15.5","5.1":0.63213,"9.1":0.00333,"13.1":0.00333,"14.1":0.00998,"15.2-15.3":0.00333,"15.4":0.00665,"15.6":0.02994,"16.0":0.00665,"16.1":0.00665,"16.2":0.00998,"16.3":0.00998,"16.4":0.00665,"16.5":0.01331,"16.6":0.02662,"17.0":0.00998,"17.1":0.02329,"17.2":0.01664,"17.3":0.01331,"17.4":0.02994,"17.5":0.31607,"17.6":0.00333,"18.0":0.00665},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00137,"5.0-5.1":0.00068,"6.0-6.1":0.00411,"7.0-7.1":0.00411,"8.1-8.4":0,"9.0-9.2":0.00342,"9.3":0.01369,"10.0-10.2":0.00274,"10.3":0.02396,"11.0-11.2":0.06299,"11.3-11.4":0.00685,"12.0-12.1":0.00479,"12.2-12.5":0.08832,"13.0-13.1":0.00137,"13.2":0.01438,"13.3":0.00479,"13.4-13.7":0.02054,"14.0-14.4":0.04724,"14.5-14.8":0.0534,"15.0-15.1":0.0267,"15.2-15.3":0.02876,"15.4":0.03286,"15.5":0.03971,"15.6-15.8":0.36423,"16.0":0.07326,"16.1":0.15542,"16.2":0.07805,"16.3":0.13077,"16.4":0.03081,"16.5":0.05546,"16.6-16.7":0.45461,"17.0":0.04108,"17.1":0.06641,"17.2":0.06436,"17.3":0.09654,"17.4":0.24168,"17.5":4.42558,"17.6":0.03423,"18.0":0.04519},P:{"4":0.30397,"20":0.05066,"21":0.11146,"22":0.17225,"23":0.23304,"24":0.19252,"25":1.67184,"5.0-5.4":0.02026,"6.2-6.4":0.07093,"7.2-7.4":0.20265,_:"8.2 10.1","9.2":0.01013,"11.1-11.2":0.01013,"12.0":0.01013,"13.0":0.02026,"14.0":0.01013,"15.0":0.01013,"16.0":0.02026,"17.0":0.07093,"18.0":0.01013,"19.0":0.05066},I:{"0":0.0399,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00007},K:{"0":0.50048,_:"10 11 12 11.1 11.5 12.1"},A:{"7":0.00344,"8":0.0275,"9":0.00688,"10":0.00344,"11":0.05501,_:"6 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":53.47416},R:{_:"0"},M:{"0":0.04671},Q:{"14.9":0.04004},O:{"0":1.76167},H:{"0":0}}; 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..c68fb70 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/VA.js @@ -0,0 +1 @@ +module.exports={C:{"109":0.04193,"110":0.04193,"113":0.09224,"115":3.5217,"126":0.68757,"127":5.85273,"128":6.90924,_:"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 111 112 114 116 117 118 119 120 121 122 123 124 125 129 130 131 3.5 3.6"},D:{"86":0.04193,"88":0.27671,"103":0.46118,"106":0.04193,"107":0.09224,"109":1.78601,"122":2.7419,"123":0.09224,"124":0.41087,"125":0.13416,"126":43.14083,"127":5.71857,_:"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 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 108 110 111 112 113 114 115 116 117 118 119 120 121 128 129 130"},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 99 100 101 102 103 104 105 106 107 108 109 110 111 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.09224,"126":7.22787,"127":0.87204,_:"12 13 14 15 16 17 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 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125"},E:{_:"0 4 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 15.1 15.2-15.3 15.5 16.0 16.1 16.2 16.4 16.5 17.1 17.2 17.3 17.4 17.6 18.0","12.1":0.09224,"13.1":0.36894,"14.1":0.09224,"15.4":0.04193,"15.6":0.18447,"16.3":0.04193,"16.6":0.2264,"17.0":0.36894,"17.5":1.78601},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00166,"5.0-5.1":0.00083,"6.0-6.1":0.00498,"7.0-7.1":0.00498,"8.1-8.4":0,"9.0-9.2":0.00415,"9.3":0.01661,"10.0-10.2":0.00332,"10.3":0.02907,"11.0-11.2":0.07641,"11.3-11.4":0.00831,"12.0-12.1":0.00581,"12.2-12.5":0.10715,"13.0-13.1":0.00166,"13.2":0.01744,"13.3":0.00581,"13.4-13.7":0.02492,"14.0-14.4":0.05731,"14.5-14.8":0.06479,"15.0-15.1":0.03239,"15.2-15.3":0.03488,"15.4":0.03987,"15.5":0.04817,"15.6-15.8":0.44188,"16.0":0.08887,"16.1":0.18854,"16.2":0.09469,"16.3":0.15864,"16.4":0.03738,"16.5":0.06728,"16.6-16.7":0.55151,"17.0":0.04984,"17.1":0.08057,"17.2":0.07808,"17.3":0.11711,"17.4":0.2932,"17.5":5.36896,"17.6":0.04153,"18.0":0.05482},P:{"25":0.14058,_:"4 20 21 22 23 24 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.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":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":7.47129},R:{_:"0"},M:{"0":0.04684},Q:{_:"14.9"},O:{_:"0"},H:{"0":0}}; 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..57869da --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/VC.js @@ -0,0 +1 @@ +module.exports={C:{"99":0.00326,"104":0.00326,"106":0.00326,"115":0.02281,"120":0.00326,"121":0.00326,"122":0.00326,"127":0.69721,"128":1.20546,_:"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 100 101 102 103 105 107 108 109 110 111 112 113 114 116 117 118 119 123 124 125 126 129 130 131 3.5 3.6"},D:{"34":0.00326,"40":0.00326,"42":0.00326,"47":0.00326,"49":0.00326,"51":0.00326,"52":0.00326,"53":0.00326,"57":0.00326,"59":0.00326,"70":0.12706,"76":0.02932,"79":0.03584,"80":0.01303,"81":0.00977,"83":0.0619,"85":0.02606,"87":0.4887,"88":0.00977,"89":0.00652,"92":0.00326,"93":0.01629,"98":0.01955,"99":0.00326,"102":0.00326,"103":0.15964,"104":0.01629,"105":0.00652,"106":0.00326,"107":0.00326,"108":0.00326,"109":0.42354,"110":0.00326,"111":0.01303,"112":0.01303,"113":0.00652,"114":0.00652,"115":0.05213,"116":0.02932,"117":0.00326,"118":0.00326,"119":0.04561,"120":0.01303,"121":0.00652,"122":0.02606,"123":0.07819,"124":0.0619,"125":0.40399,"126":11.84283,"127":1.62248,"128":0.04887,_:"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 41 43 44 45 46 48 50 54 55 56 58 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 77 78 84 86 90 91 94 95 96 97 100 101 129 130"},F:{"83":0.0619,"95":0.00326,"109":0.3258,"110":0.00326,"111":0.1629,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"13":0.00326,"16":0.00326,"92":0.00652,"109":0.00652,"110":0.00326,"120":1.34555,"122":0.00977,"123":0.00652,"124":0.00326,"125":0.11077,"126":5.69173,"127":0.4887,_:"12 14 15 17 18 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 108 111 112 113 114 115 116 117 118 119 121"},E:{_:"0 4 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 15.4 15.5 18.0","13.1":0.0391,"14.1":0.01629,"15.1":0.01955,"15.2-15.3":0.00326,"15.6":0.25412,"16.0":0.00326,"16.1":0.0391,"16.2":0.00326,"16.3":0.20851,"16.4":0.00326,"16.5":0.00652,"16.6":0.09774,"17.0":0.00326,"17.1":0.00652,"17.2":0.00652,"17.3":0.01629,"17.4":0.0619,"17.5":0.70373,"17.6":0.00652},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0035,"5.0-5.1":0.00175,"6.0-6.1":0.01051,"7.0-7.1":0.01051,"8.1-8.4":0,"9.0-9.2":0.00876,"9.3":0.03503,"10.0-10.2":0.00701,"10.3":0.0613,"11.0-11.2":0.16112,"11.3-11.4":0.01751,"12.0-12.1":0.01226,"12.2-12.5":0.22592,"13.0-13.1":0.0035,"13.2":0.03678,"13.3":0.01226,"13.4-13.7":0.05254,"14.0-14.4":0.12084,"14.5-14.8":0.1366,"15.0-15.1":0.0683,"15.2-15.3":0.07356,"15.4":0.08406,"15.5":0.10158,"15.6-15.8":0.9317,"16.0":0.18739,"16.1":0.39755,"16.2":0.19965,"16.3":0.3345,"16.4":0.07881,"16.5":0.14186,"16.6-16.7":1.16287,"17.0":0.10508,"17.1":0.16988,"17.2":0.16462,"17.3":0.24693,"17.4":0.61821,"17.5":11.32048,"17.6":0.08757,"18.0":0.11559},P:{"4":0.02266,"21":0.18129,"22":0.02266,"23":0.05665,"24":0.05665,"25":1.75625,_:"20 5.0-5.4 8.2 9.2 10.1 12.0 13.0 14.0 15.0 16.0 17.0 19.0","6.2-6.4":0.02266,"7.2-7.4":0.09064,"11.1-11.2":0.02266,"18.0":0.02266},I:{"0":0.0403,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.00007},K:{"0":0.15504,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.00326,_:"6 7 8 9 11 5.5"},S:{"2.5":0.00674,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":51.18733},R:{_:"0"},M:{"0":0.05393},Q:{_:"14.9"},O:{"0":0.03371},H:{"0":0}}; 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..616a9f4 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/VE.js @@ -0,0 +1 @@ +module.exports={C:{"4":1.48731,"48":0.00371,"52":0.23367,"60":0.00371,"63":0.00371,"67":0.00371,"68":0.00742,"72":0.00742,"75":0.01113,"78":0.00742,"81":0.00371,"88":0.00371,"91":0.00742,"99":0.00371,"102":0.00371,"103":0.00371,"108":0.00371,"109":0.00371,"110":0.00371,"111":0.00371,"112":0.00742,"113":0.00371,"114":0.00371,"115":0.69358,"116":0.00371,"119":0.00371,"120":0.00371,"121":0.01484,"122":0.00742,"123":0.02967,"124":0.00742,"125":0.00742,"126":0.02225,"127":0.47475,"128":0.68987,"129":0.00742,_:"2 3 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 53 54 55 56 57 58 59 61 62 64 65 66 69 70 71 73 74 76 77 79 80 82 83 84 85 86 87 89 90 92 93 94 95 96 97 98 100 101 104 105 106 107 117 118 130 131 3.5 3.6"},D:{"11":0.00742,"47":0.00742,"49":0.04451,"53":0.00742,"55":0.00371,"59":0.00371,"63":0.00371,"64":0.00371,"65":0.00742,"66":0.00371,"68":0.00371,"69":0.01484,"70":0.00371,"71":0.01113,"72":0.00742,"73":0.02225,"74":0.00742,"75":0.00742,"76":0.01113,"77":0.00371,"78":0.00371,"79":0.03338,"80":0.00371,"81":0.02225,"83":0.01484,"84":0.01113,"85":0.03338,"86":0.00742,"87":0.04822,"88":0.01484,"89":0.00371,"90":0.01855,"91":0.01855,"92":0.00742,"93":0.03338,"94":0.00742,"95":0.00371,"96":0.01113,"97":0.02225,"98":0.03709,"99":0.01855,"100":0.01484,"101":0.01855,"102":0.02225,"103":0.07789,"104":0.01113,"105":0.01484,"106":0.02596,"107":0.0408,"108":0.05934,"109":5.3558,"110":0.03338,"111":0.01855,"112":0.03338,"113":0.00742,"114":0.02596,"115":0.01113,"116":0.10385,"117":0.01113,"118":0.15578,"119":0.03709,"120":0.07047,"121":0.0816,"122":0.14836,"123":0.09643,"124":0.12982,"125":0.29301,"126":13.24484,"127":1.42426,"128":0.00371,_:"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 48 50 51 52 54 56 57 58 60 61 62 67 129 130"},F:{"65":0.00371,"69":0.00371,"79":0.01113,"82":0.00371,"83":0.03338,"84":0.00371,"85":0.00371,"86":0.00371,"91":0.00371,"94":0.00371,"95":0.22996,"99":0.00371,"102":0.00371,"109":1.02739,"110":0.00742,"111":0.77889,_:"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 66 67 68 70 71 72 73 74 75 76 77 78 80 81 87 88 89 90 92 93 96 97 98 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.02225,"16":0.00371,"17":0.00371,"18":0.00371,"79":0.00371,"89":0.00371,"92":0.03338,"100":0.00371,"106":0.00371,"107":0.00371,"108":0.00371,"109":0.12611,"110":0.00371,"111":0.00371,"112":0.00371,"114":0.00371,"115":0.00371,"117":0.00371,"118":0.00371,"119":0.00371,"120":0.00371,"121":0.01855,"122":0.02225,"123":0.01484,"124":0.01113,"125":0.06305,"126":2.65935,"127":0.29672,_:"12 13 14 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 99 101 102 103 104 105 113 116"},E:{"14":0.00371,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 16.5 17.6 18.0","5.1":0.01484,"13.1":0.01113,"14.1":0.01484,"15.5":0.00371,"15.6":0.03709,"16.0":0.00371,"16.1":0.00371,"16.2":0.00371,"16.3":0.00742,"16.4":0.00371,"16.6":0.02596,"17.0":0.00371,"17.1":0.01855,"17.2":0.00371,"17.3":0.01113,"17.4":0.01855,"17.5":0.14465},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00052,"5.0-5.1":0.00026,"6.0-6.1":0.00157,"7.0-7.1":0.00157,"8.1-8.4":0,"9.0-9.2":0.00131,"9.3":0.00522,"10.0-10.2":0.00104,"10.3":0.00914,"11.0-11.2":0.02402,"11.3-11.4":0.00261,"12.0-12.1":0.00183,"12.2-12.5":0.03368,"13.0-13.1":0.00052,"13.2":0.00548,"13.3":0.00183,"13.4-13.7":0.00783,"14.0-14.4":0.01801,"14.5-14.8":0.02036,"15.0-15.1":0.01018,"15.2-15.3":0.01097,"15.4":0.01253,"15.5":0.01514,"15.6-15.8":0.13889,"16.0":0.02794,"16.1":0.05926,"16.2":0.02976,"16.3":0.04987,"16.4":0.01175,"16.5":0.02115,"16.6-16.7":0.17335,"17.0":0.01566,"17.1":0.02532,"17.2":0.02454,"17.3":0.03681,"17.4":0.09216,"17.5":1.6876,"17.6":0.01305,"18.0":0.01723},P:{"4":0.04289,"21":0.02145,"22":0.04289,"23":0.03217,"24":0.02145,"25":0.51472,_:"20 5.0-5.4 6.2-6.4 8.2 9.2 11.1-11.2 12.0 14.0 15.0","7.2-7.4":0.07506,"10.1":0.01072,"13.0":0.01072,"16.0":0.01072,"17.0":0.02145,"18.0":0.01072,"19.0":0.03217},I:{"0":0.05642,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00003,"4.2-4.3":0.00002,"4.4":0,"4.4.3-4.4.4":0.0001},K:{"0":0.44666,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01205,"9":0.00402,"11":0.03214,_:"6 7 10 5.5"},S:{"2.5":0.01887,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":63.4312},R:{_:"0"},M:{"0":0.13211},Q:{_:"14.9"},O:{"0":0.05033},H:{"0":0}}; 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..70aaffd --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/VG.js @@ -0,0 +1 @@ +module.exports={C:{"105":0.00739,"115":0.1183,"121":0.0037,"127":0.27728,"128":0.45473,_:"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 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 123 124 125 126 129 130 131 3.5 3.6"},D:{"39":0.0037,"45":0.0037,"54":0.0037,"63":0.00739,"78":0.0037,"84":0.00739,"87":0.0037,"88":0.01479,"90":0.0037,"92":0.09243,"94":0.46952,"99":0.00739,"101":0.00739,"102":0.01479,"103":0.19224,"105":0.0037,"106":0.02958,"107":0.0037,"108":0.02588,"109":0.19224,"114":0.03697,"115":0.0037,"116":0.09612,"118":0.0037,"119":0.01849,"120":0.01109,"121":0.0037,"122":0.05176,"123":1.27547,"124":0.04436,"125":0.28467,"126":10.51427,"127":1.11649,"128":0.00739,"129":0.00739,_:"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 40 41 42 43 44 46 47 48 49 50 51 52 53 55 56 57 58 59 60 61 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 83 85 86 89 91 93 95 96 97 98 100 104 110 111 112 113 117 130"},F:{"54":0.0037,"83":0.0037,"89":0.0037,"109":0.27358,"110":0.01479,"111":0.17006,_:"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 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 84 85 86 87 88 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.0037,"80":0.0037,"92":0.00739,"108":0.00739,"109":0.0037,"116":0.0037,"117":0.01849,"119":0.0037,"120":0.25879,"121":0.01109,"122":0.07394,"123":0.04067,"124":0.02958,"125":0.17006,"126":12.78423,"127":1.61189,_:"12 13 14 15 16 17 79 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 110 111 112 113 114 115 118"},E:{"13":0.0037,"14":0.01479,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1 15.1 15.5 17.0","9.1":0.00739,"13.1":0.04067,"14.1":0.02588,"15.2-15.3":0.0037,"15.4":0.05546,"15.6":0.18485,"16.0":0.0037,"16.1":0.09982,"16.2":0.0037,"16.3":0.02588,"16.4":0.04436,"16.5":0.01479,"16.6":0.6211,"17.1":0.19224,"17.2":0.01849,"17.3":0.122,"17.4":0.31055,"17.5":3.06851,"17.6":0.10721,"18.0":0.02218},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0051,"5.0-5.1":0.00255,"6.0-6.1":0.0153,"7.0-7.1":0.0153,"8.1-8.4":0,"9.0-9.2":0.01275,"9.3":0.05102,"10.0-10.2":0.0102,"10.3":0.08928,"11.0-11.2":0.23468,"11.3-11.4":0.02551,"12.0-12.1":0.01786,"12.2-12.5":0.32906,"13.0-13.1":0.0051,"13.2":0.05357,"13.3":0.01786,"13.4-13.7":0.07652,"14.0-14.4":0.17601,"14.5-14.8":0.19896,"15.0-15.1":0.09948,"15.2-15.3":0.10713,"15.4":0.12244,"15.5":0.14795,"15.6-15.8":1.35704,"16.0":0.27294,"16.1":0.57904,"16.2":0.29079,"16.3":0.48721,"16.4":0.11479,"16.5":0.20662,"16.6-16.7":1.69375,"17.0":0.15305,"17.1":0.24743,"17.2":0.23978,"17.3":0.35967,"17.4":0.90044,"17.5":16.48853,"17.6":0.12754,"18.0":0.16835},P:{"4":0.06512,"20":0.01085,"21":0.01085,"22":0.04342,"23":0.03256,"24":0.13025,"25":5.95891,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 13.0 15.0 16.0 17.0","7.2-7.4":0.37989,"11.1-11.2":0.01085,"14.0":0.01085,"18.0":0.01085,"19.0":0.04342},I:{"0":0.01256,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00002},K:{"0":0.19539,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":30.26187},R:{_:"0"},M:{"0":0.05673},Q:{_:"14.9"},O:{"0":0.49794},H:{"0":0}}; 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..f0ef671 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/VI.js @@ -0,0 +1 @@ +module.exports={C:{"78":0.00401,"115":0.06408,"118":0.08811,"121":0.06008,"124":0.01202,"125":0.01202,"126":0.02003,"127":0.99725,"128":2.36295,_:"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 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 112 113 114 116 117 119 120 122 123 129 130 131 3.5 3.6"},D:{"49":0.00401,"75":0.00801,"76":0.01202,"79":0.04005,"80":0.10814,"83":0.00401,"85":0.00801,"87":0.01202,"88":0.00801,"91":0.00401,"93":0.22028,"94":0.01202,"98":0.00801,"103":0.04806,"106":0.01202,"109":0.42854,"111":0.10814,"112":0.02804,"114":0.02804,"115":0.01602,"116":0.44456,"117":0.05607,"118":0.01202,"119":0.01602,"120":0.02804,"121":0.08411,"122":0.10413,"123":0.04406,"124":0.25632,"125":0.68486,"126":13.88934,"127":1.72616,_:"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 63 64 65 66 67 68 69 70 71 72 73 74 77 78 81 84 86 89 90 92 95 96 97 99 100 101 102 104 105 107 108 110 113 128 129 130"},F:{"95":0.03605,"106":0.00801,"109":0.25632,"111":0.15219,_:"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 96 97 98 99 100 101 102 103 104 105 107 108 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"92":0.00401,"100":0.00401,"109":0.05607,"113":0.00401,"118":0.00401,"120":0.00401,"121":0.07209,"122":0.00801,"123":0.03204,"124":0.03204,"125":0.18824,"126":7.70162,"127":1.02929,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 111 112 114 115 116 117 119"},E:{"14":0.10413,_:"0 4 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 12.1","13.1":0.11214,"14.1":0.85307,"15.1":0.01202,"15.2-15.3":0.01602,"15.4":0.06008,"15.5":0.03204,"15.6":0.64481,"16.0":0.13217,"16.1":0.03605,"16.2":0.06408,"16.3":0.0761,"16.4":0.05607,"16.5":0.14018,"16.6":0.9612,"17.0":0.10413,"17.1":0.0761,"17.2":0.03605,"17.3":0.06809,"17.4":0.22829,"17.5":3.34017,"17.6":0.04406,"18.0":0.20426},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00672,"5.0-5.1":0.00336,"6.0-6.1":0.02015,"7.0-7.1":0.02015,"8.1-8.4":0,"9.0-9.2":0.01679,"9.3":0.06718,"10.0-10.2":0.01344,"10.3":0.11756,"11.0-11.2":0.30903,"11.3-11.4":0.03359,"12.0-12.1":0.02351,"12.2-12.5":0.43331,"13.0-13.1":0.00672,"13.2":0.07054,"13.3":0.02351,"13.4-13.7":0.10077,"14.0-14.4":0.23177,"14.5-14.8":0.262,"15.0-15.1":0.131,"15.2-15.3":0.14108,"15.4":0.16123,"15.5":0.19482,"15.6-15.8":1.78699,"16.0":0.35941,"16.1":0.76249,"16.2":0.38293,"16.3":0.64157,"16.4":0.15115,"16.5":0.27208,"16.6-16.7":2.23038,"17.0":0.20154,"17.1":0.32582,"17.2":0.31575,"17.3":0.47362,"17.4":1.18573,"17.5":21.71257,"17.6":0.16795,"18.0":0.22169},P:{"4":0.01085,"21":0.01085,"22":0.05427,"24":0.20624,"25":1.57394,_:"20 23 5.0-5.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0","6.2-6.4":0.01085,"16.0":0.01085,"19.0":0.01085},I:{"0":0.01792,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00003},K:{"0":0.29975,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.05607,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":22.6224},R:{_:"0"},M:{"0":0.61149},Q:{_:"14.9"},O:{_:"0"},H:{"0":0}}; 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..6b86032 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/VN.js @@ -0,0 +1 @@ +module.exports={C:{"7":0.00129,"52":0.00258,"54":0.00129,"59":0.00516,"68":0.00129,"72":0.00129,"75":0.00129,"102":0.00129,"103":0.00516,"105":0.00129,"106":0.00129,"107":0.00129,"108":0.00129,"109":0.00129,"111":0.00129,"113":0.00129,"115":0.03867,"119":0.00129,"121":0.00129,"123":0.00129,"125":0.01031,"126":0.00387,"127":0.06961,"128":0.11988,"129":0.00129,_:"2 3 4 5 6 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 60 61 62 63 64 65 66 67 69 70 71 73 74 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 104 110 112 114 116 117 118 120 122 124 130 131 3.5 3.6"},D:{"11":0.00129,"26":0.00129,"34":0.00387,"38":0.02578,"41":0.00129,"43":0.00129,"47":0.00773,"49":0.00645,"50":0.00129,"53":0.00258,"54":0.00129,"55":0.00129,"56":0.00129,"57":0.00387,"58":0.00387,"65":0.00129,"66":0.01934,"68":0.00129,"69":0.00258,"70":0.00258,"71":0.00258,"72":0.00129,"73":0.00129,"74":0.00129,"75":0.00129,"76":0.00129,"77":0.00258,"78":0.00258,"79":0.08379,"80":0.00902,"81":0.00645,"83":0.00387,"84":0.00258,"85":0.00902,"86":0.00387,"87":0.06187,"88":0.00258,"89":0.00645,"90":0.00387,"91":0.00902,"92":0.00129,"93":0.00129,"94":0.00516,"95":0.00258,"96":0.00129,"97":0.00129,"98":0.00129,"99":0.00258,"100":0.00387,"101":0.00258,"102":0.00516,"103":0.01676,"104":0.01418,"105":0.00516,"106":0.0116,"107":0.01031,"108":0.01547,"109":0.66899,"110":0.00773,"111":0.00902,"112":0.01031,"113":0.00258,"114":0.00902,"115":0.00516,"116":0.02449,"117":0.00516,"118":0.00902,"119":0.02707,"120":0.03223,"121":0.04254,"122":0.09796,"123":0.04254,"124":0.06187,"125":0.15081,"126":5.36997,"127":0.69477,"128":0.00258,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 35 36 37 39 40 42 44 45 46 48 51 52 59 60 61 62 63 64 67 129 130"},F:{"28":0.00258,"29":0.00387,"36":0.0348,"40":0.00387,"46":0.03738,"79":0.00129,"80":0.00129,"83":0.01676,"85":0.00645,"86":0.00129,"87":0.00129,"95":0.00387,"109":0.03996,"110":0.00129,"111":0.06703,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 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 74 75 76 77 78 81 82 84 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00129,"16":0.00129,"17":0.00258,"18":0.00258,"80":0.00129,"81":0.00129,"84":0.00258,"86":0.00129,"90":0.00129,"92":0.00129,"106":0.00129,"107":0.00129,"108":0.00129,"109":0.00773,"110":0.00129,"114":0.00129,"115":0.00129,"119":0.00258,"120":0.00258,"121":0.00129,"122":0.00258,"123":0.00258,"124":0.00387,"125":0.0116,"126":0.61485,"127":0.09152,_:"12 13 15 79 83 85 87 88 89 91 93 94 95 96 97 98 99 100 101 102 103 104 105 111 112 113 116 117 118"},E:{"13":0.00516,"14":0.01934,"15":0.00258,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.00516,"11.1":0.00387,"12.1":0.00129,"13.1":0.01805,"14.1":0.04383,"15.1":0.00902,"15.2-15.3":0.00516,"15.4":0.00902,"15.5":0.01547,"15.6":0.11085,"16.0":0.00516,"16.1":0.0116,"16.2":0.00902,"16.3":0.0232,"16.4":0.00773,"16.5":0.0116,"16.6":0.08379,"17.0":0.00387,"17.1":0.00773,"17.2":0.00902,"17.3":0.00902,"17.4":0.02062,"17.5":0.23589,"17.6":0.00129,"18.0":0.00387},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00463,"5.0-5.1":0.00232,"6.0-6.1":0.0139,"7.0-7.1":0.0139,"8.1-8.4":0,"9.0-9.2":0.01158,"9.3":0.04634,"10.0-10.2":0.00927,"10.3":0.08109,"11.0-11.2":0.21315,"11.3-11.4":0.02317,"12.0-12.1":0.01622,"12.2-12.5":0.29887,"13.0-13.1":0.00463,"13.2":0.04865,"13.3":0.01622,"13.4-13.7":0.06951,"14.0-14.4":0.15986,"14.5-14.8":0.18072,"15.0-15.1":0.09036,"15.2-15.3":0.09731,"15.4":0.11121,"15.5":0.13438,"15.6-15.8":1.23257,"16.0":0.2479,"16.1":0.52593,"16.2":0.26412,"16.3":0.44252,"16.4":0.10426,"16.5":0.18767,"16.6-16.7":1.5384,"17.0":0.13901,"17.1":0.22474,"17.2":0.21778,"17.3":0.32668,"17.4":0.81785,"17.5":14.97618,"17.6":0.11584,"18.0":0.15291},P:{"4":0.36679,"20":0.03057,"21":0.0917,"22":0.14264,"23":0.12226,"24":0.0917,"25":1.81356,"5.0-5.4":0.01019,"6.2-6.4":0.01019,"7.2-7.4":0.06113,_:"8.2 10.1 12.0","9.2":0.01019,"11.1-11.2":0.02038,"13.0":0.02038,"14.0":0.02038,"15.0":0.01019,"16.0":0.02038,"17.0":0.03057,"18.0":0.02038,"19.0":0.04075},I:{"0":0.02604,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00004},K:{"0":0.4255,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00149,"11":0.01785,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":57.78443},R:{_:"0"},M:{"0":0.10452},Q:{"14.9":0.00871},O:{"0":2.4388},H:{"0":0.01}}; 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..e49142f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/VU.js @@ -0,0 +1 @@ +module.exports={C:{"80":0.00309,"99":0.00154,"100":0.00154,"101":0.00309,"102":0.00618,"103":0.00154,"108":0.00154,"110":0.00154,"112":0.00154,"113":0.00309,"115":0.28255,"117":0.00154,"118":0.00309,"121":0.02316,"122":0.00772,"126":0.03088,"127":0.26094,"128":0.21153,_:"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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 104 105 106 107 109 111 114 116 119 120 123 124 125 129 130 131 3.5 3.6"},D:{"65":0.00154,"71":0.00154,"88":0.00772,"90":0.00154,"94":0.00618,"96":0.00463,"97":0.01544,"102":0.00154,"103":0.00772,"104":0.00463,"105":0.00154,"106":0.00309,"107":0.00463,"108":0.01544,"109":0.1019,"110":0.00309,"111":0.0247,"112":0.06639,"113":0.00309,"114":0.00926,"115":0.00309,"116":0.03088,"117":0.01698,"118":0.00309,"119":0.06639,"120":0.05558,"121":0.00772,"122":0.05404,"123":0.01081,"124":0.0386,"125":0.16058,"126":6.78588,"127":0.66546,_:"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 66 67 68 69 70 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 89 91 92 93 95 98 99 100 101 128 129 130"},F:{"76":0.00154,"109":0.03706,"111":0.15286,_:"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 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 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"14":0.00309,"17":0.00309,"18":0.00154,"89":0.00618,"90":0.00309,"92":0.00309,"103":0.00154,"106":0.00926,"109":0.00463,"112":0.00154,"113":0.03088,"114":0.00154,"115":0.02316,"118":0.00309,"119":0.00618,"120":0.03242,"121":0.01853,"122":0.08801,"123":0.02316,"124":0.0139,"125":0.06176,"126":2.09058,"127":0.11117,_:"12 13 15 16 79 80 81 83 84 85 86 87 88 91 93 94 95 96 97 98 99 100 101 102 104 105 107 108 110 111 116 117"},E:{_:"0 4 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 15.1 15.2-15.3 15.5 16.2 16.4 17.6 18.0","12.1":0.01853,"13.1":0.00309,"14.1":0.03088,"15.4":0.00309,"15.6":0.00463,"16.0":0.00154,"16.1":0.12043,"16.3":0.00772,"16.5":0.00309,"16.6":0.0386,"17.0":0.00309,"17.1":0.01853,"17.2":0.01235,"17.3":0.00463,"17.4":0.00309,"17.5":0.24704},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00069,"5.0-5.1":0.00034,"6.0-6.1":0.00206,"7.0-7.1":0.00206,"8.1-8.4":0,"9.0-9.2":0.00171,"9.3":0.00685,"10.0-10.2":0.00137,"10.3":0.01199,"11.0-11.2":0.03151,"11.3-11.4":0.00343,"12.0-12.1":0.0024,"12.2-12.5":0.04418,"13.0-13.1":0.00069,"13.2":0.00719,"13.3":0.0024,"13.4-13.7":0.01028,"14.0-14.4":0.02363,"14.5-14.8":0.02672,"15.0-15.1":0.01336,"15.2-15.3":0.01439,"15.4":0.01644,"15.5":0.01987,"15.6-15.8":0.18221,"16.0":0.03665,"16.1":0.07775,"16.2":0.03905,"16.3":0.06542,"16.4":0.01541,"16.5":0.02774,"16.6-16.7":0.22743,"17.0":0.02055,"17.1":0.03322,"17.2":0.0322,"17.3":0.04829,"17.4":0.12091,"17.5":2.21397,"17.6":0.01713,"18.0":0.02261},P:{"20":0.02027,"21":0.14189,"22":0.10135,"23":0.11148,"24":0.05067,"25":0.53715,_:"4 5.0-5.4 6.2-6.4 8.2 11.1-11.2 12.0 13.0 15.0 18.0","7.2-7.4":0.04054,"9.2":0.02027,"10.1":0.0304,"14.0":0.04054,"16.0":0.0304,"17.0":0.01013,"19.0":0.0304},I:{"0":0.10113,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00006,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00017},K:{"0":0.18451,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.00926,_:"6 7 8 9 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":82.38775},R:{_:"0"},M:{"0":0.01691},Q:{"14.9":0.06766},O:{"0":0.06766},H:{"0":0.01}}; 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..6683793 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/WF.js @@ -0,0 +1 @@ +module.exports={C:{"60":0.07269,"78":0.4097,"115":0.63437,"126":0.15198,"127":2.51104,"128":0.67402,_:"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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 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 112 113 114 116 117 118 119 120 121 122 123 124 125 129 130 131 3.5 3.6"},D:{"87":0.03965,"105":0.07269,"109":47.4917,"116":0.03965,"123":0.15198,"125":0.11234,"126":3.82603,"127":0.56168,_:"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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 106 107 108 110 111 112 113 114 115 117 118 119 120 121 122 124 128 129 130"},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 99 100 101 102 103 104 105 106 107 108 109 110 111 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"122":0.03965,"126":5.6961,"127":0.15198,_:"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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 123 124 125"},E:{_:"0 4 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.4 15.5 15.6 16.0 16.1 16.2 16.3 16.4 16.5 17.0 17.1 17.2 17.3","15.1":0.63437,"15.2-15.3":0.07269,"16.6":0.29736,"17.4":0.18502,"17.5":1.68504,"17.6":0.15198,"18.0":0.03965},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00199,"5.0-5.1":0.001,"6.0-6.1":0.00597,"7.0-7.1":0.00597,"8.1-8.4":0,"9.0-9.2":0.00498,"9.3":0.0199,"10.0-10.2":0.00398,"10.3":0.03483,"11.0-11.2":0.09156,"11.3-11.4":0.00995,"12.0-12.1":0.00697,"12.2-12.5":0.12838,"13.0-13.1":0.00199,"13.2":0.0209,"13.3":0.00697,"13.4-13.7":0.02986,"14.0-14.4":0.06867,"14.5-14.8":0.07763,"15.0-15.1":0.03881,"15.2-15.3":0.0418,"15.4":0.04777,"15.5":0.05772,"15.6-15.8":0.52945,"16.0":0.10649,"16.1":0.22591,"16.2":0.11345,"16.3":0.19009,"16.4":0.04478,"16.5":0.08061,"16.6-16.7":0.66082,"17.0":0.05971,"17.1":0.09654,"17.2":0.09355,"17.3":0.14033,"17.4":0.35131,"17.5":6.43306,"17.6":0.04976,"18.0":0.06568},P:{"24":0.04177,"25":1.2114,_:"4 20 21 22 23 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.07774,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00013},K:{"0":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":19.50181},R:{_:"0"},M:{"0":0.07802},Q:{_:"14.9"},O:{_:"0"},H:{"0":0}}; 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..e5f3043 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/WS.js @@ -0,0 +1 @@ +module.exports={C:{"89":0.00839,"115":0.04197,"121":0.30778,"123":0.00839,"125":0.00839,"127":0.04477,"128":0.31897,_:"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 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 116 117 118 119 120 122 124 126 129 130 131 3.5 3.6"},D:{"60":0.0028,"68":0.0028,"69":0.00839,"70":0.01399,"76":0.0028,"87":0.0028,"88":0.05036,"91":0.02518,"93":0.02238,"94":0.00839,"103":0.03637,"105":0.01399,"107":0.0028,"108":0.01119,"109":0.92614,"111":0.05596,"115":0.0028,"116":0.06995,"118":0.00839,"120":0.03917,"121":1.24791,"122":0.03078,"123":0.09233,"124":0.19306,"125":0.2798,"126":9.29775,"127":1.02966,"128":0.04477,_:"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 61 62 63 64 65 66 67 71 72 73 74 75 77 78 79 80 81 83 84 85 86 89 90 92 95 96 97 98 99 100 101 102 104 106 110 112 113 114 117 119 129 130"},F:{"110":0.01399,"111":0.65753,_:"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 99 100 101 102 103 104 105 106 107 108 109 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"85":0.0028,"92":0.00839,"109":0.0028,"115":0.00839,"116":0.0028,"117":0.06435,"118":0.0028,"120":0.08954,"121":0.03917,"122":0.0028,"123":0.05316,"124":0.05876,"125":0.34975,"126":6.10244,"127":0.74986,_:"12 13 14 15 16 17 18 79 80 81 83 84 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 119"},E:{_:"0 4 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 17.2 17.6 18.0","13.1":0.02238,"14.1":0.09233,"15.1":0.0028,"15.2-15.3":0.00839,"15.4":0.01399,"15.5":0.19866,"15.6":0.17627,"16.0":0.0028,"16.1":0.0028,"16.2":0.0028,"16.3":0.00839,"16.4":0.02798,"16.5":0.12311,"16.6":0.01399,"17.0":0.0028,"17.1":0.04477,"17.3":0.00839,"17.4":0.03637,"17.5":1.70678},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0029,"5.0-5.1":0.00145,"6.0-6.1":0.00869,"7.0-7.1":0.00869,"8.1-8.4":0,"9.0-9.2":0.00724,"9.3":0.02897,"10.0-10.2":0.00579,"10.3":0.0507,"11.0-11.2":0.13326,"11.3-11.4":0.01449,"12.0-12.1":0.01014,"12.2-12.5":0.18686,"13.0-13.1":0.0029,"13.2":0.03042,"13.3":0.01014,"13.4-13.7":0.04346,"14.0-14.4":0.09995,"14.5-14.8":0.11298,"15.0-15.1":0.05649,"15.2-15.3":0.06084,"15.4":0.06953,"15.5":0.08401,"15.6-15.8":0.77061,"16.0":0.15499,"16.1":0.32881,"16.2":0.16513,"16.3":0.27667,"16.4":0.06518,"16.5":0.11733,"16.6-16.7":0.96182,"17.0":0.08691,"17.1":0.14051,"17.2":0.13616,"17.3":0.20424,"17.4":0.51133,"17.5":9.36325,"17.6":0.07243,"18.0":0.0956},P:{"4":0.06246,"20":0.02082,"21":0.10411,"22":2.77969,"23":0.16657,"24":0.07288,"25":1.48875,"5.0-5.4":0.03123,"6.2-6.4":0.02082,"7.2-7.4":0.02082,"8.2":0.02082,_:"9.2 12.0 13.0 14.0 16.0 18.0","10.1":0.01041,"11.1-11.2":0.01041,"15.0":0.01041,"17.0":0.04164,"19.0":0.02082},I:{"0":0.09331,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00006,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00016},K:{"0":1.13087,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":53.82763},R:{_:"0"},M:{"0":0.02161},Q:{"14.9":0.01441},O:{"0":0.12965},H:{"0":0}}; 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..dfab3c5 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/YE.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00193,"52":0.00387,"59":0.00193,"78":0.00193,"84":0.00193,"87":0.00193,"88":0.00193,"91":0.00193,"102":0.00193,"113":0.00193,"115":0.14505,"117":0.00193,"120":0.00193,"121":0.0058,"123":0.00193,"124":0.00193,"125":0.00387,"126":0.02127,"127":0.11024,"128":0.18566,"129":0.00387,_:"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 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 89 90 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 112 114 116 118 119 122 130 131 3.5 3.6"},D:{"37":0.00193,"41":0.03481,"43":0.00193,"48":0.00193,"50":0.00193,"55":0.0058,"56":0.00193,"57":0.00774,"58":0.05802,"60":0.00193,"66":0.00193,"67":0.08703,"68":0.00193,"70":0.02321,"71":0.00193,"72":0.00387,"75":0.00193,"76":0.00387,"78":0.00193,"79":0.0116,"80":0.00193,"81":0.00193,"83":0.00387,"85":0.00387,"87":0.0116,"88":0.00193,"89":0.01741,"90":0.00193,"92":0.00387,"94":0.00387,"95":0.00387,"96":0.00193,"97":0.01547,"99":0.02127,"100":0.0058,"102":0.00193,"103":0.00193,"104":0.00193,"105":0.00193,"106":0.04255,"107":0.00193,"108":0.00774,"109":0.51058,"110":0.00193,"111":0.00193,"112":0.02127,"113":0.00967,"114":0.04061,"115":0.00193,"116":0.00774,"117":0.0058,"118":0.01354,"119":0.02127,"120":0.04835,"121":0.0116,"122":0.03288,"123":0.04642,"124":0.03868,"125":0.11604,"126":2.98996,"127":0.90511,"128":0.00193,"129":0.0058,_:"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 38 39 40 42 44 45 46 47 49 51 52 53 54 59 61 62 63 64 65 69 73 74 77 84 86 91 93 98 101 130"},F:{"53":0.00193,"74":0.0058,"79":0.00967,"82":0.00387,"83":0.2901,"84":0.00774,"92":0.00193,"102":0.0058,"109":0.00193,"110":0.00387,"111":0.0116,_:"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 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 78 80 81 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.0116,"17":0.00387,"18":0.01547,"88":0.00193,"92":0.01547,"100":0.00193,"109":0.07156,"111":0.00193,"112":0.0058,"117":0.00193,"118":0.00193,"119":0.00967,"120":0.00193,"121":0.00774,"122":0.00387,"123":0.00193,"124":0.05222,"125":0.01547,"126":0.60147,"127":0.29397,_:"12 13 14 16 79 80 81 83 84 85 86 87 89 90 91 93 94 95 96 97 98 99 101 102 103 104 105 106 107 108 110 113 114 115 116"},E:{"13":0.00193,"15":0.00193,_:"0 4 5 6 7 8 9 10 11 12 14 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.4 16.0 16.2 16.3 16.4 17.0 17.1 17.3 17.6 18.0","5.1":0.0058,"15.2-15.3":0.00387,"15.5":0.00193,"15.6":0.00193,"16.1":0.00193,"16.5":0.00193,"16.6":0.00193,"17.2":0.00193,"17.4":0.00193,"17.5":0.04448},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00068,"5.0-5.1":0.00034,"6.0-6.1":0.00203,"7.0-7.1":0.00203,"8.1-8.4":0,"9.0-9.2":0.00169,"9.3":0.00678,"10.0-10.2":0.00136,"10.3":0.01186,"11.0-11.2":0.03117,"11.3-11.4":0.00339,"12.0-12.1":0.00237,"12.2-12.5":0.0437,"13.0-13.1":0.00068,"13.2":0.00711,"13.3":0.00237,"13.4-13.7":0.01016,"14.0-14.4":0.02338,"14.5-14.8":0.02642,"15.0-15.1":0.01321,"15.2-15.3":0.01423,"15.4":0.01626,"15.5":0.01965,"15.6-15.8":0.18023,"16.0":0.03625,"16.1":0.0769,"16.2":0.03862,"16.3":0.06471,"16.4":0.01524,"16.5":0.02744,"16.6-16.7":0.22494,"17.0":0.02033,"17.1":0.03286,"17.2":0.03184,"17.3":0.04777,"17.4":0.11959,"17.5":2.18982,"17.6":0.01694,"18.0":0.02236},P:{"4":0.06045,"20":0.0403,"21":0.18136,"22":0.06045,"23":0.16121,"24":0.0806,"25":1.34006,"5.0-5.4":0.03023,_:"6.2-6.4 12.0","7.2-7.4":0.0403,"8.2":0.01008,"9.2":0.06045,"10.1":0.01008,"11.1-11.2":0.13098,"13.0":0.05038,"14.0":0.07053,"15.0":0.02015,"16.0":0.22166,"17.0":0.0403,"18.0":0.02015,"19.0":0.02015},I:{"0":0.1286,"3":0,"4":0.00001,"2.1":0,"2.2":0.00003,"2.3":0,"4.1":0.00008,"4.2-4.3":0.00005,"4.4":0,"4.4.3-4.4.4":0.00022},K:{"0":5.02746,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.0058,_:"6 7 8 9 10 5.5"},S:{"2.5":0.00807,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":69.74929},R:{_:"0"},M:{"0":0.10486},Q:{_:"14.9"},O:{"0":6.69478},H:{"0":3.95}}; 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..23f2a14 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/YT.js @@ -0,0 +1 @@ +module.exports={C:{"68":0.00348,"78":0.01742,"94":0.00348,"102":0.03484,"103":0.00348,"105":0.03136,"114":0.00348,"115":0.23691,"117":0.00697,"119":0.01742,"120":0.00348,"124":0.00348,"125":0.00348,"126":0.14284,"127":1.81865,"128":0.69332,_:"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 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 101 104 106 107 108 109 110 111 112 113 116 118 121 122 123 129 130 131 3.5 3.6"},D:{"40":0.00348,"47":0.00697,"48":0.00348,"50":0.00348,"52":0.00348,"53":0.00697,"58":0.01394,"59":0.01394,"69":0.01394,"73":0.00697,"74":0.02439,"79":0.07316,"81":0.04878,"83":0.00348,"86":0.00348,"87":0.09407,"88":0.01394,"89":0.00348,"90":0.05226,"91":0.07316,"94":0.00348,"97":0.0209,"98":0.00697,"99":0.00348,"102":0.00348,"103":0.03136,"105":0.00348,"106":0.01742,"108":0.01394,"109":0.49821,"111":0.01742,"112":0.00348,"113":0.00697,"114":0.01742,"115":0.108,"116":0.05923,"117":0.00697,"118":0.05226,"119":0.00697,"120":0.03832,"121":0.20904,"122":0.01394,"123":0.01394,"124":0.10452,"125":0.67938,"126":12.93958,"127":1.52251,"128":0.00348,_:"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 41 42 43 44 45 46 49 51 54 55 56 57 60 61 62 63 64 65 66 67 68 70 71 72 75 76 77 78 80 84 85 92 93 95 96 100 101 104 107 110 129 130"},F:{"83":0.04878,"95":0.03484,"102":0.00348,"108":0.00348,"109":0.29962,"111":0.88842,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 110 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.00348,"96":0.00697,"109":0.16026,"116":0.00697,"117":0.00348,"118":0.00697,"119":0.00697,"120":0.0209,"121":0.00697,"122":0.05226,"123":0.0209,"124":0.02439,"125":0.16375,"126":5.3793,"127":0.81526,_:"12 13 14 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 97 98 99 100 101 102 103 104 105 106 107 108 110 111 112 113 114 115"},E:{_:"0 4 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 15.1 15.5 16.0 16.2 17.0 17.6","12.1":0.00348,"13.1":0.00697,"14.1":0.13936,"15.2-15.3":0.01394,"15.4":0.00348,"15.6":0.89539,"16.1":0.05574,"16.3":0.0209,"16.4":0.01394,"16.5":0.02439,"16.6":1.0661,"17.1":0.00697,"17.2":0.03484,"17.3":0.07665,"17.4":0.01742,"17.5":0.54699,"18.0":0.02439},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00238,"5.0-5.1":0.00119,"6.0-6.1":0.00714,"7.0-7.1":0.00714,"8.1-8.4":0,"9.0-9.2":0.00595,"9.3":0.02381,"10.0-10.2":0.00476,"10.3":0.04167,"11.0-11.2":0.10952,"11.3-11.4":0.0119,"12.0-12.1":0.00833,"12.2-12.5":0.15357,"13.0-13.1":0.00238,"13.2":0.025,"13.3":0.00833,"13.4-13.7":0.03571,"14.0-14.4":0.08214,"14.5-14.8":0.09286,"15.0-15.1":0.04643,"15.2-15.3":0.05,"15.4":0.05714,"15.5":0.06905,"15.6-15.8":0.63333,"16.0":0.12738,"16.1":0.27024,"16.2":0.13571,"16.3":0.22738,"16.4":0.05357,"16.5":0.09643,"16.6-16.7":0.79047,"17.0":0.07143,"17.1":0.11548,"17.2":0.1119,"17.3":0.16786,"17.4":0.42024,"17.5":7.69522,"17.6":0.05952,"18.0":0.07857},P:{"21":0.05142,"22":0.28794,"23":0.16454,"24":0.09255,"25":2.3858,_:"4 20 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 17.0 18.0","5.0-5.4":0.01028,"7.2-7.4":0.16454,"16.0":0.03085,"19.0":0.13369},I:{"0":0.08441,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00005,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00014},K:{"0":0.65812,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":51.58368},R:{_:"0"},M:{"0":0.29974},Q:{_:"14.9"},O:{"0":0.03258},H:{"0":0}}; 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..ebc2678 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ZA.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.01236,"52":0.00618,"78":0.00618,"88":0.00309,"91":0.00309,"99":0.00309,"104":0.00309,"108":0.00309,"110":0.00309,"111":0.00309,"112":0.00309,"113":0.00309,"115":0.07107,"122":0.00309,"123":0.00309,"124":0.00309,"125":0.00309,"126":0.00927,"127":0.16068,"128":0.35226,"129":0.00927,_:"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 43 44 45 46 47 48 49 50 51 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 79 80 81 82 83 84 85 86 87 89 90 92 93 94 95 96 97 98 100 101 102 103 105 106 107 109 114 116 117 118 119 120 121 130 131 3.5 3.6"},D:{"49":0.00309,"50":0.00309,"52":0.01236,"55":0.00309,"65":0.01545,"66":0.00309,"67":0.00309,"69":0.00309,"70":0.00618,"73":0.00309,"74":0.00309,"75":0.00309,"78":0.00309,"79":0.00927,"81":0.00309,"83":0.00309,"85":0.00309,"86":0.00309,"87":0.01236,"88":0.02472,"90":0.00309,"91":0.00618,"92":0.00309,"93":0.02781,"94":0.00309,"95":0.00309,"98":0.00927,"99":0.0309,"100":0.00309,"102":0.00618,"103":0.06798,"104":0.00309,"105":0.00309,"106":0.00618,"107":0.00309,"108":0.00618,"109":0.84975,"110":0.00309,"111":0.00618,"112":0.00309,"113":0.02163,"114":0.03399,"115":0.00618,"116":0.10197,"117":0.00927,"118":0.01545,"119":0.02781,"120":0.04017,"121":0.0309,"122":0.14214,"123":0.09888,"124":0.16068,"125":0.44187,"126":15.15645,"127":1.93125,"128":0.00618,"129":0.00309,_:"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 51 53 54 56 57 58 59 60 61 62 63 64 68 71 72 76 77 80 84 89 96 97 101 130"},F:{"83":0.05871,"95":0.00927,"109":0.06798,"110":0.00309,"111":0.12051,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"16":0.00309,"17":0.00309,"18":0.00309,"84":0.00309,"90":0.00309,"92":0.01545,"100":0.00309,"106":0.00309,"108":0.00309,"109":0.04017,"111":0.00309,"112":0.00309,"113":0.00309,"114":0.00309,"115":0.00309,"116":0.00309,"117":0.00309,"118":0.02472,"119":0.00309,"120":0.00927,"121":0.02472,"122":0.04017,"123":0.01854,"124":0.03399,"125":0.10815,"126":4.42179,"127":0.73233,_:"12 13 14 15 79 80 81 83 85 86 87 88 89 91 93 94 95 96 97 98 99 101 102 103 104 105 107 110"},E:{"14":0.00618,_:"0 4 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","12.1":0.00309,"13.1":0.01545,"14.1":0.01545,"15.1":0.00309,"15.2-15.3":0.00309,"15.4":0.00309,"15.5":0.00618,"15.6":0.06489,"16.0":0.00927,"16.1":0.00927,"16.2":0.00618,"16.3":0.02781,"16.4":0.00927,"16.5":0.01545,"16.6":0.09579,"17.0":0.00618,"17.1":0.00618,"17.2":0.00927,"17.3":0.01854,"17.4":0.02781,"17.5":0.42951,"17.6":0.00309,"18.0":0.00309},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00169,"5.0-5.1":0.00084,"6.0-6.1":0.00506,"7.0-7.1":0.00506,"8.1-8.4":0,"9.0-9.2":0.00422,"9.3":0.01686,"10.0-10.2":0.00337,"10.3":0.02951,"11.0-11.2":0.07756,"11.3-11.4":0.00843,"12.0-12.1":0.0059,"12.2-12.5":0.10875,"13.0-13.1":0.00169,"13.2":0.0177,"13.3":0.0059,"13.4-13.7":0.02529,"14.0-14.4":0.05817,"14.5-14.8":0.06576,"15.0-15.1":0.03288,"15.2-15.3":0.03541,"15.4":0.04046,"15.5":0.0489,"15.6-15.8":0.44849,"16.0":0.0902,"16.1":0.19137,"16.2":0.0961,"16.3":0.16102,"16.4":0.03794,"16.5":0.06828,"16.6-16.7":0.55977,"17.0":0.05058,"17.1":0.08177,"17.2":0.07924,"17.3":0.11887,"17.4":0.29759,"17.5":5.44928,"17.6":0.04215,"18.0":0.05564},P:{"4":0.09107,"20":0.03036,"21":0.07083,"22":0.14166,"23":0.15178,"24":0.15178,"25":4.93803,"5.0-5.4":0.01012,_:"6.2-6.4 8.2 9.2 10.1","7.2-7.4":0.22262,"11.1-11.2":0.02024,"12.0":0.01012,"13.0":0.02024,"14.0":0.02024,"15.0":0.01012,"16.0":0.03036,"17.0":0.04048,"18.0":0.02024,"19.0":0.09107},I:{"0":0.02754,"3":0,"4":0,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00005},K:{"0":2.65181,_:"10 11 12 11.1 11.5 12.1"},A:{"11":0.01236,_:"6 7 8 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":54.00973},R:{_:"0"},M:{"0":0.44224},Q:{_:"14.9"},O:{"0":0.31095},H:{"0":0.05}}; 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..55fb4eb --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ZM.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00149,"43":0.00149,"47":0.00298,"48":0.00149,"72":0.00149,"89":0.00149,"102":0.00298,"112":0.00149,"115":0.06105,"118":0.00149,"119":0.00149,"121":0.00149,"122":0.00447,"123":0.00596,"124":0.00298,"125":0.00149,"126":0.01489,"127":0.18613,"128":0.23228,"129":0.00149,_:"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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 91 92 93 94 95 96 97 98 99 100 101 103 104 105 106 107 108 109 110 111 113 114 116 117 120 130 131 3.5 3.6"},D:{"11":0.00447,"34":0.00149,"35":0.00149,"40":0.00149,"44":0.00149,"46":0.00298,"49":0.00298,"50":0.00447,"53":0.00298,"55":0.00149,"56":0.00149,"58":0.00745,"59":0.00149,"61":0.00149,"63":0.00149,"64":0.00745,"65":0.00149,"66":0.00149,"67":0.00298,"68":0.00893,"69":0.0134,"70":0.00596,"71":0.00149,"72":0.00298,"73":0.00298,"74":0.00149,"75":0.00447,"76":0.00447,"77":0.00596,"78":0.00745,"79":0.01042,"80":0.00298,"81":0.00596,"83":0.01042,"84":0.00149,"86":0.00447,"87":0.01191,"88":0.01489,"90":0.00298,"91":0.00298,"92":0.00298,"93":0.00745,"94":0.00596,"95":0.00745,"96":0.00149,"98":0.00447,"99":0.01042,"100":0.00298,"101":0.00149,"102":0.00298,"103":0.02085,"104":0.00298,"105":0.00596,"106":0.02085,"107":0.00298,"108":0.00893,"109":0.40203,"110":0.00447,"111":0.01787,"112":0.00447,"113":0.00447,"114":0.00893,"115":0.00298,"116":0.02829,"117":0.00893,"118":0.0134,"119":0.0268,"120":0.02531,"121":0.02085,"122":0.02978,"123":0.04318,"124":0.09083,"125":0.16379,"126":3.96074,"127":0.48988,"128":0.01042,_:"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 36 37 38 39 41 42 43 45 47 48 51 52 54 57 60 62 85 89 97 129 130"},F:{"17":0.00149,"34":0.00596,"36":0.01042,"37":0.00149,"40":0.00149,"42":0.00298,"46":0.00298,"49":0.00149,"50":0.00149,"73":0.00149,"79":0.01638,"82":0.00298,"83":0.03425,"84":0.00298,"86":0.00149,"90":0.00149,"95":0.03574,"97":0.00149,"106":0.00149,"107":0.00149,"108":0.00893,"109":0.0402,"110":0.0268,"111":0.36034,_:"9 11 12 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 38 39 41 43 44 45 47 48 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 78 80 81 85 87 88 89 91 92 93 94 96 98 99 100 101 102 103 104 105 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00745,"13":0.00596,"14":0.00447,"15":0.00596,"16":0.00447,"17":0.00447,"18":0.0402,"84":0.00596,"86":0.00298,"89":0.0134,"90":0.00893,"92":0.04765,"99":0.00149,"100":0.01638,"101":0.00149,"103":0.00149,"107":0.00149,"109":0.02085,"111":0.00149,"112":0.00149,"113":0.00893,"114":0.00447,"115":0.00149,"116":0.00149,"117":0.00447,"118":0.00298,"119":0.00298,"120":0.01042,"121":0.01042,"122":0.0134,"123":0.01191,"124":0.03425,"125":0.06105,"126":1.51134,"127":0.16677,_:"79 80 81 83 85 87 88 91 93 94 95 96 97 98 102 104 105 106 108 110"},E:{"11":0.00149,"14":0.00149,"15":0.00149,_:"0 4 5 6 7 8 9 10 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 15.5 16.2 17.6 18.0","12.1":0.00149,"13.1":0.00893,"14.1":0.01191,"15.4":0.00149,"15.6":0.01489,"16.0":0.00447,"16.1":0.00298,"16.3":0.00447,"16.4":0.00149,"16.5":0.00596,"16.6":0.02978,"17.0":0.00298,"17.1":0.00298,"17.2":0.00298,"17.3":0.00298,"17.4":0.00893,"17.5":0.10423},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00112,"5.0-5.1":0.00056,"6.0-6.1":0.00336,"7.0-7.1":0.00336,"8.1-8.4":0,"9.0-9.2":0.0028,"9.3":0.0112,"10.0-10.2":0.00224,"10.3":0.0196,"11.0-11.2":0.05152,"11.3-11.4":0.0056,"12.0-12.1":0.00392,"12.2-12.5":0.07223,"13.0-13.1":0.00112,"13.2":0.01176,"13.3":0.00392,"13.4-13.7":0.0168,"14.0-14.4":0.03864,"14.5-14.8":0.04368,"15.0-15.1":0.02184,"15.2-15.3":0.02352,"15.4":0.02688,"15.5":0.03248,"15.6-15.8":0.2979,"16.0":0.05992,"16.1":0.12711,"16.2":0.06384,"16.3":0.10695,"16.4":0.0252,"16.5":0.04536,"16.6-16.7":0.37181,"17.0":0.0336,"17.1":0.05432,"17.2":0.05264,"17.3":0.07895,"17.4":0.19767,"17.5":3.61957,"17.6":0.028,"18.0":0.03696},P:{"4":0.08296,"20":0.01037,"21":0.04148,"22":0.09333,"23":0.07259,"24":0.07259,"25":0.7881,"5.0-5.4":0.03111,"6.2-6.4":0.02074,"7.2-7.4":0.06222,_:"8.2 10.1 12.0 13.0 14.0 15.0","9.2":0.02074,"11.1-11.2":0.01037,"16.0":0.02074,"17.0":0.02074,"18.0":0.01037,"19.0":0.04148},I:{"0":0.11024,"3":0,"4":0.00001,"2.1":0,"2.2":0.00002,"2.3":0,"4.1":0.00007,"4.2-4.3":0.00004,"4.4":0,"4.4.3-4.4.4":0.00019},K:{"0":12.74233,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.0137,"11":0.02055,_:"6 7 8 9 5.5"},S:{"2.5":0.01702,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":67.3568},R:{_:"0"},M:{"0":0.07659},Q:{"14.9":0.01702},O:{"0":1.01269},H:{"0":1.58}}; 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..9f833b4 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ZW.js @@ -0,0 +1 @@ +module.exports={C:{"49":0.00274,"69":0.00274,"72":0.00274,"78":0.00274,"87":0.00821,"91":0.00274,"94":0.00274,"97":0.00274,"99":0.01643,"102":0.00274,"107":0.00274,"112":0.00274,"113":0.01095,"115":0.14238,"116":0.00274,"117":0.00274,"118":0.0219,"119":0.00274,"121":0.00821,"123":0.00548,"124":0.00274,"125":0.01095,"126":0.02738,"127":0.43808,"128":0.63248,"129":0.01369,_:"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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 88 89 90 92 93 95 96 98 100 101 103 104 105 106 108 109 110 111 114 120 122 130 131 3.5 3.6"},D:{"11":0.00274,"49":0.00274,"57":0.00274,"58":0.00274,"63":0.03559,"64":0.00821,"65":0.00274,"68":0.01369,"69":0.03012,"70":0.01095,"73":0.00274,"74":0.00821,"76":0.00821,"77":0.01643,"79":0.03833,"80":0.00274,"81":0.00548,"83":0.00548,"84":0.00821,"85":0.00274,"86":0.00821,"87":0.01369,"88":0.01095,"90":0.00821,"91":0.01095,"92":0.00821,"93":0.00821,"94":0.03559,"95":0.01095,"96":0.00274,"97":0.00274,"98":0.00821,"99":0.01643,"100":0.00821,"101":0.00274,"102":0.00548,"103":0.03012,"104":0.0219,"105":0.00548,"106":0.01095,"107":0.00548,"108":0.03833,"109":0.73652,"110":0.00548,"111":0.01917,"112":0.00274,"113":0.00821,"114":0.06297,"115":0.00548,"116":0.03012,"117":0.01095,"118":0.03833,"119":0.05476,"120":0.04928,"121":0.05476,"122":0.05476,"123":0.09035,"124":0.13416,"125":0.27106,"126":10.77677,"127":1.25127,"128":0.00548,_:"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 50 51 52 53 54 55 56 59 60 61 62 66 67 71 72 75 78 89 129 130"},F:{"36":0.00548,"40":0.00274,"46":0.00274,"74":0.00274,"79":0.00821,"83":0.04107,"85":0.00274,"86":0.01369,"95":0.03286,"104":0.00274,"107":0.00274,"108":0.00821,"109":0.09309,"110":0.01917,"111":0.49832,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 80 81 82 84 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 105 106 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.02464,"13":0.00821,"14":0.00548,"15":0.00821,"16":0.01917,"17":0.00548,"18":0.09309,"84":0.01095,"85":0.00274,"89":0.03012,"90":0.06571,"92":0.15059,"95":0.00274,"100":0.05476,"103":0.00548,"107":0.01917,"108":0.00274,"109":0.04107,"110":0.00274,"111":0.00548,"112":0.00548,"113":0.00548,"114":0.00548,"115":0.00821,"116":0.0219,"117":0.01369,"118":0.01643,"119":0.01643,"120":0.03286,"121":0.03559,"122":0.06571,"123":0.03559,"124":0.15333,"125":0.1588,"126":3.72094,"127":0.40249,_:"79 80 81 83 86 87 88 91 93 94 96 97 98 99 101 102 104 105 106"},E:{"13":0.00274,"14":0.00548,_:"0 4 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.2-15.3 17.6","12.1":0.00274,"13.1":0.00821,"14.1":0.06571,"15.1":0.00548,"15.4":0.00548,"15.5":0.00274,"15.6":0.06297,"16.0":0.00274,"16.1":0.00821,"16.2":0.00548,"16.3":0.02738,"16.4":0.0219,"16.5":0.01369,"16.6":0.0794,"17.0":0.02738,"17.1":0.01095,"17.2":0.01369,"17.3":0.01917,"17.4":0.03012,"17.5":0.42987,"18.0":0.00548},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00103,"5.0-5.1":0.00051,"6.0-6.1":0.00309,"7.0-7.1":0.00309,"8.1-8.4":0,"9.0-9.2":0.00257,"9.3":0.01028,"10.0-10.2":0.00206,"10.3":0.018,"11.0-11.2":0.04731,"11.3-11.4":0.00514,"12.0-12.1":0.0036,"12.2-12.5":0.06633,"13.0-13.1":0.00103,"13.2":0.0108,"13.3":0.0036,"13.4-13.7":0.01543,"14.0-14.4":0.03548,"14.5-14.8":0.04011,"15.0-15.1":0.02005,"15.2-15.3":0.0216,"15.4":0.02468,"15.5":0.02982,"15.6-15.8":0.27357,"16.0":0.05502,"16.1":0.11673,"16.2":0.05862,"16.3":0.09822,"16.4":0.02314,"16.5":0.04165,"16.6-16.7":0.34144,"17.0":0.03085,"17.1":0.04988,"17.2":0.04834,"17.3":0.07251,"17.4":0.18152,"17.5":3.32392,"17.6":0.02571,"18.0":0.03394},P:{"4":0.03058,"20":0.02039,"21":0.08155,"22":0.16311,"23":0.14272,"24":0.20388,"25":1.52912,_:"5.0-5.4 6.2-6.4 8.2 10.1 12.0","7.2-7.4":0.1733,"9.2":0.01019,"11.1-11.2":0.01019,"13.0":0.01019,"14.0":0.04078,"15.0":0.01019,"16.0":0.03058,"17.0":0.03058,"18.0":0.02039,"19.0":0.11214},I:{"0":0.07238,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.00004,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00012},K:{"0":6.97794,_:"10 11 12 11.1 11.5 12.1"},A:{"10":0.00313,"11":0.01877,_:"6 7 8 9 5.5"},S:{"2.5":0.04358,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":59.68612},R:{_:"0"},M:{"0":0.21789},Q:{"14.9":0.03632},O:{"0":1.02408},H:{"0":0.67}}; 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..6619bab --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/alt-af.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00495,"52":0.01238,"57":0.00743,"72":0.00248,"77":0.00248,"78":0.00743,"103":0.00248,"108":0.00248,"110":0.00248,"112":0.00248,"113":0.00248,"115":0.28474,"118":0.03219,"121":0.00248,"123":0.00248,"124":0.00743,"125":0.00743,"126":0.01733,"127":0.28969,"128":0.47044,"129":0.0099,_:"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 43 44 45 46 47 48 49 50 51 53 54 55 56 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 109 111 114 116 117 119 120 122 130 131 3.5 3.6"},D:{"11":0.00248,"43":0.00495,"45":0.0099,"47":0.00495,"49":0.00743,"50":0.00248,"52":0.00495,"56":0.00248,"58":0.04952,"59":0.00248,"64":0.00248,"65":0.00743,"66":0.00248,"68":0.00495,"69":0.00495,"70":0.0099,"72":0.00248,"73":0.00248,"74":0.00495,"75":0.00495,"76":0.00495,"77":0.00248,"78":0.00495,"79":0.03219,"80":0.00495,"81":0.01238,"83":0.01486,"84":0.00248,"85":0.00743,"86":0.0099,"87":0.03466,"88":0.01733,"89":0.00248,"90":0.00495,"91":0.01486,"92":0.00495,"93":0.02971,"94":0.00743,"95":0.01238,"96":0.00495,"97":0.00495,"98":0.01486,"99":0.01733,"100":0.00495,"101":0.00248,"102":0.00743,"103":0.04457,"104":0.00743,"105":0.00743,"106":0.01733,"107":0.01238,"108":0.01733,"109":1.54998,"110":0.01238,"111":0.01981,"112":0.01238,"113":0.0099,"114":0.02228,"115":0.00743,"116":0.0718,"117":0.0099,"118":0.01981,"119":0.03962,"120":0.05447,"121":0.03466,"122":0.07923,"123":0.07428,"124":0.12132,"125":0.27731,"126":9.99809,"127":1.30733,"128":0.00743,_:"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 44 46 48 51 53 54 55 57 60 61 62 63 67 71 129 130"},F:{"79":0.0099,"83":0.03714,"85":0.00248,"95":0.03466,"107":0.00248,"109":0.07676,"110":0.0099,"111":0.2575,_:"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 80 81 82 84 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"12":0.00495,"14":0.00248,"15":0.00248,"17":0.00248,"18":0.01733,"84":0.00495,"89":0.00495,"90":0.00743,"92":0.02971,"100":0.00743,"107":0.00248,"108":0.00248,"109":0.03714,"113":0.00248,"114":0.00495,"115":0.00248,"116":0.00248,"117":0.00495,"118":0.01238,"119":0.0099,"120":0.01238,"121":0.01733,"122":0.02971,"123":0.01733,"124":0.04209,"125":0.08914,"126":2.70627,"127":0.41102,_:"13 16 79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 101 102 103 104 105 106 110 111 112"},E:{"14":0.00495,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.4 17.6","5.1":0.00248,"13.1":0.01486,"14.1":0.01486,"15.5":0.00495,"15.6":0.04704,"16.0":0.00495,"16.1":0.00743,"16.2":0.00495,"16.3":0.01486,"16.4":0.00495,"16.5":0.00743,"16.6":0.052,"17.0":0.00495,"17.1":0.00495,"17.2":0.00743,"17.3":0.0099,"17.4":0.02228,"17.5":0.22284,"18.0":0.00248},G:{"8":0.00146,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00218,"6.0-6.1":0,"7.0-7.1":0.0131,"8.1-8.4":0,"9.0-9.2":0.00146,"9.3":0.02619,"10.0-10.2":0.00146,"10.3":0.02619,"11.0-11.2":0.02183,"11.3-11.4":0.00291,"12.0-12.1":0.008,"12.2-12.5":0.33905,"13.0-13.1":0.00509,"13.2":0.00146,"13.3":0.008,"13.4-13.7":0.03274,"14.0-14.4":0.07421,"14.5-14.8":0.08367,"15.0-15.1":0.10113,"15.2-15.3":0.04438,"15.4":0.04074,"15.5":0.06039,"15.6-15.8":0.89928,"16.0":0.1004,"16.1":0.15716,"16.2":0.08222,"16.3":0.15497,"16.4":0.04802,"16.5":0.08585,"16.6-16.7":0.6941,"17.0":0.08222,"17.1":0.09677,"17.2":0.08658,"17.3":0.13533,"17.4":0.30776,"17.5":3.34974,"17.6":0.02838,"18.0":0.06621},P:{"4":0.08378,"20":0.03142,"21":0.07331,"22":0.14662,"23":0.1152,"24":0.1152,"25":2.23073,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 12.0 14.0 15.0","7.2-7.4":0.18851,"11.1-11.2":0.02095,"13.0":0.01047,"16.0":0.03142,"17.0":0.03142,"18.0":0.02095,"19.0":0.07331},I:{"0":0.06731,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00003,"4.4":0,"4.4.3-4.4.4":0.00035},K:{"0":5.56045,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00874,"11":0.04078,_:"6 7 9 10 5.5"},S:{"2.5":0.05267,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":61.41262},R:{_:"0"},M:{"0":0.24829},Q:{_:"14.9"},O:{"0":0.39125},H:{"0":0.85}}; 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..c6930a8 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/alt-an.js @@ -0,0 +1 @@ +module.exports={C:{_:"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 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 3.5 3.6"},D:{"83":0.0128,"86":0.02561,"107":0.06402,"125":0.0128,"126":0.48975,"127":0.20486,_:"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 84 85 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 128 129 130"},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 99 100 101 102 103 104 105 106 107 108 109 110 111 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"116":0.21767,"125":0.06402,"126":1.01472,"127":0.0128,_:"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 107 108 109 110 111 112 113 114 115 117 118 119 120 121 122 123 124"},E:{_:"0 4 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 18.0","15.1":0.16645,"15.2-15.3":0.02561,"15.4":0.0128,"15.5":0.3329,"15.6":0.65621,"16.0":0.05122,"16.1":0.21767,"16.2":0.24328,"16.3":0.80985,"16.4":0.26888,"16.5":0.73303,"16.6":2.26311,"17.0":0.24328,"17.1":0.43854,"17.2":0.61779,"17.3":1.46606,"17.4":2.99614,"17.5":15.62408,"17.6":0.11524},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.02439,"14.0-14.4":0,"14.5-14.8":0.18904,"15.0-15.1":0.15245,"15.2-15.3":0.39637,"15.4":0,"15.5":0,"15.6-15.8":0.37198,"16.0":0.64029,"16.1":3.35391,"16.2":1.04886,"16.3":1.37206,"16.4":0.35978,"16.5":0.14025,"16.6-16.7":5.29918,"17.0":0.28051,"17.1":0.37198,"17.2":0.21953,"17.3":0.70127,"17.4":2.70142,"17.5":42.63128,"17.6":0.48784,"18.0":0.23172},P:{_:"4 20 21 22 23 24 25 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0"},I:{"0":0.0136,"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":0,_:"10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":8.48067},R:{_:"0"},M:{"0":0.18357},Q:{"14.9":0.12918},O:{"0":0.0136},H:{"0":0}}; 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..6e70f7a --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/alt-as.js @@ -0,0 +1 @@ +module.exports={C:{"43":0.01176,"52":0.05878,"54":0.00882,"55":0.00588,"56":0.03233,"72":0.00588,"78":0.00294,"88":0.00294,"103":0.00294,"113":0.00882,"115":0.24688,"118":0.00588,"121":0.00882,"123":0.00294,"124":0.00294,"125":0.00588,"126":0.02939,"127":0.28802,"128":0.45261,"129":0.00588,_:"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 44 45 46 47 48 49 50 51 53 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 87 89 90 91 92 93 94 95 96 97 98 99 100 101 102 104 105 106 107 108 109 110 111 112 114 116 117 119 120 122 130 131 3.5 3.6"},D:{"34":0.00588,"38":0.0147,"47":0.00294,"48":0.00588,"49":0.01763,"50":0.03233,"53":0.00882,"55":0.00294,"56":0.00294,"57":0.00294,"58":0.00294,"61":0.00882,"63":0.00294,"65":0.00294,"66":0.00882,"67":0.00294,"69":0.02939,"70":0.0147,"71":0.00294,"72":0.00294,"73":0.02645,"74":0.00882,"75":0.00588,"76":0.00294,"77":0.01763,"78":0.01176,"79":0.11462,"80":0.0147,"81":0.01176,"83":0.02351,"84":0.00882,"85":0.00882,"86":0.04409,"87":0.09993,"88":0.00588,"89":0.00882,"90":0.01763,"91":0.01763,"92":0.02939,"93":0.00588,"94":0.03233,"95":0.01176,"96":0.01176,"97":0.02645,"98":0.09405,"99":0.03527,"100":0.01763,"101":0.02645,"102":0.00882,"103":0.07054,"104":0.02939,"105":0.01176,"106":0.02057,"107":0.02351,"108":0.04409,"109":1.74283,"110":0.01763,"111":0.04409,"112":0.05584,"113":0.01763,"114":0.05878,"115":0.03527,"116":0.11462,"117":0.02645,"118":0.03233,"119":0.04996,"120":0.08229,"121":0.07054,"122":0.09699,"123":0.13519,"124":0.14695,"125":0.34092,"126":12.48193,"127":1.54004,"128":0.01763,_:"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 51 52 54 59 60 62 64 68 129 130"},F:{"36":0.00588,"40":0.00294,"46":0.02939,"83":0.02939,"95":0.01763,"102":0.0529,"109":0.0676,"110":0.00294,"111":0.12638,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 74 75 76 77 78 79 80 81 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00882,"92":0.01763,"100":0.00294,"106":0.00294,"107":0.00588,"108":0.01176,"109":0.05878,"110":0.00882,"111":0.00882,"112":0.00882,"113":0.02057,"114":0.01763,"115":0.01176,"116":0.00882,"117":0.00882,"118":0.01176,"119":0.0147,"120":0.04996,"121":0.02057,"122":0.03821,"123":0.02645,"124":0.04115,"125":0.08523,"126":2.74503,"127":0.36444,_:"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 101 102 103 104 105"},E:{"13":0.00588,"14":0.02939,"15":0.00588,_:"0 4 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00588,"13.1":0.02645,"14.1":0.06466,"15.1":0.01176,"15.2-15.3":0.00588,"15.4":0.02057,"15.5":0.03233,"15.6":0.14695,"16.0":0.01176,"16.1":0.03233,"16.2":0.02351,"16.3":0.05584,"16.4":0.0147,"16.5":0.02939,"16.6":0.16752,"17.0":0.01176,"17.1":0.02645,"17.2":0.02645,"17.3":0.03233,"17.4":0.07054,"17.5":0.92579,"17.6":0.00294,"18.0":0.00588},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00552,"5.0-5.1":0.00442,"6.0-6.1":0.00221,"7.0-7.1":0.01215,"8.1-8.4":0.0011,"9.0-9.2":0.00552,"9.3":0.02208,"10.0-10.2":0.00442,"10.3":0.05963,"11.0-11.2":0.02871,"11.3-11.4":0.00883,"12.0-12.1":0.01104,"12.2-12.5":0.20096,"13.0-13.1":0.00331,"13.2":0.01656,"13.3":0.01215,"13.4-13.7":0.06294,"14.0-14.4":0.14575,"14.5-14.8":0.14465,"15.0-15.1":0.07177,"15.2-15.3":0.07729,"15.4":0.09827,"15.5":0.106,"15.6-15.8":0.83808,"16.0":0.17115,"16.1":0.30365,"16.2":0.16894,"16.3":0.27494,"16.4":0.08502,"16.5":0.13581,"16.6-16.7":0.83035,"17.0":0.10379,"17.1":0.15679,"17.2":0.15348,"17.3":0.21752,"17.4":0.52117,"17.5":5.86432,"17.6":0.03975,"18.0":0.06515},P:{"4":0.16968,"20":0.02121,"21":0.05302,"22":0.07423,"23":0.08484,"24":0.08484,"25":1.46348,"5.0-5.4":0.02121,"6.2-6.4":0.02121,"7.2-7.4":0.05302,_:"8.2 9.2 10.1 12.0 14.0 15.0 16.0","11.1-11.2":0.0106,"13.0":0.0106,"17.0":0.03181,"18.0":0.0106,"19.0":0.02121},I:{"0":0.49311,"3":0,"4":0,"2.1":0,"2.2":0.0001,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00064},K:{"0":1.23374,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.06221,"9":0.08295,"10":0.02074,"11":0.95387,_:"6 7 5.5"},S:{"2.5":0.13414,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":53.58814},R:{_:"0"},M:{"0":0.19062},Q:{"14.9":0.68482},O:{"0":2.0474},H:{"0":0.03}}; 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..29f9c0e --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/alt-eu.js @@ -0,0 +1 @@ +module.exports={C:{"45":0.02514,"48":0.00419,"50":0.01676,"52":0.05447,"53":0.02514,"56":0.01676,"59":0.01676,"68":0.00838,"78":0.02514,"88":0.01257,"91":0.00419,"94":0.00419,"102":0.01257,"103":0.00838,"105":0.01257,"107":0.00838,"108":0.00419,"109":0.00419,"110":0.00419,"111":0.00419,"113":0.01257,"115":0.59498,"117":0.01676,"118":0.02514,"119":0.00419,"120":0.02933,"121":0.01257,"122":0.01257,"123":0.02933,"124":0.01257,"125":0.02933,"126":0.0838,"127":1.18158,"128":1.8855,"129":0.01257,_:"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 46 47 49 51 54 55 57 58 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 92 93 95 96 97 98 99 100 101 104 106 112 114 116 130 131 3.5 3.6"},D:{"43":0.00838,"45":0.01257,"47":0.00838,"48":0.01257,"49":0.02933,"51":0.00419,"52":0.01676,"63":0.00419,"66":0.06285,"70":0.00419,"73":0.01257,"74":0.01257,"75":0.01257,"76":0.01257,"77":0.01257,"78":0.05447,"79":0.14246,"80":0.01257,"81":0.01676,"83":0.03352,"84":0.00419,"85":0.01257,"86":0.00838,"87":0.0419,"88":0.01676,"89":0.01676,"90":0.00838,"91":0.03771,"92":0.0419,"93":0.03771,"94":0.05028,"95":0.00838,"96":0.03771,"97":0.01676,"98":0.01257,"99":0.02095,"100":0.00838,"101":0.00419,"102":0.02514,"103":0.10475,"104":0.17179,"105":0.01676,"106":0.05447,"107":0.03352,"108":0.05447,"109":1.29471,"110":0.02514,"111":0.03352,"112":0.02933,"113":0.10475,"114":0.13827,"115":0.02933,"116":0.23464,"117":0.15922,"118":0.18436,"119":0.06285,"120":0.12989,"121":0.10894,"122":0.14246,"123":0.1676,"124":0.30587,"125":0.90504,"126":16.32005,"127":1.85617,"128":0.00838,_:"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 44 46 50 53 54 55 56 57 58 59 60 61 62 64 65 67 68 69 71 72 129 130"},F:{"31":0.01257,"40":0.01257,"46":0.01676,"79":0.00419,"83":0.03771,"85":0.00838,"95":0.10056,"102":0.00419,"106":0.00419,"109":0.59917,"110":0.01676,"111":0.67878,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 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 80 81 82 84 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.01676,"90":0.00838,"92":0.00838,"107":0.00419,"108":0.00419,"109":0.07961,"110":0.00419,"111":0.00838,"112":0.00419,"114":0.00838,"115":0.00838,"116":0.00419,"117":0.02095,"118":0.00838,"119":0.01257,"120":0.03352,"121":0.02514,"122":0.03352,"123":0.01676,"124":0.03771,"125":0.13827,"126":5.19979,"127":0.63269,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 113"},E:{"14":0.02514,"15":0.00419,_:"0 4 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":0.01676,"12.1":0.01257,"13.1":0.05866,"14.1":0.09637,"15.1":0.01676,"15.2-15.3":0.00838,"15.4":0.02095,"15.5":0.02514,"15.6":0.27235,"16.0":0.03771,"16.1":0.03771,"16.2":0.03352,"16.3":0.07123,"16.4":0.02095,"16.5":0.03771,"16.6":0.33939,"17.0":0.02933,"17.1":0.0419,"17.2":0.05447,"17.3":0.05028,"17.4":0.1257,"17.5":1.96092,"17.6":0.01257,"18.0":0.01257},G:{"8":0.00148,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.01479,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04734,"10.0-10.2":0.01331,"10.3":0.04881,"11.0-11.2":0.21597,"11.3-11.4":0.02515,"12.0-12.1":0.00592,"12.2-12.5":0.18342,"13.0-13.1":0.00296,"13.2":0.11538,"13.3":0.00444,"13.4-13.7":0.01331,"14.0-14.4":0.03106,"14.5-14.8":0.07396,"15.0-15.1":0.02958,"15.2-15.3":0.03106,"15.4":0.02811,"15.5":0.04438,"15.6-15.8":0.68192,"16.0":0.13165,"16.1":0.30324,"16.2":0.12869,"16.3":0.2352,"16.4":0.03846,"16.5":0.08432,"16.6-16.7":0.98812,"17.0":0.06804,"17.1":0.10503,"17.2":0.10059,"17.3":0.16567,"17.4":0.43637,"17.5":10.19778,"17.6":0.07248,"18.0":0.1065},P:{"4":0.03257,"20":0.02171,"21":0.05428,"22":0.06514,"23":0.08685,"24":0.08685,"25":2.82266,_:"5.0-5.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0 18.0","6.2-6.4":0.01086,"13.0":0.01086,"17.0":0.01086,"19.0":0.02171},I:{"0":0.06934,"3":0,"4":0.00001,"2.1":0,"2.2":0.00001,"2.3":0,"4.1":0.0002,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.0001},K:{"0":0.70882,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.01383,"9":0.00461,"11":0.07374,_:"6 7 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":38.64413},R:{_:"0"},M:{"0":0.56938},Q:{"14.9":0.00581},O:{"0":0.16268},H:{"0":0}}; 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..b71bd90 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/alt-na.js @@ -0,0 +1 @@ +module.exports={C:{"11":0.07333,"38":0.00917,"43":0.00458,"44":0.0275,"45":0.00917,"52":0.01833,"72":0.00458,"78":0.0275,"83":0.00458,"88":0.00917,"94":0.01833,"102":0.00917,"103":0.00917,"105":0.00458,"107":0.00458,"108":0.00458,"112":0.00458,"113":0.00458,"115":0.34373,"117":0.00458,"118":0.27956,"120":0.00458,"121":0.00917,"122":0.00917,"123":0.09166,"124":0.01833,"125":0.03666,"126":0.055,"127":0.81577,"128":1.39323,"129":0.00458,_:"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 39 40 41 42 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 84 85 86 87 89 90 91 92 93 95 96 97 98 99 100 101 104 106 109 110 111 114 116 119 130 131 3.5 3.6"},D:{"47":0.00917,"48":0.07791,"49":0.03208,"50":0.00458,"52":0.00458,"56":0.03666,"66":0.02292,"67":0.00458,"69":0.00917,"74":0.00917,"75":0.01375,"76":0.01375,"78":0.00917,"79":0.09624,"80":0.02292,"81":0.05041,"83":0.08249,"84":0.00917,"85":0.03208,"86":0.01833,"87":0.055,"88":0.0275,"89":0.01375,"90":0.00917,"91":0.08708,"92":0.00917,"93":0.04125,"94":0.03666,"95":0.0275,"96":0.00917,"97":0.01833,"98":0.01833,"99":0.0275,"100":0.04583,"101":0.0275,"102":0.01833,"103":0.2979,"104":0.06416,"105":0.03666,"106":0.04125,"107":0.06416,"108":0.08249,"109":0.7287,"110":0.04583,"111":0.05041,"112":0.04583,"113":0.09624,"114":0.13749,"115":0.04583,"116":0.21998,"117":0.26123,"118":0.07333,"119":0.10541,"120":0.15124,"121":0.31623,"122":0.4033,"123":0.2979,"124":0.52705,"125":1.70946,"126":16.63171,"127":1.7782,"128":0.0275,"129":0.00458,_:"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 51 53 54 55 57 58 59 60 61 62 63 64 65 68 70 71 72 73 77 130"},F:{"83":0.01375,"95":0.0275,"109":0.36206,"110":0.01375,"111":0.2979,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00458,"92":0.00458,"107":0.00458,"108":0.00458,"109":0.07791,"110":0.00458,"112":0.00917,"114":0.00458,"117":0.00458,"119":0.00917,"120":0.01833,"121":0.01375,"122":0.0275,"123":0.01833,"124":0.04583,"125":0.20624,"126":5.76541,"127":0.7562,_:"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 111 113 115 116 118"},E:{"8":0.00458,"9":0.01375,"13":0.00917,"14":0.05041,"15":0.01375,_:"0 4 5 6 7 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.00458,"11.1":0.00458,"12.1":0.02292,"13.1":0.16041,"14.1":0.14666,"15.1":0.07333,"15.2-15.3":0.01833,"15.4":0.03208,"15.5":0.04583,"15.6":0.42164,"16.0":0.06416,"16.1":0.07791,"16.2":0.06875,"16.3":0.27956,"16.4":0.055,"16.5":0.09166,"16.6":0.63704,"17.0":0.04125,"17.1":0.08708,"17.2":0.09166,"17.3":0.09624,"17.4":0.30706,"17.5":3.87722,"17.6":0.02292,"18.0":0.02292},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.01827,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.01827,"9.3":0.03132,"10.0-10.2":0.00522,"10.3":0.03915,"11.0-11.2":0.21923,"11.3-11.4":0.01827,"12.0-12.1":0.01044,"12.2-12.5":0.14094,"13.0-13.1":0.00261,"13.2":0.00261,"13.3":0.00783,"13.4-13.7":0.02871,"14.0-14.4":0.07308,"14.5-14.8":0.10179,"15.0-15.1":0.04437,"15.2-15.3":0.05742,"15.4":0.05742,"15.5":0.08352,"15.6-15.8":0.74121,"16.0":0.16964,"16.1":0.49849,"16.2":0.22967,"16.3":0.38366,"16.4":0.06003,"16.5":0.12267,"16.6-16.7":1.41979,"17.0":0.08091,"17.1":0.16442,"17.2":0.16181,"17.3":0.25577,"17.4":0.67858,"17.5":19.80139,"17.6":0.17486,"18.0":0.18008},P:{"4":0.01131,"21":0.03393,"22":0.02262,"23":0.03393,"24":0.05655,"25":1.01783,_:"20 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0 19.0","17.0":0.01131},I:{"0":0.09164,"3":0,"4":0.00003,"2.1":0,"2.2":0.00005,"2.3":0,"4.1":0.00001,"4.2-4.3":0.00019,"4.4":0,"4.4.3-4.4.4":0.00012},K:{"0":0.29794,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.0106,"9":0.03179,"11":0.12718,_:"6 7 10 5.5"},S:{"2.5":0.00542,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":26.5768},R:{_:"0"},M:{"0":0.60129},Q:{"14.9":0.02167},O:{"0":0.07584},H:{"0":0}}; 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..191db41 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/alt-oc.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00479,"52":0.01436,"54":0.00957,"78":0.01915,"83":0.00479,"88":0.01915,"101":0.00479,"102":0.00479,"103":0.00957,"113":0.00479,"114":0.01436,"115":0.22978,"120":0.00957,"121":0.00479,"122":0.00479,"123":0.00957,"124":0.00957,"125":0.02394,"126":0.05744,"127":0.73241,"128":1.19196,"129":0.00957,_:"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 43 44 45 46 47 48 49 50 51 53 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 87 89 90 91 92 93 94 95 96 97 98 99 100 104 105 106 107 108 109 110 111 112 116 117 118 119 130 131 3.5 3.6"},D:{"25":0.01915,"34":0.00957,"38":0.07181,"39":0.01436,"40":0.01436,"41":0.01436,"42":0.01436,"43":0.01436,"44":0.01436,"45":0.01436,"46":0.01436,"47":0.01436,"48":0.01436,"49":0.02394,"50":0.01436,"51":0.01915,"52":0.01915,"53":0.01436,"54":0.01436,"55":0.01436,"56":0.01915,"57":0.01436,"58":0.01436,"59":0.02872,"60":0.01436,"66":0.00479,"74":0.00957,"78":0.00479,"79":0.08617,"80":0.00479,"81":0.05744,"83":0.00479,"85":0.00957,"86":0.00479,"87":0.07659,"88":0.0383,"89":0.00479,"90":0.01915,"91":0.00957,"92":0.00957,"93":0.02872,"94":0.03351,"96":0.00957,"97":0.01915,"98":0.01915,"99":0.02394,"100":0.00957,"101":0.00479,"102":0.00957,"103":0.15318,"104":0.05744,"105":0.04787,"106":0.01436,"107":0.01915,"108":0.02872,"109":0.70369,"110":0.01436,"111":0.0383,"112":0.01915,"113":0.13404,"114":0.16276,"115":0.08138,"116":0.30158,"117":0.02872,"118":0.02394,"119":0.08138,"120":0.17233,"121":0.13404,"122":0.21542,"123":0.18191,"124":0.4404,"125":1.3643,"126":20.92876,"127":2.00575,"128":0.02394,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 35 36 37 61 62 63 64 65 67 68 69 70 71 72 73 75 76 77 84 95 129 130"},F:{"46":0.02394,"83":0.00479,"95":0.00957,"109":0.38775,"110":0.00957,"111":0.24892,_:"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 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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"18":0.00479,"109":0.06702,"110":0.00479,"111":0.00479,"112":0.00479,"113":0.01436,"114":0.01915,"115":0.00479,"116":0.00479,"117":0.00479,"118":0.00957,"119":0.01915,"120":0.02394,"121":0.01915,"122":0.03351,"123":0.01915,"124":0.06223,"125":0.20584,"126":6.30448,"127":0.76113,_:"12 13 14 15 16 17 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 108"},E:{"9":0.01436,"13":0.01436,"14":0.07181,"15":0.01436,_:"0 4 5 6 7 8 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.02394,"13.1":0.12925,"14.1":0.21542,"15.1":0.02394,"15.2-15.3":0.02872,"15.4":0.04308,"15.5":0.08138,"15.6":0.58401,"16.0":0.06223,"16.1":0.11968,"16.2":0.08138,"16.3":0.20105,"16.4":0.05266,"16.5":0.10053,"16.6":0.74677,"17.0":0.03351,"17.1":0.10531,"17.2":0.09095,"17.3":0.12925,"17.4":0.28243,"17.5":4.23171,"17.6":0.01915,"18.0":0.01915},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00383,"6.0-6.1":0.00575,"7.0-7.1":0.00383,"8.1-8.4":0.00192,"9.0-9.2":0.00192,"9.3":0.04599,"10.0-10.2":0.00767,"10.3":0.08815,"11.0-11.2":1.97762,"11.3-11.4":0.02108,"12.0-12.1":0.01533,"12.2-12.5":0.29319,"13.0-13.1":0.00192,"13.2":0.00192,"13.3":0.00767,"13.4-13.7":0.023,"14.0-14.4":0.06132,"14.5-14.8":0.07282,"15.0-15.1":0.04024,"15.2-15.3":0.04599,"15.4":0.04791,"15.5":0.07282,"15.6-15.8":0.75885,"16.0":0.13797,"16.1":0.40051,"16.2":0.16289,"16.3":0.30278,"16.4":0.04791,"16.5":0.09965,"16.6-16.7":1.12487,"17.0":0.05174,"17.1":0.11881,"17.2":0.11306,"17.3":0.17055,"17.4":0.435,"17.5":12.2164,"17.6":0.06899,"18.0":0.09581},P:{"4":0.20221,"20":0.01123,"21":0.05617,"22":0.04494,"23":0.0674,"24":0.07864,"25":2.10074,"5.0-5.4":0.0337,"6.2-6.4":0.01123,_:"7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 17.0 18.0","19.0":0.01123},I:{"0":0.08297,"3":0.00001,"4":0.00006,"2.1":0.00001,"2.2":0.00005,"2.3":0.00004,"4.1":0.00003,"4.2-4.3":0.00006,"4.4":0,"4.4.3-4.4.4":0.00015},K:{"0":0.13033,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.06893,"9":0.01723,"11":0.08617,_:"6 7 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":29.61148},R:{_:"0"},M:{"0":0.42225},Q:{"14.9":0.01043},O:{"0":0.06256},H:{"0":0}}; 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..30e9fc5 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/alt-sa.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.06338,"52":0.01811,"59":0.01358,"78":0.00905,"88":0.01811,"91":0.01358,"102":0.00453,"103":0.00905,"113":0.00905,"114":0.00453,"115":0.27162,"120":0.00905,"121":0.00453,"122":0.00453,"123":0.00905,"124":0.00453,"125":0.01358,"126":0.03169,"127":0.61115,"128":0.79675,"129":0.00905,_:"2 3 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 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 92 93 94 95 96 97 98 99 100 101 104 105 106 107 108 109 110 111 112 116 117 118 119 130 131 3.5 3.6"},D:{"38":0.00905,"47":0.00453,"49":0.01358,"51":0.00905,"55":0.00453,"66":0.05432,"67":0.00905,"71":0.00905,"75":0.00905,"78":0.00453,"79":0.0498,"81":0.00905,"85":0.00453,"86":0.00905,"87":0.0498,"88":0.01358,"89":0.00453,"90":0.00453,"91":0.28067,"92":0.00905,"93":0.0498,"94":0.01358,"95":0.00453,"96":0.01811,"97":0.01358,"98":0.00905,"99":0.00905,"100":0.00905,"101":0.00453,"102":0.01358,"103":0.05432,"104":0.01358,"105":0.01811,"106":0.02264,"107":0.02716,"108":0.02716,"109":3.91133,"110":0.02264,"111":0.01811,"112":0.02264,"113":0.01358,"114":0.0498,"115":0.01811,"116":0.09054,"117":0.01358,"118":0.02716,"119":0.05432,"120":0.09959,"121":0.07696,"122":0.17203,"123":0.10865,"124":0.20824,"125":0.48892,"126":23.20993,"127":2.92897,"128":0.00905,_:"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 53 54 56 57 58 59 60 61 62 63 64 65 68 69 70 72 73 74 76 77 80 83 84 129 130"},F:{"83":0.01358,"95":0.04527,"109":1.37168,"110":0.00905,"111":0.72885,_:"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 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 102 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"15":0.01811,"17":0.00905,"92":0.01358,"109":0.04527,"119":0.00453,"120":0.00905,"121":0.00905,"122":0.00905,"123":0.00905,"124":0.03169,"125":0.08601,"126":3.69403,"127":0.48892,_:"12 13 14 16 18 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 108 110 111 112 113 114 115 116 117 118"},E:{"14":0.00453,_:"0 4 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 12.1 15.1 15.2-15.3 15.4","5.1":0.01358,"11.1":0.01358,"13.1":0.01358,"14.1":0.01811,"15.5":0.00453,"15.6":0.0498,"16.0":0.00453,"16.1":0.00905,"16.2":0.00453,"16.3":0.01358,"16.4":0.00453,"16.5":0.00905,"16.6":0.05432,"17.0":0.00905,"17.1":0.01358,"17.2":0.01811,"17.3":0.01358,"17.4":0.03622,"17.5":0.41196,"17.6":0.00453,"18.0":0.00905},G:{"8":0,"3.2":0,"4.0-4.1":0.00065,"4.2-4.3":0,"5.0-5.1":0.00326,"6.0-6.1":0.00131,"7.0-7.1":0.00392,"8.1-8.4":0,"9.0-9.2":0.00065,"9.3":0.01567,"10.0-10.2":0,"10.3":0.01436,"11.0-11.2":0.06203,"11.3-11.4":0.01371,"12.0-12.1":0.00131,"12.2-12.5":0.04375,"13.0-13.1":0.00065,"13.2":0,"13.3":0.00131,"13.4-13.7":0.00326,"14.0-14.4":0.00784,"14.5-14.8":0.02612,"15.0-15.1":0.00718,"15.2-15.3":0.00849,"15.4":0.01045,"15.5":0.01632,"15.6-15.8":0.34344,"16.0":0.0568,"16.1":0.12863,"16.2":0.05028,"16.3":0.10708,"16.4":0.0111,"16.5":0.03003,"16.6-16.7":0.52626,"17.0":0.02285,"17.1":0.04309,"17.2":0.03461,"17.3":0.07052,"17.4":0.18739,"17.5":4.57899,"17.6":0.03003,"18.0":0.06203},P:{"4":0.03193,"20":0.01064,"21":0.04257,"22":0.04257,"23":0.05322,"24":0.06386,"25":1.58586,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1 11.1-11.2 12.0 13.0 14.0 15.0 16.0 18.0","7.2-7.4":0.12772,"17.0":0.03193,"19.0":0.01064},I:{"0":0.03276,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00001,"4.4":0,"4.4.3-4.4.4":0.00006},K:{"0":0.2846,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.00978,"11":0.35691,_:"6 7 9 10 5.5"},S:{_:"2.5 3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":46.59089},R:{_:"0"},M:{"0":0.1423},Q:{_:"14.9"},O:{"0":0.04378},H:{"0":0}}; 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..e0d9214 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/alt-ww.js @@ -0,0 +1 @@ +module.exports={C:{"11":0.01806,"43":0.00722,"44":0.00722,"45":0.00722,"50":0.00361,"52":0.04334,"53":0.00361,"54":0.00722,"56":0.01806,"59":0.00361,"72":0.00361,"78":0.01445,"88":0.00722,"94":0.00361,"102":0.00722,"103":0.00722,"105":0.00361,"107":0.00361,"108":0.00361,"113":0.00722,"115":0.35398,"117":0.00361,"118":0.07224,"120":0.00722,"121":0.01084,"122":0.00722,"123":0.0289,"124":0.01084,"125":0.01806,"126":0.04696,"127":0.59598,"128":0.96079,"129":0.00722,_:"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 46 47 48 49 51 55 57 58 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 87 89 90 91 92 93 95 96 97 98 99 100 101 104 106 109 110 111 112 114 116 119 130 131 3.5 3.6"},D:{"38":0.01084,"45":0.00361,"47":0.00722,"48":0.02528,"49":0.02167,"50":0.01806,"52":0.00361,"53":0.00722,"56":0.01084,"58":0.00722,"61":0.00361,"66":0.02167,"67":0.00361,"69":0.01445,"70":0.01084,"71":0.00361,"73":0.01445,"74":0.01084,"75":0.00722,"76":0.00722,"77":0.01084,"78":0.01806,"79":0.10836,"80":0.01445,"81":0.02167,"83":0.03612,"84":0.00722,"85":0.01445,"86":0.0289,"87":0.07224,"88":0.01445,"89":0.01084,"90":0.01445,"91":0.04696,"92":0.02528,"93":0.02167,"94":0.03251,"95":0.01445,"96":0.01445,"97":0.02167,"98":0.05418,"99":0.0289,"100":0.02167,"101":0.02167,"102":0.01445,"103":0.12642,"104":0.0614,"105":0.01806,"106":0.03251,"107":0.03251,"108":0.05057,"109":1.48092,"110":0.02528,"111":0.04334,"112":0.04334,"113":0.05418,"114":0.0903,"115":0.03612,"116":0.16254,"117":0.10475,"118":0.06863,"119":0.06502,"120":0.10836,"121":0.13364,"122":0.17699,"123":0.17338,"124":0.26729,"125":0.77297,"126":14.52385,"127":1.69764,"128":0.01806,_:"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 46 51 54 55 57 59 60 62 63 64 65 68 72 129 130"},F:{"36":0.00361,"40":0.00361,"46":0.01806,"83":0.0289,"95":0.04334,"102":0.0289,"109":0.29257,"110":0.01084,"111":0.32147,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 74 75 76 77 78 79 80 81 82 84 85 86 87 88 89 90 91 92 93 94 96 97 98 99 100 101 103 104 105 106 107 108 9.5-9.6 10.0-10.1 10.5 10.6 11.1 11.5 11.6 12.1"},B:{"17":0.00361,"18":0.00722,"92":0.01445,"107":0.00361,"108":0.00722,"109":0.06502,"110":0.00722,"111":0.00722,"112":0.00722,"113":0.01445,"114":0.01445,"115":0.00722,"116":0.00722,"117":0.01084,"118":0.00722,"119":0.01084,"120":0.03612,"121":0.01806,"122":0.03251,"123":0.02167,"124":0.03973,"125":0.12281,"126":3.9732,"127":0.51652,_:"12 13 14 15 16 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"},E:{"9":0.00361,"13":0.00722,"14":0.03251,"15":0.00722,_:"0 4 5 6 7 8 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00722,"12.1":0.01084,"13.1":0.06502,"14.1":0.08669,"15.1":0.02528,"15.2-15.3":0.01084,"15.4":0.02167,"15.5":0.03251,"15.6":0.23117,"16.0":0.0289,"16.1":0.04334,"16.2":0.03612,"16.3":0.10836,"16.4":0.02528,"16.5":0.04696,"16.6":0.30341,"17.0":0.02167,"17.1":0.04334,"17.2":0.04696,"17.3":0.05057,"17.4":0.13364,"17.5":1.78072,"17.6":0.01084,"18.0":0.01084},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00297,"5.0-5.1":0.00148,"6.0-6.1":0.0089,"7.0-7.1":0.0089,"8.1-8.4":0,"9.0-9.2":0.00741,"9.3":0.02965,"10.0-10.2":0.00593,"10.3":0.05189,"11.0-11.2":0.1364,"11.3-11.4":0.01483,"12.0-12.1":0.01038,"12.2-12.5":0.19126,"13.0-13.1":0.00297,"13.2":0.03114,"13.3":0.01038,"13.4-13.7":0.04448,"14.0-14.4":0.1023,"14.5-14.8":0.11565,"15.0-15.1":0.05782,"15.2-15.3":0.06227,"15.4":0.07117,"15.5":0.08599,"15.6-15.8":0.78877,"16.0":0.15864,"16.1":0.33656,"16.2":0.16902,"16.3":0.28319,"16.4":0.06672,"16.5":0.1201,"16.6-16.7":0.98448,"17.0":0.08896,"17.1":0.14382,"17.2":0.13937,"17.3":0.20905,"17.4":0.52338,"17.5":9.58388,"17.6":0.07413,"18.0":0.09786},P:{"4":0.09753,"20":0.02167,"21":0.04335,"22":0.06502,"23":0.07585,"24":0.07585,"25":1.67963,"5.0-5.4":0.01084,"6.2-6.4":0.01084,"7.2-7.4":0.03251,_:"8.2 9.2 10.1 11.1-11.2 12.0 14.0 15.0 16.0","13.0":0.01084,"17.0":0.02167,"18.0":0.01084,"19.0":0.02167},I:{"0":0.27372,"3":0,"4":0.00003,"2.1":0,"2.2":0.00005,"2.3":0,"4.1":0.00016,"4.2-4.3":0.00011,"4.4":0,"4.4.3-4.4.4":0.00047},K:{"0":1.14456,_:"10 11 12 11.1 11.5 12.1"},A:{"8":0.04659,"9":0.06213,"11":0.51254,_:"6 7 10 5.5"},S:{"2.5":0.07027,_:"3.0-3.1"},J:{_:"7 10"},N:{_:"10 11"},L:{"0":44.47098},R:{_:"0"},M:{"0":0.35773},Q:{"14.9":0.33856},O:{"0":1.06041},H:{"0":0.05}}; 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..6690e99 --- /dev/null +++ b/node_modules/caniuse-lite/dist/unpacker/feature.js @@ -0,0 +1,52 @@ +'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, + shown: packed.D + } + 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..9c36d4c --- /dev/null +++ b/node_modules/caniuse-lite/package.json @@ -0,0 +1,34 @@ +{ + "name": "caniuse-lite", + "version": "1.0.30001653", + "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/chalk/index.d.ts b/node_modules/chalk/index.d.ts new file mode 100644 index 0000000..9cd88f3 --- /dev/null +++ b/node_modules/chalk/index.d.ts @@ -0,0 +1,415 @@ +/** +Basic foreground colors. + +[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) +*/ +declare type ForegroundColor = + | 'black' + | 'red' + | 'green' + | 'yellow' + | 'blue' + | 'magenta' + | 'cyan' + | 'white' + | 'gray' + | 'grey' + | 'blackBright' + | 'redBright' + | 'greenBright' + | 'yellowBright' + | 'blueBright' + | 'magentaBright' + | 'cyanBright' + | 'whiteBright'; + +/** +Basic background colors. + +[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) +*/ +declare type BackgroundColor = + | 'bgBlack' + | 'bgRed' + | 'bgGreen' + | 'bgYellow' + | 'bgBlue' + | 'bgMagenta' + | 'bgCyan' + | 'bgWhite' + | 'bgGray' + | 'bgGrey' + | 'bgBlackBright' + | 'bgRedBright' + | 'bgGreenBright' + | 'bgYellowBright' + | 'bgBlueBright' + | 'bgMagentaBright' + | 'bgCyanBright' + | 'bgWhiteBright'; + +/** +Basic colors. + +[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) +*/ +declare type Color = ForegroundColor | BackgroundColor; + +declare type Modifiers = + | 'reset' + | 'bold' + | 'dim' + | 'italic' + | 'underline' + | 'inverse' + | 'hidden' + | 'strikethrough' + | 'visible'; + +declare namespace chalk { + /** + Levels: + - `0` - All colors disabled. + - `1` - Basic 16 colors support. + - `2` - ANSI 256 colors support. + - `3` - Truecolor 16 million colors support. + */ + type Level = 0 | 1 | 2 | 3; + + interface Options { + /** + Specify the color support for Chalk. + + By default, color support is automatically detected based on the environment. + + Levels: + - `0` - All colors disabled. + - `1` - Basic 16 colors support. + - `2` - ANSI 256 colors support. + - `3` - Truecolor 16 million colors support. + */ + level?: Level; + } + + /** + Return a new Chalk instance. + */ + type Instance = new (options?: Options) => Chalk; + + /** + Detect whether the terminal supports color. + */ + interface ColorSupport { + /** + The color level used by Chalk. + */ + level: Level; + + /** + Return whether Chalk supports basic 16 colors. + */ + hasBasic: boolean; + + /** + Return whether Chalk supports ANSI 256 colors. + */ + has256: boolean; + + /** + Return whether Chalk supports Truecolor 16 million colors. + */ + has16m: boolean; + } + + interface ChalkFunction { + /** + Use a template string. + + @remarks Template literals are unsupported for nested calls (see [issue #341](https://github.com/chalk/chalk/issues/341)) + + @example + ``` + import chalk = require('chalk'); + + log(chalk` + CPU: {red ${cpu.totalPercent}%} + RAM: {green ${ram.used / ram.total * 100}%} + DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} + `); + ``` + + @example + ``` + import chalk = require('chalk'); + + log(chalk.red.bgBlack`2 + 3 = {bold ${2 + 3}}`) + ``` + */ + (text: TemplateStringsArray, ...placeholders: unknown[]): string; + + (...text: unknown[]): string; + } + + interface Chalk extends ChalkFunction { + /** + Return a new Chalk instance. + */ + Instance: Instance; + + /** + The color support for Chalk. + + By default, color support is automatically detected based on the environment. + + Levels: + - `0` - All colors disabled. + - `1` - Basic 16 colors support. + - `2` - ANSI 256 colors support. + - `3` - Truecolor 16 million colors support. + */ + level: Level; + + /** + Use HEX value to set text color. + + @param color - Hexadecimal value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.hex('#DEADED'); + ``` + */ + hex(color: string): Chalk; + + /** + Use keyword color value to set text color. + + @param color - Keyword value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.keyword('orange'); + ``` + */ + keyword(color: string): Chalk; + + /** + Use RGB values to set text color. + */ + rgb(red: number, green: number, blue: number): Chalk; + + /** + Use HSL values to set text color. + */ + hsl(hue: number, saturation: number, lightness: number): Chalk; + + /** + Use HSV values to set text color. + */ + hsv(hue: number, saturation: number, value: number): Chalk; + + /** + Use HWB values to set text color. + */ + hwb(hue: number, whiteness: number, blackness: number): Chalk; + + /** + Use a [Select/Set Graphic Rendition](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters) (SGR) [color code number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit) to set text color. + + 30 <= code && code < 38 || 90 <= code && code < 98 + For example, 31 for red, 91 for redBright. + */ + ansi(code: number): Chalk; + + /** + Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set text color. + */ + ansi256(index: number): Chalk; + + /** + Use HEX value to set background color. + + @param color - Hexadecimal value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.bgHex('#DEADED'); + ``` + */ + bgHex(color: string): Chalk; + + /** + Use keyword color value to set background color. + + @param color - Keyword value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.bgKeyword('orange'); + ``` + */ + bgKeyword(color: string): Chalk; + + /** + Use RGB values to set background color. + */ + bgRgb(red: number, green: number, blue: number): Chalk; + + /** + Use HSL values to set background color. + */ + bgHsl(hue: number, saturation: number, lightness: number): Chalk; + + /** + Use HSV values to set background color. + */ + bgHsv(hue: number, saturation: number, value: number): Chalk; + + /** + Use HWB values to set background color. + */ + bgHwb(hue: number, whiteness: number, blackness: number): Chalk; + + /** + Use a [Select/Set Graphic Rendition](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters) (SGR) [color code number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit) to set background color. + + 30 <= code && code < 38 || 90 <= code && code < 98 + For example, 31 for red, 91 for redBright. + Use the foreground code, not the background code (for example, not 41, nor 101). + */ + bgAnsi(code: number): Chalk; + + /** + Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set background color. + */ + bgAnsi256(index: number): Chalk; + + /** + Modifier: Resets the current color chain. + */ + readonly reset: Chalk; + + /** + Modifier: Make text bold. + */ + readonly bold: Chalk; + + /** + Modifier: Emitting only a small amount of light. + */ + readonly dim: Chalk; + + /** + Modifier: Make text italic. (Not widely supported) + */ + readonly italic: Chalk; + + /** + Modifier: Make text underline. (Not widely supported) + */ + readonly underline: Chalk; + + /** + Modifier: Inverse background and foreground colors. + */ + readonly inverse: Chalk; + + /** + Modifier: Prints the text, but makes it invisible. + */ + readonly hidden: Chalk; + + /** + Modifier: Puts a horizontal line through the center of the text. (Not widely supported) + */ + readonly strikethrough: Chalk; + + /** + Modifier: Prints the text only when Chalk has a color support level > 0. + Can be useful for things that are purely cosmetic. + */ + readonly visible: Chalk; + + readonly black: Chalk; + readonly red: Chalk; + readonly green: Chalk; + readonly yellow: Chalk; + readonly blue: Chalk; + readonly magenta: Chalk; + readonly cyan: Chalk; + readonly white: Chalk; + + /* + Alias for `blackBright`. + */ + readonly gray: Chalk; + + /* + Alias for `blackBright`. + */ + readonly grey: Chalk; + + readonly blackBright: Chalk; + readonly redBright: Chalk; + readonly greenBright: Chalk; + readonly yellowBright: Chalk; + readonly blueBright: Chalk; + readonly magentaBright: Chalk; + readonly cyanBright: Chalk; + readonly whiteBright: Chalk; + + readonly bgBlack: Chalk; + readonly bgRed: Chalk; + readonly bgGreen: Chalk; + readonly bgYellow: Chalk; + readonly bgBlue: Chalk; + readonly bgMagenta: Chalk; + readonly bgCyan: Chalk; + readonly bgWhite: Chalk; + + /* + Alias for `bgBlackBright`. + */ + readonly bgGray: Chalk; + + /* + Alias for `bgBlackBright`. + */ + readonly bgGrey: Chalk; + + readonly bgBlackBright: Chalk; + readonly bgRedBright: Chalk; + readonly bgGreenBright: Chalk; + readonly bgYellowBright: Chalk; + readonly bgBlueBright: Chalk; + readonly bgMagentaBright: Chalk; + readonly bgCyanBright: Chalk; + readonly bgWhiteBright: Chalk; + } +} + +/** +Main Chalk object that allows to chain styles together. +Call the last one as a method with a string argument. +Order doesn't matter, and later styles take precedent in case of a conflict. +This simply means that `chalk.red.yellow.green` is equivalent to `chalk.green`. +*/ +declare const chalk: chalk.Chalk & chalk.ChalkFunction & { + supportsColor: chalk.ColorSupport | false; + Level: chalk.Level; + Color: Color; + ForegroundColor: ForegroundColor; + BackgroundColor: BackgroundColor; + Modifiers: Modifiers; + stderr: chalk.Chalk & {supportsColor: chalk.ColorSupport | false}; +}; + +export = chalk; diff --git a/node_modules/chalk/license b/node_modules/chalk/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/chalk/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/chalk/package.json b/node_modules/chalk/package.json new file mode 100644 index 0000000..47c23f2 --- /dev/null +++ b/node_modules/chalk/package.json @@ -0,0 +1,68 @@ +{ + "name": "chalk", + "version": "4.1.2", + "description": "Terminal string styling done right", + "license": "MIT", + "repository": "chalk/chalk", + "funding": "https://github.com/chalk/chalk?sponsor=1", + "main": "source", + "engines": { + "node": ">=10" + }, + "scripts": { + "test": "xo && nyc ava && tsd", + "bench": "matcha benchmark.js" + }, + "files": [ + "source", + "index.d.ts" + ], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "devDependencies": { + "ava": "^2.4.0", + "coveralls": "^3.0.7", + "execa": "^4.0.0", + "import-fresh": "^3.1.0", + "matcha": "^0.7.0", + "nyc": "^15.0.0", + "resolve-from": "^5.0.0", + "tsd": "^0.7.4", + "xo": "^0.28.2" + }, + "xo": { + "rules": { + "unicorn/prefer-string-slice": "off", + "unicorn/prefer-includes": "off", + "@typescript-eslint/member-ordering": "off", + "no-redeclare": "off", + "unicorn/string-content": "off", + "unicorn/better-regex": "off" + } + } +} diff --git a/node_modules/chalk/readme.md b/node_modules/chalk/readme.md new file mode 100644 index 0000000..a055d21 --- /dev/null +++ b/node_modules/chalk/readme.md @@ -0,0 +1,341 @@ +

      +
      +
      + Chalk +
      +
      +
      +

      + +> Terminal string styling done right + +[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk) [![Coverage Status](https://coveralls.io/repos/github/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/github/chalk/chalk?branch=master) [![npm dependents](https://badgen.net/npm/dependents/chalk)](https://www.npmjs.com/package/chalk?activeTab=dependents) [![Downloads](https://badgen.net/npm/dt/chalk)](https://www.npmjs.com/package/chalk) [![](https://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/xojs/xo) ![TypeScript-ready](https://img.shields.io/npm/types/chalk.svg) [![run on repl.it](https://repl.it/badge/github/chalk/chalk)](https://repl.it/github/chalk/chalk) + + + +
      + +--- + + + +--- + +
      + +## Highlights + +- Expressive API +- Highly performant +- Ability to nest styles +- [256/Truecolor color support](#256-and-truecolor-color-support) +- Auto-detects color support +- Doesn't extend `String.prototype` +- Clean and focused +- Actively maintained +- [Used by ~50,000 packages](https://www.npmjs.com/browse/depended/chalk) as of January 1, 2020 + +## Install + +```console +$ npm install chalk +``` + +## Usage + +```js +const chalk = require('chalk'); + +console.log(chalk.blue('Hello world!')); +``` + +Chalk comes with an easy to use composable API where you just chain and nest the styles you want. + +```js +const chalk = require('chalk'); +const log = console.log; + +// Combine styled and normal strings +log(chalk.blue('Hello') + ' World' + chalk.red('!')); + +// Compose multiple styles using the chainable API +log(chalk.blue.bgRed.bold('Hello world!')); + +// Pass in multiple arguments +log(chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz')); + +// Nest styles +log(chalk.red('Hello', chalk.underline.bgBlue('world') + '!')); + +// Nest styles of the same type even (color, underline, background) +log(chalk.green( + 'I am a green line ' + + chalk.blue.underline.bold('with a blue substring') + + ' that becomes green again!' +)); + +// ES2015 template literal +log(` +CPU: ${chalk.red('90%')} +RAM: ${chalk.green('40%')} +DISK: ${chalk.yellow('70%')} +`); + +// ES2015 tagged template literal +log(chalk` +CPU: {red ${cpu.totalPercent}%} +RAM: {green ${ram.used / ram.total * 100}%} +DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} +`); + +// Use RGB colors in terminal emulators that support it. +log(chalk.keyword('orange')('Yay for orange colored text!')); +log(chalk.rgb(123, 45, 67).underline('Underlined reddish color')); +log(chalk.hex('#DEADED').bold('Bold gray!')); +``` + +Easily define your own themes: + +```js +const chalk = require('chalk'); + +const error = chalk.bold.red; +const warning = chalk.keyword('orange'); + +console.log(error('Error!')); +console.log(warning('Warning!')); +``` + +Take advantage of console.log [string substitution](https://nodejs.org/docs/latest/api/console.html#console_console_log_data_args): + +```js +const name = 'Sindre'; +console.log(chalk.green('Hello %s'), name); +//=> 'Hello Sindre' +``` + +## API + +### chalk.` + +
      +
      <
      +
      +
       
      +
       
      +
       
      +
      +
       
      +
      + ?
      +
      >
      +
      + + + + + + + + + + + + +
      +
      +
      Link to ARC home page.
      + + +
      +
      + +
      + + + + +
      + +
      + + +

      County Economic Status in Appalachia, FY 2004

      + + + (Effective October 1, 2003 through September 30, 2004) +

      Each fiscal year the Appalachian Regional Commission classifies +the Region’s counties into one of four economic levels based on a +comparison of county and national rates for three economic indicators: +three-year average unemployment rates, per-capita market income rates, +and poverty rates. See the methodology for a description of each +economic level.

      + + + +
      + +
      + This maps shows ARCŐs economic classification of the 410 counties in the Appalachian Region for FY 2004 (October 1, 2003 through September 30, 2004). Ninety-one counties are classified as distressed, 289 are classified as transitional, 22 are classified as competitive, and 8 are classified as attainment. For a list of county classifications, see the downloadable Excel file. +
      + + + +
      +
      + + + +
      +
      +
      +
      + + +
      + + + + + + + + + + +
       
      + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/node_modules/needle/test/files/tomcat_charset.html b/node_modules/needle/test/files/tomcat_charset.html new file mode 100644 index 0000000..f849f7c --- /dev/null +++ b/node_modules/needle/test/files/tomcat_charset.html @@ -0,0 +1,342 @@ + + + + + + + + + + + + + + +Tomcat¤ÇUTF-8/EUC¤ň»Č¤¦ + + + + + + +
      The Wayback Machine - https://web.archive.org/web/20181003202907/http://www.nina.jp:80/server/slackware/webapp/tomcat_charset.html
      + + +

      Tomcat¤ÇUTF-8/EUC-JP¤ň»Č¤¦

      +

      +[ĄµˇĽĄĐ¤ÎĽÂ¸łĽĽ Slackware] +

      +

      +şîŔ® : 2004/12/31 +

      +
      +

      +"ĄµˇĽĄĐ¤ÎĽÂ¸łĽĽ"¤Î¸ˇş÷ + + + +

      +
      +
      + +

      +Tomcat¤«¤éĘÖ¤µ¤ě¤ëĄ­ĄăĄéĄŻĄżĄ»ĄĂĄČ¤ÎľđĘó¤Ďˇ˘httpd.conf¤ÎĄëˇĽĄČ¤Ç»ŘÄꤷ¤żAddDefaultCharset¤ÎĂͤČƱ¤¸¤Ë¤Ę¤ë¤é¤·¤¤ˇŁ +DirectoryĄÇĄŁĄěĄŻĄĆĄŁĄÖ¤ÎĂć¤Ç»ŘÄꤷ¤żAddDefaultCharset¤Ď̵»ë¤µ¤ě¤ë¤Ă¤Ý¤¤ˇŁ +¤Ä¤¤¤Ç¤Ëˇ˘metaĄżĄ°¤â̵»ë¤µ¤ě¤ë¤ß¤ż¤¤ˇŁ +ˇĘ<---¤ł¤Î¤Ř¤óˇ˘¸ĺ˝Ň¤ÎSetCharacterEncodingFilter¤¬¤Á¤ă¤ó¤ČĆ°şî¤·¤Ę¤¤¤ł¤Č¤â¤˘¤ęˇ˘Ľ«ż®¤Ę¤·...ˇË +

      + +

      +¤¦¤Á¤ÎWEBĄµˇĽĄĐ¤ĎĄëˇĽĄČ¤ÎAddDefaultCharset¤ÇEUC-JP»ŘÄę¤ň¤·¤Ć¤Ş¤ęˇ˘ĄłĄóĄĆĄ­ĄąĄČĄŃĄą°Ę˛Ľ¤ĎUTF-8¤Ë¤·¤ż¤¤¤Î¤Çˇ˘¤Ę¤ó¤é¤«¤ÎÂĐşö¤ň¤·¤Ę¤¤¤Čʸ»ú˛˝¤±¤·¤Ć¤·¤Ţ¤¦ˇŁ +

      + +

      ĄµˇĽĄÖĄěĄĂĄČ¤Îľěąç

      +

      +response.setContentType¤ÇĄ­ĄăĄéĄŻĄżĄ»ĄĂĄČ¤ň»ŘÄꤹ¤ëˇŁ +EUC-JP¤ň»ČÍѤą¤ë¤Ę¤éˇ˘response.setContentType("text/html; charset=EUC-JP")ˇŁ +UTF-8¤ň»ČÍѤą¤ë¤Ę¤éˇ˘response.setContentType("text/html; charset=UTF-8")ˇŁ +

      +
      +# HelloWorld.java
      +
      +import java.io.*;
      +import java.text.*;
      +import java.util.*;
      +import javax.servlet.*;
      +import javax.servlet.http.*;
      +
      +public class HelloWorld extends HttpServlet {
      +
      +    public void doGet(HttpServletRequest request,
      +                      HttpServletResponse response)
      +        throws IOException, ServletException
      +    {
      +        response.setContentType("text/html; charset=EUC-JP");
      +        PrintWriter out = response.getWriter();
      +
      +        out.println("<html>");
      +        out.println("<head>");
      +        out.println("<title>HelloWorld</title>");
      +        out.println("</head>");
      +        out.println("<body>");
      +        out.println("<p>");
      +        out.println("¤ł¤ó¤Ë¤Á¤ĎŔ¤ł¦");
      +        out.println("</p>");
      +        out.println("</body>");
      +        out.println("</html>");
      +    }
      +}
      +
      +

      +JAVA¤ĎUTF-8¤Ç˝čÍý¤ňąÔ¤¦¤Î¤Çˇ˘¤˝¤ě°Ęł°¤ÎEUC-JP¤Ę¤É¤ň»ČÍѤą¤ëľěąç¤Ďˇ˘ĄłĄóĄŃĄ¤Ąë¤ą¤ë¤Č¤­¤Ë-encoding¤ň¤Ä¤±¤ë¤ł¤ČˇŁ +

      +
      +# javac -encoding EUC-JP -classpath .:$CATALINA_HOME/common/lib/servlet-api.jar HelloWorld.java
      +
      + +

      JSP¤Îľěąç

      +

      +ĄÇĄŁĄěĄŻĄĆĄŁĄÖ¤ÇĄ­ĄăĄéĄŻĄżĄ»ĄĂĄČ¤ň»ŘÄꤹ¤ëˇŁ +EUC-JP¤ň»ČÍѤą¤ë¤Ę¤éˇ˘<%@ page contentType="text/html; charset=EUC-JP" %>ˇŁ +UTF-8¤ň»ČÍѤą¤ë¤Ę¤éˇ˘<%@ page contentType="text/html; charset=UTF-8" %>ˇŁ +

      +
      +# hello.jsp
      +
      +<%@ page contentType="text/html; charset=EUC-JP" %>
      +<html>
      +<head>
      +<title>HelloWorld</title>
      +</head>
      +<body>
      +<p>
      +<%
      +    out.println("¤ł¤ó¤Ë¤Á¤ĎŔ¤ł¦");
      +%>
      +</p>
      +</body>
      +</html>
      +
      + +

      ŔĹĹŞĄłĄóĄĆĄóĄÄˇĘHTMLˇË¤Îľěąç

      +

      +workers2.propetiesĄŐĄˇĄ¤Ąë¤Çˇ˘ĄłĄóĄĆĄ­ĄąĄČĄŃĄą°Ę˛Ľ¤Î¤ą¤Ů¤Ć¤ÎĄŐĄˇĄ¤Ąë¤ňTomcat¤ËĹϤą¤č¤¦ŔßÄꤷ¤Ć¤¤¤ëľěąçˇ˘ŔĹĹŞĄłĄóĄĆĄóĄÄ¤Ë¤Ä¤¤¤Ć¤â¤ł¤ÎĄÚˇĽĄ¸¤ÎŔčƬ¤Ë˝ń¤¤¤ż¤č¤¦¤ĘĄ­ĄăĄéĄŻĄżĄ»ĄĂĄČľđĘó¤¬ĘÖ¤µ¤ě¤ëˇŁ +HTML¤ÎmetaĄżĄ°¤Çcharset¤ň»ŘÄꤷ¤Ć¤â̵»ë¤µ¤ě¤ë¤Î¤Çˇ˘ĄÉĄ­ĄĺĄáĄóĄČĄëˇĽĄČ¤ČĄłĄóĄĆĄ­ĄąĄČĄŃĄą¤Ç°Ű¤Ę¤ëĄ­ĄăĄéĄŻĄżĄ»ĄĂĄČ¤ň»ČÍѤ·¤ż¤¤¤Č¤­¤ĎĂí°Ő¤¬É¬ÍסŁ +

      +
      +# workers2.properties
      +
      +[uri:/hoge/*]    <---¤ą¤Ů¤Ć¤ÎĄŐĄˇĄ¤Ąë¤ňTomcat¤Ë˝čÍý¤µ¤»¤ë
      +
      +

      +ÄĚľď¤ĎSetCharacterEncodingFilter¤ňÍřÍѤą¤ë¤Î¤¬ľďĹĺĽęĂʤΤ褦¤Ŕ¤¬ˇ˘¤É¤¦¤ä¤Ă¤Ć¤âcharset¤ňĘÖ¤·¤Ć¤Ż¤ě¤Ę¤¤ˇŁ +¤·¤«¤ż¤Ę¤¤¤Î¤Çˇ˘web.xml¤Î<mime-mapping>¤Çcharset¤ČłČÄĄ»Ň¤Î´ŘϢÉŐ¤±¤ň»ŘÄꤷ¤żˇŁ +

      +
      +<!--ˇĘĄłĄóĄĆĄ­ĄąĄČĄŃĄąˇË/WEB-INF/web.xml-->
      +
      +<?xml version="1.0" encoding="ISO-8859-1"?>
      +<!DOCTYPE web-app
      +     PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
      +    "http://java.sun.com/dtd/web-app_2_3.dtd">
      +<web-app>
      +  <mime-mapping>
      +    <extension>html</extension>
      +    <mime-type>text/html; charset=UTF-8</mime-type>
      +  </mime-mapping>
      +</web-app>
      +
      +

      +¤¤¤Á¤Ş¤¦ˇ˘SetCharacterEncodingFilter¤ňÍřÍѤą¤ëĘýˡ¤ň˝ń¤¤¤Ć¤Ş¤Ż¤Čˇ˘$CATALINA_HOME/webapps/jsp-examples/WEB-INF/classes/filtersĄÇĄŁĄěĄŻĄČĄę¤Ë¤˘¤ëSetCharacterEncodingFilter.java¤ňĄłĄóĄŃĄ¤Ąë¤·¤Ćˇ˘ +

      +
      +# cd $CATALINA_HOME/webapps/jsp-examples/WEB-INF/classes
      +# javac -classpath .:$CATALINA_HOME/common/lib/servlet-api.jar filters.SetCharacterEncodingFilter.java
      +
      +

      +Ŕ¸Ŕ®¤µ¤ě¤żĄŻĄéĄąĄŐĄˇĄ¤Ąë¤ňˇĘĄłĄóĄĆĄ­ĄąĄČĄŃĄąˇË/WEB-INF/classes/filtersĄÇĄŁĄěĄŻĄČĄę¤ËĄłĄÔˇĽ¤·¤Ćˇ˘ˇĘĄłĄóĄĆĄ­ĄąĄČĄŃĄąˇË/WEB-INF/web.xml¤ËĄŐĄŁĄëĄż¤ÎŔßÄę¤ňµ­˝Ň¤ą¤ë¤Ŕ¤±¤é¤·¤¤ˇŁ +

      +
      +<!--ˇĘĄłĄóĄĆĄ­ĄąĄČĄŃĄąˇË/WEB-INF/web.xml-->
      +
      +<?xml version="1.0" encoding="ISO-8859-1"?>
      +<!DOCTYPE web-app
      +     PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
      +    "http://java.sun.com/dtd/web-app_2_3.dtd">
      +<web-app>
      +  <filter>
      +      <filter-name>Set Character Encoding</filter-name>
      +      <filter-class>filters.SetCharacterEncodingFilter</filter-class>
      +      <init-param>
      +          <param-name>encoding</param-name>
      +          <param-value>UTF-8</param-value>
      +      </init-param>
      +  </filter>
      +  <filter-mapping>
      +      <filter-name>Set Character Encoding</filter-name>
      +      <url-pattern>/*</url-pattern>
      +  </filter-mapping>
      +</web-app>
      +
      +

      +¤¦¤ŕ¤ŕ... +

      + +
      +

      +[ĄµˇĽĄĐ¤ÎĽÂ¸łĽĽ Slackware] +

      + + + + + \ No newline at end of file diff --git a/node_modules/needle/test/headers_spec.js b/node_modules/needle/test/headers_spec.js new file mode 100644 index 0000000..5ae6259 --- /dev/null +++ b/node_modules/needle/test/headers_spec.js @@ -0,0 +1,320 @@ +var http = require('http'), + helpers = require('./helpers'), + should = require('should'); + +var port = 54321; + + +describe('request headers', function() { + + var needle, + server, + existing_sockets, + original_defaultMaxSockets; + + before(function(done) { + setTimeout(function() { + existing_sockets = get_active_sockets().length; + server = helpers.server({ port: port }, done); + }, 100); + }) + + after(function(done) { + server.close(done); + }) + + function send_request(opts, cb) { + needle.get('http://localhost:' + port, opts, cb); + } + + function get_active_sockets() { + var handles = process._getActiveHandles(); + + return handles.filter(function(el) { + if (el.constructor.name.toString() == 'Socket') { + return el.destroyed !== true; + } + }) + } + + describe('old node versions (<0.11.4) with persistent keep-alive connections', function() { + + // emulate old node behaviour + before(function() { + delete require.cache[require.resolve('..')] // in case it was already loaded + original_defaultMaxSockets = http.Agent.defaultMaxSockets; + http.Agent.defaultMaxSockets = 5; + needle = require('..'); + }) + + after(function() { + http.Agent.defaultMaxSockets = original_defaultMaxSockets; + delete require.cache[require.resolve('..')] + }) + + describe('default options', function() { + + it('sends a Connection: close header', function(done) { + send_request({}, function(err, resp) { + resp.body.headers['connection'].should.eql('close'); + done(); + }) + }) + + it('no open sockets remain after request', function(done) { + send_request({}, function(err, resp) { + setTimeout(function() { + get_active_sockets().length.should.eql(existing_sockets); + done(); + }, 10) + }); + }) + + }) + + describe('passing connection: close', function() { + + it('sends a Connection: close header', function(done) { + send_request({ connection: 'close' }, function(err, resp) { + resp.body.headers['connection'].should.eql('close'); + done(); + }) + }) + + it('no open sockets remain after request', function(done) { + send_request({ connection: 'close' }, function(err, resp) { + setTimeout(function() { + get_active_sockets().length.should.eql(existing_sockets); + done(); + }, 10) + }); + }) + + }) + + describe('passing connection: keep-alive', function() { + + it('sends a Connection: keep-alive header (using options.headers.connection)', function(done) { + send_request({ headers: { connection: 'keep-alive' }}, function(err, resp) { + resp.body.headers['connection'].should.eql('keep-alive'); + done(); + }) + }) + + it('sends a Connection: keep-alive header (using options.connection)', function(done) { + send_request({ connection: 'keep-alive' }, function(err, resp) { + resp.body.headers['connection'].should.eql('keep-alive'); + done(); + }) + }) + + it('one open socket remain after request', function(done) { + send_request({ connection: 'keep-alive' }, function(err, resp) { + get_active_sockets().length.should.eql(existing_sockets + 1); + done(); + }); + }) + + }) + + }) + + describe('new node versions with smarter connection disposing', function() { + + before(function() { + delete require.cache[require.resolve('..')] + original_defaultMaxSockets = http.Agent.defaultMaxSockets; + http.Agent.defaultMaxSockets = Infinity; + needle = require('..'); + }) + + after(function() { + http.Agent.defaultMaxSockets = original_defaultMaxSockets; + delete require.cache[require.resolve('..')] + }) + + describe('default options', function() { + + var node_major_ver = process.version.split('.')[0].replace('v', ''); + + if (parseInt(node_major_ver) >= 4) { + + it('sets Connection header to close (> v4)', function(done) { + send_request({}, function(err, resp) { + resp.body.headers['connection'].should.eql('close'); + done() + }) + }) + + } else { + + it('sets Connection header to keep-alive (< v4)', function(done) { + send_request({}, function(err, resp) { + resp.body.headers['connection'].should.eql('keep-alive'); + done(); + }) + }) + + } + + if (parseInt(node_major_ver) >= 14) { + + // TODO: figure out why this happens + it('two open sockets remains after request (>= v14)', function(done) { + send_request({}, function(err, resp) { + get_active_sockets().length.should.eql(existing_sockets + 2); + done(); + }); + }) + + } else if (parseInt(node_major_ver) >= 8 || parseInt(node_major_ver) == 0) { + + it('one open socket remains after request (> v8 && v0.10)', function(done) { + send_request({}, function(err, resp) { + get_active_sockets().length.should.eql(existing_sockets + 1); + done(); + }); + }) + + } else { + + it('no open sockets remain after request (> v0.10 && < v8)', function(done) { + send_request({}, function(err, resp) { + get_active_sockets().length.should.eql(existing_sockets); + done(); + }); + }) + + } + + }) + + describe('passing connection: close', function() { + + it('sends a Connection: close header', function(done) { + send_request({ connection: 'close' }, function(err, resp) { + resp.body.headers['connection'].should.eql('close'); + done(); + }) + }) + + it('no open sockets remain after request', function(done) { + send_request({ connection: 'close' }, function(err, resp) { + setTimeout(function() { + get_active_sockets().length.should.eql(existing_sockets); + done(); + }, 10); + }); + }) + + }) + + describe('passing connection: keep-alive', function() { + + it('sends a Connection: keep-alive header (using options.headers.connection)', function(done) { + send_request({ headers: { connection: 'keep-alive' }}, function(err, resp) { + resp.body.headers['connection'].should.eql('keep-alive'); + done(); + }) + }) + + it('sends a Connection: keep-alive header (using options.connection)', function(done) { + send_request({ connection: 'keep-alive' }, function(err, resp) { + resp.body.headers['connection'].should.eql('keep-alive'); + done(); + }) + }) + + it('one open socket remain after request', function(done) { + send_request({ connection: 'keep-alive' }, function(err, resp) { + get_active_sockets().length.should.eql(existing_sockets + 1); + done(); + }); + }) + + }) + + }) + + describe('using shared keep-alive agent', function() { + + before(function() { + needle.defaults({ agent: http.Agent({ keepAlive: true }) }) + }) + + after(function() { + needle.defaults().agent.destroy(); // close existing connections + needle.defaults({ agent: null }); // and reset default value + }) + + describe('default options', function() { + + it('sends a Connection: keep-alive header', function(done) { + send_request({}, function(err, resp) { + resp.body.headers['connection'].should.eql('keep-alive'); + done(); + }) + }) + + it('one open socket remain after request', function(done) { + send_request({ connection: 'keep-alive' }, function(err, resp) { + setTimeout(function() { + get_active_sockets().length.should.eql(existing_sockets + 1); + done(); + }, 10); + }); + }) + + }) + + describe('passing connection: close', function() { + + it('sends a Connection: close header', function(done) { + send_request({ connection: 'close' }, function(err, resp) { + resp.body.headers['connection'].should.eql('close'); + done(); + }) + }) + + it('no open sockets remain after request', function(done) { + send_request({ connection: 'close' }, function(err, resp) { + setTimeout(function() { + get_active_sockets().length.should.eql(existing_sockets); + done(); + }, 10) + }); + }) + + }) + + describe('passing connection: keep-alive', function() { + + it('sends a Connection: keep-alive header (using options.headers.connection)', function(done) { + send_request({ headers: { connection: 'keep-alive' }}, function(err, resp) { + resp.body.headers['connection'].should.eql('keep-alive'); + done(); + }) + }) + + it('sends a Connection: keep-alive header (using options.connection)', function(done) { + send_request({ connection: 'keep-alive' }, function(err, resp) { + resp.body.headers['connection'].should.eql('keep-alive'); + done(); + }) + }) + + it('one open socket remain after request', function(done) { + send_request({ connection: 'keep-alive' }, function(err, resp) { + setTimeout(function() { + get_active_sockets().length.should.eql(existing_sockets + 1); + done(); + }, 10); + }) + }) + + }) + + + }) + +}) diff --git a/node_modules/needle/test/helpers.js b/node_modules/needle/test/helpers.js new file mode 100644 index 0000000..613ff57 --- /dev/null +++ b/node_modules/needle/test/helpers.js @@ -0,0 +1,74 @@ +var fs = require('fs'); + +var protocols = { + http : require('http'), + https : require('https') +} + +var keys = { + cert : fs.readFileSync(__dirname + '/keys/ssl.cert'), + key : fs.readFileSync(__dirname + '/keys/ssl.key') +} + +var helpers = {}; + +helpers.server = function(opts, cb) { + + var defaults = { + code : 200, + headers : {'Content-Type': 'application/json'} + } + + var mirror_response = function(req) { + return JSON.stringify({ + headers: req.headers, + body: req.body + }) + } + + var get = function(what) { + if (!opts[what]) + return defaults[what]; + + if (typeof opts[what] == 'function') + return opts[what](); // set them at runtime + else + return opts[what]; + } + + var finish = function(req, res) { + if (opts.handler) return opts.handler(req, res); + + res.writeHead(get('code'), get('headers')); + res.end(opts.response || mirror_response(req)); + } + + var handler = function(req, res) { + + req.setEncoding('utf8'); // get as string + req.body = ''; + req.on('data', function(str) { req.body += str }) + req.socket.on('error', function(e) { + // res.writeHead(500, {'Content-Type': 'text/plain'}); + // res.end('Error: ' + e.message); + }) + + setTimeout(function(){ + finish(req, res); + }, opts.wait || 0); + + }; + + var protocol = opts.protocol || 'http'; + var server; + + if (protocol == 'https') + server = protocols[protocol].createServer(keys, handler); + else + server = protocols[protocol].createServer(handler); + + server.listen(opts.port, cb); + return server; +} + +module.exports = helpers; \ No newline at end of file diff --git a/node_modules/needle/test/long_string_spec.js b/node_modules/needle/test/long_string_spec.js new file mode 100644 index 0000000..4f2fa73 --- /dev/null +++ b/node_modules/needle/test/long_string_spec.js @@ -0,0 +1,43 @@ +var needle = require('../'), + should = require('should'); + +describe('when posting a very long string', function() { + + this.timeout(20000); + + function get_string(length) { + var str = ''; + for (var i = 0; i < length; i++) { + str += 'x'; + } + return str; + } + + var major_version = process.version.split('.')[0]; + + it("shouldn't throw an EPIPE error out of nowhere", function(done) { + + // for some reason this test fails in Github Actions with Node v8.x + // although in my Linux box passes without issues + if (process.env.CI && (major_version == 'v8' || major_version == 'v6')) { + return done(); + } + + var error; + + function finished() { + setTimeout(function() { + should.not.exist(error); + done(); + }, 300); + } + + try { + needle.post('https://google.com', { data: get_string(Math.pow(2, 20)) }, finished) + } catch(e) { + error = e; + } + + }) + +}) diff --git a/node_modules/needle/test/mimetype.js b/node_modules/needle/test/mimetype.js new file mode 100644 index 0000000..dbeaf29 --- /dev/null +++ b/node_modules/needle/test/mimetype.js @@ -0,0 +1,81 @@ +var should = require('should'), + needle = require('./../'), + helpers = require('./helpers'); + +describe('receiving json and xml content as string', function() { + + this.timeout(5000); + + ["text/plain", "application/json", "application/ld+json", "application/xml", "image/svg+xml"].forEach(function(mimetype, offset){ + + describe('Given content-type: "'+mimetype+'"', function () { + + var server, port = 54330+offset; + + before(function(done) { + server = helpers.server({ + port: port, + response: 'content', + headers: { 'Content-Type': mimetype } + }, done); + }) + + after(function(done) { + server.close(done) + }) + + describe('with parse = false', function () { + it('delivers by default as string', function (done) { + + needle.get('http://localhost:' + port, { parse: false }, function (err, resp) { + + resp.body.should.be.a.String; + (typeof resp.body).should.eql('string') + done(); + }) + + }) + + }) + + }) + + }); + + ["application/octet-stream", "image/png"].forEach(function(mimetype, offset){ + + describe('Given content-type: "'+mimetype+'"', function () { + + var server, port = 54340+offset; + + before(function(done) { + server = helpers.server({ + port: port, + response: 'content', + headers: { 'Content-Type': mimetype } + }, done); + }) + + after(function(done) { + server.close(done) + }) + + describe('with parse = false', function () { + it('delivers by default as Buffer', function (done) { + + needle.get('http://localhost:' + port, { parse: false }, function (err, resp) { + + resp.body.should.be.a.Buffer; + (resp.body instanceof Buffer).should.eql(true) + done(); + }) + + }) + + }) + + }) + + }) + +}) diff --git a/node_modules/needle/test/output_spec.js b/node_modules/needle/test/output_spec.js new file mode 100644 index 0000000..ecda05c --- /dev/null +++ b/node_modules/needle/test/output_spec.js @@ -0,0 +1,263 @@ +// this lets us run tests in ancient node versions (v0.10.x) +if (process.version.split('.')[0] == 'v0' && !Buffer.from) { + Buffer.from = function(args) { + return new Buffer(args); + } +} + +var should = require('should'), + needle = require('./../'), + http = require('http'), + sinon = require('sinon'), + stream = require('stream'), + fs = require('fs'), + port = 11111, + server; + +describe('with output option', function() { + + var server, handler, file = '/tmp/foobar.out'; + + function send_request_cb(where, cb) { + var url = 'http://localhost:' + port + '/whatever.file'; + return needle.get(url, { output: where }, cb); + } + + function send_request_stream(where, cb) { + var url = 'http://localhost:' + port + '/whatever.file'; + var stream = needle.get(url, { output: where }); + stream.on('end', cb); + } + + // this will only work in UNICES + function get_open_file_descriptors() { + var list = fs.readdirSync('/proc/self/fd'); + return list.length; + } + + var send_request = send_request_cb; + + before(function(){ + server = http.createServer(function(req, res) { + handler(req, res); + }).listen(port); + }); + + after(function() { + server.close(); + }) + + beforeEach(function() { + try { fs.unlinkSync(file) } catch(e) { }; + }) + + describe('and a 404 response', function() { + + before(function() { + handler = function(req, res) { + res.writeHead(404, {'Content-Type': 'text/plain' }); + res.end(); + } + }) + + it('doesnt attempt to write a file', function(done) { + var spy = sinon.spy(fs, 'createWriteStream'); + send_request(file, function(err, resp) { + resp.statusCode.should.eql(404); + spy.called.should.eql(false); + spy.restore(); + done(); + }) + }) + + it('doesnt actually write a file', function(done) { + send_request(file, function(err, resp) { + resp.statusCode.should.eql(404); + fs.existsSync(file).should.eql(false); + done(); + }) + }) + + }) + + describe('and a 200 response', function() { + + describe('for an empty response', function() { + + before(function() { + handler = function(req, res) { + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end(); + } + }) + + it('uses a writableStream', function(done) { + var spy = sinon.spy(fs, 'createWriteStream'); + send_request(file, function(err, resp) { + resp.statusCode.should.eql(200); + spy.called.should.eql(true); + spy.restore(); + done(); + }) + }) + + it('writes a file', function(done) { + fs.existsSync(file).should.eql(false); + send_request(file, function(err, resp) { + fs.existsSync(file).should.eql(true); + done(); + }) + }) + + it('file is zero bytes in length', function(done) { + send_request(file, function(err, resp) { + fs.statSync(file).size.should.equal(0); + done(); + }) + }) + + if (process.platform == 'linux') { + it('closes the file descriptor', function(done) { + var open_descriptors = get_open_file_descriptors(); + send_request(file + Math.random(), function(err, resp) { + var current_descriptors = get_open_file_descriptors(); + open_descriptors.should.eql(current_descriptors); + done() + }) + }) + } + + }) + + describe('for a JSON response', function() { + + before(function() { + handler = function(req, res) { + res.writeHead(200, { 'Content-Type': 'application/javascript' }); + res.end(JSON.stringify({foo: 'bar'})); + } + }) + + it('uses a writableStream', function(done) { + var spy = sinon.spy(fs, 'createWriteStream'); + send_request(file, function(err, resp) { + resp.statusCode.should.eql(200); + spy.called.should.eql(true); + spy.restore(); + done(); + }) + }) + + it('writes a file', function(done) { + fs.existsSync(file).should.eql(false); + send_request(file, function(err, resp) { + fs.existsSync(file).should.eql(true); + done(); + }) + }) + + it('file size equals response length', function(done) { + send_request(file, function(err, resp) { + fs.statSync(file).size.should.equal(resp.bytes); + done(); + }) + }) + + it('response pipeline is honoured (JSON is decoded by default)', function(done) { + send_request_stream(file, function(err, resp) { + // we need to wait a bit since writing to config.output + // happens independently of needle's callback logic. + setTimeout(function() { + fs.readFileSync(file).toString().should.eql('{\"foo\":\"bar\"}'); + done(); + }, 20); + }) + }) + + if (process.platform == 'linux') { + it('closes the file descriptor', function(done) { + var open_descriptors = get_open_file_descriptors(); + send_request(file + Math.random(), function(err, resp) { + var current_descriptors = get_open_file_descriptors(); + open_descriptors.should.eql(current_descriptors); + done() + }) + }) + } + + }) + + describe('for a binary file', function() { + + var pixel = Buffer.from("base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs", "base64"); + + before(function() { + handler = function(req, res) { + res.writeHead(200, { 'Content-Type': 'application/octet-stream', 'Transfer-Encoding': 'chunked' }); + res.write(pixel.slice(0, 10)); + res.write(pixel.slice(10, 20)); + res.write(pixel.slice(20, 30)); + res.write(pixel.slice(30)); + res.end(); + } + }) + + it('uses a writableStream', function(done) { + var spy = sinon.spy(fs, 'createWriteStream'); + send_request(file, function(err, resp) { + resp.statusCode.should.eql(200); + spy.called.should.eql(true); + spy.restore(); + done(); + }) + }) + + it('writes a file', function(done) { + fs.existsSync(file).should.eql(false); + send_request(file, function(err, resp) { + fs.existsSync(file).should.eql(true); + done(); + }) + }) + + it('file size equals response length', function(done) { + send_request(file, function(err, resp) { + fs.statSync(file).size.should.equal(resp.bytes); + done(); + }) + }) + + it('file is equal to original buffer', function(done) { + send_request(file, function(err, resp) { + // we need to wait a bit since writing to config.output + // happens independently of needle's callback logic. + setTimeout(function() { + fs.readFileSync(file).should.eql(pixel); + done(); + }, 20); + }) + }) + + it('returns the data in resp.body too', function(done) { + send_request(file, function(err, resp) { + resp.body.should.eql(pixel); + done(); + }) + }) + + if (process.platform == 'linux') { + it('closes the file descriptor', function(done) { + var open_descriptors = get_open_file_descriptors(); + send_request(file + Math.random(), function(err, resp) { + var current_descriptors = get_open_file_descriptors(); + open_descriptors.should.eql(current_descriptors); + done() + }) + }) + } + + }) + + }) + +}) diff --git a/node_modules/needle/test/parsing_spec.js b/node_modules/needle/test/parsing_spec.js new file mode 100644 index 0000000..bb8000b --- /dev/null +++ b/node_modules/needle/test/parsing_spec.js @@ -0,0 +1,588 @@ +var should = require('should'), + needle = require('./../'), + http = require('http'), + port = 11111, + server; + +describe('parsing', function(){ + + describe('when response is an JSON string', function(){ + + var json_string = '{"foo":"bar"}'; + + before(function(done){ + server = http.createServer(function(req, res) { + res.setHeader('Content-Type', 'application/json'); + res.end(json_string); + }).listen(port, done); + }); + + after(function(done){ + server.close(done); + }) + + describe('and parse option is not passed', function() { + + describe('with default parse_response', function() { + + before(function() { + needle.defaults().parse_response.should.eql('all') + }) + + it('should return object', function(done){ + needle.get('localhost:' + port, function(err, response, body){ + should.ifError(err); + body.should.have.property('foo', 'bar'); + done(); + }) + }) + + }) + + describe('and default parse_response is set to false', function() { + + it('does NOT return object when disabled using .defaults', function(done){ + needle.defaults({ parse_response: false }) + + needle.get('localhost:' + port, function(err, response, body) { + should.not.exist(err); + body.should.be.an.instanceof(String) + body.toString().should.eql('{"foo":"bar"}'); + + needle.defaults({ parse_response: 'all' }); + done(); + }) + }) + + + }) + + }) + + describe('and parse option is true', function() { + + describe('and JSON is valid', function() { + + it('should return object', function(done) { + needle.get('localhost:' + port, { parse: true }, function(err, response, body){ + should.not.exist(err); + body.should.have.property('foo', 'bar') + done(); + }) + }) + + it('should have a .parser = json property', function(done) { + needle.get('localhost:' + port, { parse: true }, function(err, resp) { + should.not.exist(err); + resp.parser.should.eql('json'); + done(); + }) + }) + + }); + + describe('and response is empty', function() { + + var old_json_string; + + before(function() { + old_json_string = json_string; + json_string = ""; + }); + + after(function() { + json_string = old_json_string; + }); + + it('should return an empty string', function(done) { + needle.get('localhost:' + port, { parse: true }, function(err, resp) { + should.not.exist(err); + resp.body.should.equal(''); + done(); + }) + }) + + }) + + describe('and JSON is invalid', function() { + + var old_json_string; + + before(function() { + old_json_string = json_string; + json_string = "this is not going to work"; + }); + + after(function() { + json_string = old_json_string; + }); + + it('does not throw', function(done) { + (function(){ + needle.get('localhost:' + port, { parse: true }, done); + }).should.not.throw(); + }); + + it('does NOT return object', function(done) { + needle.get('localhost:' + port, { parse: true }, function(err, response, body) { + should.not.exist(err); + body.should.be.a.String; + body.toString().should.eql('this is not going to work'); + done(); + }) + }) + + }); + + }) + + describe('and parse option is false', function() { + + it('does NOT return object', function(done){ + needle.get('localhost:' + port, { parse: false }, function(err, response, body) { + should.not.exist(err); + body.should.be.an.instanceof(String) + body.toString().should.eql('{"foo":"bar"}'); + done(); + }) + }) + + it('should NOT have a .parser = json property', function(done) { + needle.get('localhost:' + port, { parse: false }, function(err, resp) { + should.not.exist(err); + should.not.exist(resp.parser); + done(); + }) + }) + + }) + + describe('and parse option is "xml"', function() { + + it('does NOT return object', function(done){ + needle.get('localhost:' + port, { parse: 'xml' }, function(err, response, body) { + should.not.exist(err); + body.should.be.an.instanceof(String) + body.toString().should.eql('{"foo":"bar"}'); + done(); + }) + }) + + it('should NOT have a .parser = json property', function(done) { + needle.get('localhost:' + port, { parse: 'xml' }, function(err, resp) { + should.not.exist(err); + should.not.exist(resp.parser); + done(); + }) + }) + + }) + + }); + + describe('when response is JSON \'false\'', function(){ + + var json_string = 'false'; + + before(function(done){ + server = http.createServer(function(req, res) { + res.setHeader('Content-Type', 'application/json'); + res.end(json_string); + }).listen(port, done); + }); + + after(function(done){ + server.close(done); + }) + + describe('and parse option is not passed', function() { + + it('should return object', function(done){ + needle.get('localhost:' + port, function(err, response, body){ + should.ifError(err); + body.should.equal(false); + done(); + }) + }) + + }) + + describe('and parse option is true', function() { + + describe('and JSON is valid', function() { + + it('should return object', function(done){ + needle.get('localhost:' + port, { parse: true }, function(err, response, body){ + should.not.exist(err); + body.should.equal(false) + done(); + }) + }) + + }); + + describe('and response is empty', function() { + + var old_json_string; + + before(function() { + old_json_string = json_string; + json_string = ""; + }); + + after(function() { + json_string = old_json_string; + }); + + it('should return an empty string', function(done) { + needle.get('localhost:' + port, { parse: true }, function(err, resp) { + should.not.exist(err); + resp.body.should.equal(''); + done(); + }) + }) + + }) + + describe('and JSON is invalid', function() { + + var old_json_string; + + before(function() { + old_json_string = json_string; + json_string = "this is not going to work"; + }); + + after(function() { + json_string = old_json_string; + }); + + it('does not throw', function(done) { + (function(){ + needle.get('localhost:' + port, { parse: true }, done); + }).should.not.throw(); + }); + + it('does NOT return object', function(done) { + needle.get('localhost:' + port, { parse: true }, function(err, response, body) { + should.not.exist(err); + body.should.be.a.String; + body.toString().should.eql('this is not going to work'); + done(); + }) + }) + + }); + + }) + + describe('and parse option is false', function() { + + it('does NOT return object', function(done){ + needle.get('localhost:' + port, { parse: false }, function(err, response, body) { + should.not.exist(err); + body.should.be.an.instanceof(String) + body.toString().should.eql('false'); + done(); + }) + }) + + }) + + describe('and parse option is "xml"', function() { + + it('does NOT return object', function(done){ + needle.get('localhost:' + port, { parse: 'xml' }, function(err, response, body) { + should.not.exist(err); + body.should.be.an.instanceof(String) + body.toString().should.eql('false'); + done(); + }) + }) + + }) + + + }); + + describe('when response is an invalid XML string', function(){ + + before(function(done){ + server = http.createServer(function(req, res) { + res.writeHeader(200, {'Content-Type': 'application/xml'}) + res.end("") + }).listen(port, done); + }); + + after(function(done){ + server.close(done); + }) + + describe('and parse_response is true', function(){ + + it('should return original string', function(done) { + needle.get('localhost:' + port, { parse_response: true }, function(err, response, body) { + should.not.exist(err); + body.should.eql('') + should.not.exist(body.name); + done(); + }) + }) + + it('should not have a .parser = xml property', function(done) { + needle.get('localhost:' + port, { parse_response: true }, function(err, resp) { + should.not.exist(err); + should.not.exist(resp.parser); + done(); + }) + }) + + }) + + describe('and parse response is false', function(){ + + it('should return valid object', function(done) { + needle.get('localhost:' + port, { parse_response: false }, function(err, response, body){ + should.not.exist(err); + body.toString().should.eql('') + done(); + }) + }) + + it('should not have a .parser property', function(done) { + needle.get('localhost:' + port, { parse_response: false }, function(err, resp) { + should.not.exist(err); + should.not.exist(resp.parser) + done(); + }) + }) + + }) + + }) + + describe('when response is a valid XML string', function(){ + + before(function(done) { + server = http.createServer(function(req, res) { + res.writeHeader(200, {'Content-Type': 'application/xml'}) + res.end("

      hello

      ") + }).listen(port, done); + }); + + after(function(done) { + server.close(done); + }) + + describe('and parse_response is true', function(){ + + it('should return valid object', function(done) { + needle.get('localhost:' + port, { parse_response: true }, function(err, response, body) { + should.not.exist(err); + body.name.should.eql('post') + body.children[0].name.should.eql('p') + body.children[0].value.should.eql('hello') + + body.children[1].name.should.eql('p') + body.children[1].value.should.eql('world') + done(); + }) + }) + + it('should have a .parser = xml property', function(done) { + needle.get('localhost:' + port, { parse_response: true }, function(err, resp) { + should.not.exist(err); + resp.parser.should.eql('xml'); + done(); + }) + }) + + }) + + describe('and parse response is false', function(){ + + it('should return valid object', function(done) { + needle.get('localhost:' + port, { parse_response: false }, function(err, response, body){ + should.not.exist(err); + body.toString().should.eql('

      hello

      ') + done(); + }) + }) + + it('should not have a .parser property', function(done) { + needle.get('localhost:' + port, { parse_response: false }, function(err, resp) { + should.not.exist(err); + should.not.exist(resp.parser) + done(); + }) + }) + + }) + + }) + + describe('valid XML, using xml2js', function() { + + var parsers, origParser; + + before(function(done) { + var xml2js = require('xml2js') + parsers = require('../lib/parsers'); + origParser = parsers['application/xml']; + + var customParser = require('xml2js').parseString; + parsers.use('xml2js', ['application/xml'], function(buff, cb) { + var opts = { explicitRoot: true, explicitArray: false }; + customParser(buff, opts, cb); + }) + + server = http.createServer(function(req, res) { + res.writeHeader(200, {'Content-Type': 'application/xml'}) + res.end("

      hello

      world

      ") + }).listen(port, done); + }); + + after(function(done) { + parsers['application/xml'] = origParser; + server.close(done); + }) + + describe('and parse_response is true', function(){ + + it('should return valid object', function(done) { + needle.get('localhost:' + port, { parse_response: true }, function(err, response, body) { + should.not.exist(err); + body.should.eql({ post: { p: ['hello', 'world' ]}}) + done(); + }) + }) + + it('should have a .parser = xml property', function(done) { + needle.get('localhost:' + port, { parse_response: true }, function(err, resp) { + should.not.exist(err); + resp.parser.should.eql('xml2js'); + done(); + }) + }) + + }) + + describe('and parse response is false', function(){ + + it('should return valid object', function(done) { + needle.get('localhost:' + port, { parse_response: false }, function(err, response, body){ + should.not.exist(err); + body.toString().should.eql('

      hello

      world

      ') + done(); + }) + }) + + it('should not have a .parser property', function(done) { + needle.get('localhost:' + port, { parse_response: false }, function(err, resp) { + should.not.exist(err); + should.not.exist(resp.parser) + done(); + }) + }) + + }) + + }) + + describe('when response is a JSON API flavored JSON string', function () { + + var json_string = '{"data":[{"type":"articles","id":"1","attributes":{"title":"Needle","body":"The leanest and most handsome HTTP client in the Nodelands."}}],"included":[{"type":"people","id":"42","attributes":{"name":"Tomás"}}]}'; + + before(function(done){ + server = http.createServer(function(req, res) { + res.setHeader('Content-Type', 'application/vnd.api+json'); + res.end(json_string); + }).listen(port, done); + }); + + after(function(done){ + server.close(done); + }); + + describe('and parse option is not passed', function() { + + describe('with default parse_response', function() { + + before(function() { + needle.defaults().parse_response.should.eql('all') + }) + + it('should return object', function(done){ + needle.get('localhost:' + port, function(err, response, body){ + should.ifError(err); + body.should.deepEqual({ + "data": [{ + "type": "articles", + "id": "1", + "attributes": { + "title": "Needle", + "body": "The leanest and most handsome HTTP client in the Nodelands." + } + }], + "included": [ + { + "type": "people", + "id": "42", + "attributes": { + "name": "Tomás" + } + } + ] + }); + done(); + }); + }); + + }); + + }) + + }); + + describe('when response is a HAL JSON content-type', function () { + + var json_string = '{"name": "Tomás", "_links": {"href": "https://github.com/tomas/needle.git"}}'; + + before(function(done){ + server = http.createServer(function(req, res) { + res.setHeader('Content-Type', 'application/hal+json'); + res.end(json_string); + }).listen(port, done); + }); + + after(function(done){ + server.close(done); + }); + + describe('and parse option is not passed', function() { + + describe('with default parse_response', function() { + + before(function() { + needle.defaults().parse_response.should.eql('all') + }) + + it('should return object', function(done){ + needle.get('localhost:' + port, function(err, response, body){ + should.ifError(err); + body.should.deepEqual({ + 'name': 'Tomás', + '_links': { + 'href': 'https://github.com/tomas/needle.git' + }}); + done(); + }); + }); + + }); + + }) + + }); + +}) diff --git a/node_modules/needle/test/post_data_spec.js b/node_modules/needle/test/post_data_spec.js new file mode 100644 index 0000000..5c826d6 --- /dev/null +++ b/node_modules/needle/test/post_data_spec.js @@ -0,0 +1,1021 @@ +var needle = require('..'), + http = require('http'), + should = require('should'), + sinon = require('sinon'), + stream = require('stream'), + helpers = require('./helpers'); + +var multiparts = ['----------------------NODENEEDLEHTTPCLIENT']; +multiparts.push(['Content-Disposition: form-data; name=\"foo\"']) +multiparts.push(['\r\nbar\r\n----------------------NODENEEDLEHTTPCLIENT--']) +// multiparts.push(['Content-Disposition: form-data; name=\"test\"']) +// multiparts.push(['\r\næµè¯\r\n----------------------NODENEEDLEHTTPCLIENT--']) +// multiparts.push(['\r\n' + Buffer.from('测试').toString() + '\r\n----------------------NODENEEDLEHTTPCLIENT--']) + + +describe('post data (e.g. request body)', function() { + + var stub, spy, server; + + before(function(done) { + server = helpers.server({ port: 4321 }, done); + }) + + after(function(done) { + server.close(done); + }) + + afterEach(function() { + if (stub) stub.restore(); + if (spy) spy.restore(); + }) + + function get(data, opts, cb) { + return needle.request('get', 'http://localhost:' + 4321, data, opts, cb) + } + + function post(data, opts, cb) { + return needle.request('post', 'http://localhost:' + 4321, data, opts, cb) + } + + function spystub_request() { + var http_req = http.request; + stub = sinon.stub(http, 'request').callsFake(function(opts, cb) { + var req = http_req(opts, cb); + spy = sinon.spy(req, 'write'); + return req; + }) + } + + function check_request(method) { + stub.calledOnce.should.be.true; + stub.args[0][0]['headers']['host'].should.equal('localhost:4321'); + stub.args[0][0]['method'].should.equal(method); + } + + describe('with multipart: true', function() { + + describe('when null', function() { + + it('sends request (non multipart)', function(done) { + spystub_request(); + + post(null, { multipart: true }, function(err, resp) { + check_request('post'); + done(); + }) + }) + + it('doesnt set Content-Type header', function(done) { + post(null, { multipart: true }, function(err, resp) { + should.not.exist(resp.body.headers['content-type']); + done(); + }) + }) + + it('doesnt change default Accept header', function(done) { + post(null, { multipart: true }, function(err, resp) { + // resp.body contains 'header' and 'body', mirroring what we sent + resp.body.headers['accept'].should.equal('*/*'); + done(); + }) + }) + + it('doesnt write anything', function(done) { + spystub_request(); + + post(null, { multipart: true }, function(err, resp) { + spy.called.should.be.false; + resp.body.body.should.eql(''); + done(); + }) + }) + + }) + + describe('when string', function() { + + it('explodes', function() { + (function() { + post('foobar', { multipart: true }) + }).should.throw() + }) + + }) + + describe('when object', function() { + + describe('get request', function() { + + it('sends request', function(done) { + spystub_request(); + + get({ foo: 'bar', test: '测试' }, { multipart: true }, function(err, resp) { + check_request('get'); + done(); + }) + }) + + it('sets Content-Type header', function(done) { + post({ foo: 'bar', test: '测试' }, { multipart: true }, function(err, resp) { + resp.body.headers['content-type'].should.equal('multipart/form-data; boundary=--------------------NODENEEDLEHTTPCLIENT'); + done(); + }) + }) + + it('doesnt change default Accept header', function(done) { + post({ foo: 'bar', test: '测试' }, { multipart: true }, function(err, resp) { + resp.body.headers['accept'].should.equal('*/*'); + done(); + }) + }) + + it('writes string as buffer', function(done) { + spystub_request(); + + get({ foo: 'bar' }, { multipart: true }, function(err, resp) { + spy.called.should.be.true; + + spy.args[0][0].should.be.an.instanceof(String); + spy.args[0][0].toString().should.equal(multiparts.join('\r\n')); + resp.body.body.should.eql(multiparts.join('\r\n')); + done(); + }) + }) + + it('writes japanese chars correctly as binary', function(done) { + spystub_request(); + + get({ foo: 'bar', test: '测试' }, { multipart: true }, function(err, resp) { + spy.called.should.be.true; + + spy.args[0][0].should.be.an.instanceof(String); + Buffer.from(spy.args[0][0]).toString('hex').should.eql('2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4e4f44454e4545444c4548545450434c49454e540d0a436f6e74656e742d446973706f736974696f6e3a20666f726d2d646174613b206e616d653d22666f6f220d0a0d0a6261720d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4e4f44454e4545444c4548545450434c49454e540d0a436f6e74656e742d446973706f736974696f6e3a20666f726d2d646174613b206e616d653d2274657374220d0a0d0ac3a6c2b5c28bc3a8c2afc2950d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4e4f44454e4545444c4548545450434c49454e542d2d') + done(); + }) + }) + + + }) + + describe('post request', function() { + + it('sends request', function(done) { + spystub_request(); + + post({ foo: 'bar', test: '测试' }, { multipart: true }, function(err, resp) { + check_request('post'); + done(); + }) + }) + + it('writes string as buffer', function(done) { + spystub_request(); + + post({ foo: 'bar' }, { multipart: true }, function(err, resp) { + spy.called.should.be.true; + spy.args[0][0].should.be.an.instanceof(String); + spy.args[0][0].toString().should.equal(multiparts.join('\r\n')); + resp.body.body.should.eql(multiparts.join('\r\n')); + done(); + }) + }) + + it('writes japanese chars correctly as binary', function(done) { + spystub_request(); + + post({ foo: 'bar', test: '测试' }, { multipart: true }, function(err, resp) { + spy.called.should.be.true; + spy.args[0][0].should.be.an.instanceof(String); + Buffer.from(spy.args[0][0]).toString('hex').should.eql('2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4e4f44454e4545444c4548545450434c49454e540d0a436f6e74656e742d446973706f736974696f6e3a20666f726d2d646174613b206e616d653d22666f6f220d0a0d0a6261720d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4e4f44454e4545444c4548545450434c49454e540d0a436f6e74656e742d446973706f736974696f6e3a20666f726d2d646174613b206e616d653d2274657374220d0a0d0ac3a6c2b5c28bc3a8c2afc2950d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4e4f44454e4545444c4548545450434c49454e542d2d') + done(); + }) + }) + + }) + + }) + + describe('when stream', function() { + + var stream_for_multipart; + + before(function() { + stream_for_multipart = new stream.Readable(); + stream_for_multipart._read = function() { + this.push('foobar'); + this.push(null); + } + }) + + it('explodes', function() { + (function() { + post(stream_for_multipart, { multipart: true }) + }).should.throw() + }) + + }) + + }) + + describe('non multipart', function() { + + describe('when null', function() { + + describe('get request', function() { + + it('sends request', function(done) { + spystub_request(); + + get(null, {}, function(err, resp) { + check_request('get'); + done(); + }) + }) + + it('doesnt write anything', function(done) { + spystub_request(); + + get(null, {}, function(err, resp) { + spy.called.should.be.false; + resp.body.body.should.eql(''); + done(); + }) + }) + + }) + + describe('post request', function() { + + it('sends request', function(done) { + spystub_request(); + + post(null, {}, function(err, resp) { + check_request('post'); + done(); + }) + }) + + it('doesnt write anything', function(done) { + spystub_request(); + + post(null, {}, function(err, resp) { + spy.called.should.be.false; + resp.body.body.should.eql(''); + done(); + }) + }) + + }) + + }) + + describe('when string with no equal sign', function() { + + describe('get request', function() { + + it('explodes', function() { + (function() { + get('foobar', {}) + }).should.throw() + }) + + }) + + describe('post request', function() { + + it('sends request', function(done) { + spystub_request(); + + post('foobar', {}, function(err, resp) { + check_request('post'); + done(); + }) + }) + + it('writes string as buffer', function(done) { + spystub_request(); + + post('foobar', {}, function(err, resp) { + spy.called.should.be.true; + spy.args[0][0].should.be.an.instanceof(Buffer); + spy.args[0][0].toString().should.equal('foobar'); + resp.body.body.should.eql('foobar'); + done(); + }) + }) + + }) + + }) + + describe('when string WITH equal sign', function() { + + describe('get request', function() { + + describe('with json: false (default)', function() { + + it('sends request, adding data as querystring', function(done) { + spystub_request(); + + get('foo=bar', { json: false }, function(err, resp) { + check_request('get'); + stub.args[0][0]['path'].should.equal('/?foo=bar') + done(); + }) + }) + + it('doesnt set Content-Type header', function(done) { + get('foo=bar', { json: false }, function(err, resp) { + // resp.body contains 'header' and 'body', mirroring what we sent + should.not.exist(resp.body.headers['content-type']); + done(); + }) + }) + + it('doesnt change default Accept header', function(done) { + get('foo=bar', { json: false }, function(err, resp) { + // resp.body contains 'header' and 'body', mirroring what we sent + resp.body.headers['accept'].should.equal('*/*'); + done(); + }) + }) + + it('doesnt write anything', function(done) { + get('foo=bar', { json: false }, function(err, resp) { + spy.called.should.be.false; + resp.body.body.should.eql(''); + done(); + }) + }) + + }) + + describe('with json: true', function() { + + it('sends request, without setting a querystring', function(done) { + spystub_request(); + + get('foo=bar', { json: true }, function(err, resp) { + check_request('get'); + stub.args[0][0]['path'].should.equal('/') + done(); + }) + }) + + it('sets Content-Type header', function(done) { + get('foo=bar', { json: true }, function(err, resp) { + resp.body.headers['content-type'].should.equal('application/json; charset=utf-8'); + done(); + }) + }) + + it('set Accept header to application/json', function(done) { + get('foo=bar', { json: true }, function(err, resp) { + resp.body.headers['accept'].should.equal('application/json'); + done(); + }) + }) + + it('writes raw string (assuming it already is JSON, so no JSON.stringify)', function(done) { + get('foo=bar', { json: true }, function(err, resp) { + spy.called.should.be.true; + spy.args[0][0].toString().should.eql('foo=bar') + resp.body.body.should.eql('foo=bar'); + done(); + }) + }) + + }) + + }) + + describe('post request', function() { + + describe('with json: false (default)', function() { + + it('sends request', function(done) { + spystub_request(); + + post('foo=bar', { json: false }, function(err, resp) { + check_request('post'); + done(); + }) + }) + + it('sets Content-Type header to www-form-urlencoded', function(done) { + post('foo=bar', { json: false }, function(err, resp) { + resp.body.headers['content-type'].should.equal('application/x-www-form-urlencoded'); + done(); + }) + }) + + it('doesnt change default Accept header', function(done) { + post('foo=bar', { json: false }, function(err, resp) { + // resp.body contains 'header' and 'body', mirroring what we sent + resp.body.headers['accept'].should.equal('*/*'); + done(); + }) + }) + + it('writes as buffer', function(done) { + post('foo=bar', { json: false }, function(err, resp) { + spy.called.should.be.true; + spy.args[0][0].should.be.an.instanceof(Buffer); + spy.args[0][0].toString().should.equal('foo=bar'); + resp.body.body.should.eql('foo=bar'); + done(); + }) + }) + + }) + + describe('with json: true', function() { + + it('sends request', function(done) { + spystub_request(); + + post('foo=bar', { json: true }, function(err, resp) { + check_request('post'); + done(); + }) + }) + + it('sets Content-Type header', function(done) { + post('foo=bar', { json: true }, function(err, resp) { + resp.body.headers['content-type'].should.equal('application/json; charset=utf-8'); + done(); + }) + }) + + it('set Accept header to application/json', function(done) { + post('foo=bar', { json: true }, function(err, resp) { + resp.body.headers['accept'].should.equal('application/json'); + done(); + }) + }) + + it('writes raw string (assuming it already is JSON, so no JSON.stringify)', function(done) { + post('foo=bar', { json: true }, function(err, resp) { + spy.called.should.be.true; + var json = JSON.stringify('foo=bar'); + spy.args[0][0].toString().should.eql('foo=bar') + resp.body.body.should.eql('foo=bar'); + done(); + }) + }) + + }) + + }) + + }) + + describe('when object', function() { + + describe('get request', function() { + + describe('with json: false (default)', function() { + + it('sends request, adding data as querystring', function(done) { + spystub_request(); + + get({ foo: 'bar', test: '测试' }, { json: false }, function(err, resp) { + check_request('get'); + stub.args[0][0]['path'].should.equal('/?foo=bar&test=%E6%B5%8B%E8%AF%95') + done(); + }) + }) + + it('doesnt set Content-Type header', function(done) { + get({ foo: 'bar', test: '测试' }, { json: false }, function(err, resp) { + // resp.body contains 'header' and 'body', mirroring what we sent + should.not.exist(resp.body.headers['content-type']); + done(); + }) + }) + + it('doesnt change default Accept header', function(done) { + get({ foo: 'bar', test: '测试' }, { json: false }, function(err, resp) { + // resp.body contains 'header' and 'body', mirroring what we sent + resp.body.headers['accept'].should.equal('*/*'); + done(); + }) + }) + + it('doesnt write anything', function(done) { + get({ foo: 'bar', test: '测试' }, { json: false }, function(err, resp) { + spy.called.should.be.false; + resp.body.body.should.eql(''); + done(); + }) + }) + + }) + + describe('with json: true', function() { + + it('sends request, without setting a querystring', function(done) { + spystub_request(); + + get({ foo: 'bar', test: '测试' }, { json: true }, function(err, resp) { + check_request('get'); + stub.args[0][0]['path'].should.equal('/') + done(); + }) + }) + + it('sets Content-Type header', function(done) { + get({ foo: 'bar', test: '测试' }, { json: true }, function(err, resp) { + resp.body.headers['content-type'].should.equal('application/json; charset=utf-8'); + done(); + }) + }) + + it('set Accept header to application/json', function(done) { + get({ foo: 'bar', test: '测试' }, { json: true }, function(err, resp) { + resp.body.headers['accept'].should.equal('application/json'); + done(); + }) + }) + + it('writes JSON.stringify version of object', function(done) { + get({ foo: 'bar', test: '测试' }, { json: true }, function(err, resp) { + spy.called.should.be.true; + var json = JSON.stringify({ foo: 'bar', test: '测试' }) + spy.args[0][0].toString().should.eql(json) + resp.body.body.should.eql(json); + done(); + }) + }) + + }) + + }) + + describe('post request', function() { + + describe('with json: false (default)', function() { + + it('sends request', function(done) { + spystub_request(); + + post({ foo: 'bar', test: '测试' }, { json: false }, function(err, resp) { + check_request('post'); + done(); + }) + }) + + it('sets Content-Type header to www-form-urlencoded', function(done) { + post({ foo: 'bar', test: '测试' }, { json: false }, function(err, resp) { + resp.body.headers['content-type'].should.equal('application/x-www-form-urlencoded'); + done(); + }) + }) + + it('doesnt change default Accept header', function(done) { + post({ foo: 'bar', test: '测试' }, { json: false }, function(err, resp) { + // resp.body contains 'header' and 'body', mirroring what we sent + resp.body.headers['accept'].should.equal('*/*'); + done(); + }) + }) + + it('writes as buffer', function(done) { + post({ foo: 'bar', test: '测试' }, { json: false }, function(err, resp) { + spy.called.should.be.true; + spy.args[0][0].should.be.an.instanceof(Buffer); + spy.args[0][0].toString().should.equal('foo=bar&test=%E6%B5%8B%E8%AF%95'); + resp.body.body.should.eql('foo=bar&test=%E6%B5%8B%E8%AF%95'); + done(); + }) + }) + + }) + + describe('with json: false and content_type = "application/json"', function() { + + var opts = { json: false, content_type: 'application/json' }; + + it('sends request', function(done) { + spystub_request(); + + post({ foo: 'bar', test: '测试' }, opts, function(err, resp) { + check_request('post'); + done(); + }) + }) + + it('sets Content-Type header to application/json', function(done) { + post({ foo: 'bar', test: '测试' }, opts, function(err, resp) { + resp.body.headers['content-type'].should.equal('application/json'); + done(); + }) + }) + + it('doesnt change default Accept header', function(done) { + post({ foo: 'bar', test: '测试' }, opts, function(err, resp) { + // resp.body contains 'header' and 'body', mirroring what we sent + resp.body.headers['accept'].should.equal('*/*'); + done(); + }) + }) + + it('writes as buffer', function(done) { + post({ foo: 'bar', test: '测试' }, opts, function(err, resp) { + spy.called.should.be.true; + spy.args[0][0].constructor.name.should.eql('Buffer'); + spy.args[0][0].toString().should.equal('foo=bar&test=%E6%B5%8B%E8%AF%95'); + resp.body.body.should.eql('foo=bar&test=%E6%B5%8B%E8%AF%95'); + done(); + }) + }) + + }) + + describe('with json: undefined but content-type = application/json', function() { + + var opts = { headers: { 'content-type': 'application/json' } }; + + it('sends request', function(done) { + spystub_request(); + + post({ foo: 'bar', test: '测试' }, opts, function(err, resp) { + check_request('post'); + done(); + }) + }) + + it('doesnt change Content-Type header', function(done) { + post({ foo: 'bar', test: '测试' }, opts, function(err, resp) { + resp.body.headers['content-type'].should.equal('application/json'); + done(); + }) + }) + + it('leaves default Accept header', function(done) { + post({ foo: 'bar', test: '测试' }, opts, function(err, resp) { + resp.body.headers['accept'].should.equal('*/*'); + done(); + }) + }) + + it('writes JSON.stringified object', function(done) { + post({ foo: 'bar', test: '测试' }, opts, function(err, resp) { + spy.called.should.be.true; + var json = JSON.stringify({ foo: 'bar', test: '测试' }) + spy.args[0][0].toString().should.eql(json) + resp.body.body.should.eql(json); + done(); + }) + }) + }) + + describe('with json: true', function() { + + it('sends request', function(done) { + spystub_request(); + + post({ foo: 'bar', test: '测试' }, { json: true }, function(err, resp) { + check_request('post'); + done(); + }) + }) + + it('sets Content-Type header', function(done) { + post({ foo: 'bar', test: '测试' }, { json: true }, function(err, resp) { + resp.body.headers['content-type'].should.equal('application/json; charset=utf-8'); + done(); + }) + }) + + it('set Accept header to application/json', function(done) { + post({ foo: 'bar', test: '测试' }, { json: true }, function(err, resp) { + resp.body.headers['accept'].should.equal('application/json'); + done(); + }) + }) + + it('writes JSON.stringified object', function(done) { + post({ foo: 'bar', test: '测试' }, { json: true }, function(err, resp) { + spy.called.should.be.true; + var json = JSON.stringify({ foo: 'bar', test: '测试' }) + spy.args[0][0].toString().should.eql(json) + resp.body.body.should.eql(json); + done(); + }) + }) + + }) + + + describe('with json: true and content_type: */* (passed, not default)', function() { + + var opts = { json: true, accept: '*/*' }; + + it('sends request', function(done) { + spystub_request(); + + post({ foo: 'bar', test: '测试' }, opts, function(err, resp) { + check_request('post'); + done(); + }) + }) + + it('sets Content-Type header to application/json', function(done) { + post({ foo: 'bar', test: '测试' }, opts, function(err, resp) { + resp.body.headers['content-type'].should.equal('application/json; charset=utf-8'); + done(); + }) + }) + + it('respects Accept header set by user', function(done) { + post({ foo: 'bar', test: '测试' }, opts, function(err, resp) { + resp.body.headers['accept'].should.equal('*/*'); + done(); + }) + }) + + it('writes JSON.stringified object', function(done) { + post({ foo: 'bar', test: '测试' }, opts, function(err, resp) { + spy.called.should.be.true; + var json = JSON.stringify({ foo: 'bar', test: '测试' }) + spy.args[0][0].toString().should.eql(json) + resp.body.body.should.eql(json); + done(); + }) + }) + + }) + + }) + + }) + + describe('when buffer', function() { + + describe('get request', function() { + + describe('with json: false (default)', function() { + + it('sends request', function(done) { + spystub_request(); + + get(Buffer.from('foobar'), { json: false }, function(err, resp) { + check_request('get'); + done(); + }) + }) + + it('sets Content-Type header', function(done) { + get(Buffer.from('foobar'), { json: false }, function(err, resp) { + // should.not.exist(resp.body.headers['content-type']); + resp.body.headers['content-type'].should.equal('application/x-www-form-urlencoded'); + + done(); + }) + }) + + it('doesnt change default Accept header', function(done) { + get(Buffer.from('foobar'), { json: false }, function(err, resp) { + // resp.body contains 'header' and 'body', mirroring what we sent + resp.body.headers['accept'].should.equal('*/*'); + done(); + }) + }) + + it('writes as buffer', function(done) { + get(Buffer.from('foobar'), { json: false }, function(err, resp) { + spy.called.should.be.true; + spy.args[0][0].should.be.an.instanceof(Buffer); + spy.args[0][0].toString().should.equal('foobar'); + resp.body.body.should.eql('foobar'); + done(); + }) + }) + + }) + + describe('with json: true', function() { + + it('sends request, without setting a querystring', function(done) { + spystub_request(); + + get(Buffer.from('foobar'), { json: true }, function(err, resp) { + check_request('get'); + done(); + }) + }) + + it('sets Content-Type header', function(done) { + get(Buffer.from('foobar'), { json: true }, function(err, resp) { + resp.body.headers['content-type'].should.equal('application/json; charset=utf-8'); + done(); + }) + }) + + it('set Accept header to application/json', function(done) { + get(Buffer.from('foobar'), { json: true }, function(err, resp) { + resp.body.headers['accept'].should.equal('application/json'); + done(); + }) + }) + + it('writes JSON.stringify version of object', function(done) { + get(Buffer.from('foobar'), { json: true }, function(err, resp) { + spy.called.should.be.true; + spy.args[0][0].toString().should.eql('foobar') + resp.body.body.should.eql('foobar'); + done(); + }) + }) + + }) + + }) + + describe('post request', function() { + + describe('with json: false (default)', function() { + + it('sends request', function(done) { + spystub_request(); + + post(Buffer.from('foobar'), { json: false }, function(err, resp) { + check_request('post'); + done(); + }) + }) + + it('sets Content-Type header to www-form-urlencoded', function(done) { + post(Buffer.from('foobar'), { json: false }, function(err, resp) { + resp.body.headers['content-type'].should.equal('application/x-www-form-urlencoded'); + done(); + }) + }) + + it('doesnt change default Accept header', function(done) { + post(Buffer.from('foobar'), { json: false }, function(err, resp) { + // resp.body contains 'header' and 'body', mirroring what we sent + resp.body.headers['accept'].should.equal('*/*'); + done(); + }) + }) + + it('writes as buffer', function(done) { + post(Buffer.from('foobar'), { json: false }, function(err, resp) { + spy.called.should.be.true; + spy.args[0][0].should.be.an.instanceof(Buffer); + spy.args[0][0].toString().should.equal('foobar'); + resp.body.body.should.eql('foobar'); + done(); + }) + }) + + }) + + describe('with json: true', function() { + + it('sends request', function(done) { + spystub_request(); + + post(Buffer.from('foobar'), { json: true }, function(err, resp) { + check_request('post'); + done(); + }) + }) + + it('sets Content-Type header', function(done) { + post(Buffer.from('foobar'), { json: true }, function(err, resp) { + resp.body.headers['content-type'].should.equal('application/json; charset=utf-8'); + done(); + }) + }) + + it('set Accept header to application/json', function(done) { + post(Buffer.from('foobar'), { json: true }, function(err, resp) { + resp.body.headers['accept'].should.equal('application/json'); + done(); + }) + }) + + it('passes raw buffer (assuming its a JSON string beneath)', function(done) { + post(Buffer.from('foobar'), { json: true }, function(err, resp) { + spy.called.should.be.true; + spy.args[0][0].toString().should.eql('foobar') + resp.body.body.should.eql('foobar'); + done(); + }) + }) + + }) + + }) + + }) + + describe('when stream', function() { + + var input_stream; + + beforeEach(function() { + input_stream = new stream.Readable(); + input_stream._read = function() { + this.push('foobar'); + this.push(null); + } + }) + + describe('get request', function() { + + it('explodes', function() { + (function() { + get(input_stream, {}) + }).should.throw() + }) + + }); + + describe('post request', function() { + + describe('with json: false (default)', function() { + + it('sends request', function(done) { + spystub_request(); + + post(input_stream, { json: false }, function(err, resp) { + check_request('post'); + done(); + }) + }) + + it('sets Content-Type header to www-form-urlencoded', function(done) { + post(input_stream, { json: false }, function(err, resp) { + resp.body.headers['content-type'].should.equal('application/x-www-form-urlencoded'); + done(); + }) + }) + + it('doesnt change default Accept header', function(done) { + post(input_stream, { json: false }, function(err, resp) { + // resp.body contains 'header' and 'body', mirroring what we sent + resp.body.headers['accept'].should.equal('*/*'); + done(); + }) + }) + + it('writes as buffer', function(done) { + post(input_stream, { json: false }, function(err, resp) { + spy.called.should.be.true; + spy.args[0][0].should.be.an.instanceof(Buffer); + spy.args[0][0].toString().should.equal('foobar'); + resp.body.body.should.eql('foobar'); + done(); + }) + }) + + }) + + describe('with json: true', function() { + + it('sends request', function(done) { + spystub_request(); + + post(input_stream, { json: true }, function(err, resp) { + check_request('post'); + done(); + }) + }) + + it('sets Content-Type header', function(done) { + post(input_stream, { json: true }, function(err, resp) { + resp.body.headers['content-type'].should.equal('application/json; charset=utf-8'); + done(); + }) + }) + + it('set Accept header to application/json', function(done) { + post(input_stream, { json: true }, function(err, resp) { + resp.body.headers['accept'].should.equal('application/json'); + done(); + }) + }) + + it('writes JSON.stringified object', function(done) { + post(input_stream, { json: true }, function(err, resp) { + spy.called.should.be.true; + spy.args[0][0].toString().should.eql('foobar') + resp.body.body.should.eql('foobar'); + done(); + }) + }) + + }) + + }) + + }) + + }) + +}) diff --git a/node_modules/needle/test/proxy_spec.js b/node_modules/needle/test/proxy_spec.js new file mode 100644 index 0000000..46b0b5e --- /dev/null +++ b/node_modules/needle/test/proxy_spec.js @@ -0,0 +1,268 @@ +var helpers = require('./helpers'), + should = require('should'), + sinon = require('sinon'), + http = require('http'), + needle = require('./../'); + +var port = 7707; +var url = 'localhost:' + port; +var nonexisting_host = 'awepfokawepofawe.com'; + +describe('proxy option', function() { + + var spy, opts; + + function send_request(opts, done) { + if (spy) spy.restore(); + spy = sinon.spy(http, 'request'); + needle.get(url, opts, done); + } + + ////////////////////// + // proxy opts helpers + + function not_proxied(done) { + return function(err, resp) { + var path = spy.args[0][0].path; + path.should.eql('/'); // not the full original URI + spy.restore(); + done(); + } + } + + function proxied(host, port, done) { + return function(err, resp) { + var path = spy.args[0][0].path; + path.should.eql('http://' + url); // the full original URI + + var http_host = spy.args[0][0].host; + if (http_host) http_host.should.eql(host); + + var http_port = spy.args[0][0].port; + if (http_port) http_port.should.eql(port); + + spy.restore(); + done(); + } + } + + ////////////////////// + // auth helpers + + function get_auth(header) { + var token = header.split(/\s+/).pop(); + return token && Buffer.from(token, 'base64').toString().split(':'); + } + + function no_proxy_auth(done) { + return function(err, resp) { + var headers = spy.args[0][0].headers; + Object.keys(headers).should.not.containEql('proxy-authorization'); + done(); + } + } + + function header_set(name, user, pass, done) { + return function(err, resp) { + var headers = spy.args[0][0].headers; + var auth = get_auth(headers[name]); + auth[0].should.eql(user); + auth[1].should.eql(pass); + done(); + } + } + + function proxy_auth_set(user, pass, done) { + return header_set('proxy-authorization', user, pass, done); + } + + function basic_auth_set(user, pass, done) { + return header_set('authorization', user, pass, done); + } + + after(function() { + spy.restore(); + }) + + describe('when null proxy is passed', function() { + + it('does not proxy', function(done) { + send_request({ proxy: null }, not_proxied(done)) + }) + + describe('but defaults has been set', function() { + + before(function() { + needle.defaults({ proxy: 'foobar' }); + }) + + after(function() { + needle.defaults({ proxy: null }); + }) + + it('tries to proxy anyway', function(done) { + send_request({}, proxied('foobar', 80, done)) + }) + + }) + + }) + + describe('when weird string is passed', function() { + + it('tries to proxy anyway', function(done) { + send_request({ proxy: 'alfalfa' }, proxied('alfalfa', 80, done)) + }) + }) + + describe('when valid url is passed', function() { + + describe('without NO_PROXY env var set', function() { + it('proxies request', function(done) { + send_request({ proxy: nonexisting_host + ':123/done' }, proxied(nonexisting_host, '123', done)) + }) + + it('does not set a Proxy-Authorization header', function(done) { + send_request({ proxy: nonexisting_host + ':123/done' }, no_proxy_auth(done)); + }) + }) + + describe('with NO_PROXY env var set', function() { + + it('proxies request if matching host not found in list', function(done) { + process.env.NO_PROXY = 'foo'; + send_request({ proxy: nonexisting_host + ':123/done' }, proxied(nonexisting_host, '123', function() { + delete process.env.NO_PROXY; + done(); + })) + }) + + it('does not proxy request if matching host in list and just has a different port', function(done) { + process.env.NO_PROXY = 'localhost'; + send_request({ proxy: nonexisting_host + ':123/done' }, not_proxied(function() { + delete process.env.NO_PROXY; + done(); + })) + }) + + it('does not proxy if matching host found in list', function(done) { + process.env.NO_PROXY = 'foo,' + url; + send_request({ proxy: nonexisting_host + ':123/done' }, not_proxied(function() { + delete process.env.NO_PROXY; + done(); + })) + }) + }) + + describe('and proxy url contains user:pass', function() { + + before(function() { + opts = { + proxy: 'http://mj:x@' + nonexisting_host + ':123/done' + } + }) + + it('proxies request', function(done) { + send_request(opts, proxied(nonexisting_host, '123', done)) + }) + + it('sets Proxy-Authorization header', function(done) { + send_request(opts, proxy_auth_set('mj', 'x', done)); + }) + + }) + + describe('and a proxy_user is passed', function() { + + before(function() { + opts = { + proxy: nonexisting_host + ':123', + proxy_user: 'someone', + proxy_pass: 'else' + } + }) + + it('proxies request', function(done) { + send_request(opts, proxied(nonexisting_host, '123', done)) + }) + + it('sets Proxy-Authorization header', function(done) { + send_request(opts, proxy_auth_set('someone', 'else', done)); + }) + + describe('and url also contains user:pass', function() { + + it('url user:pass wins', function(done) { + var opts = { + proxy: 'http://xxx:yyy@' + nonexisting_host + ':123', + proxy_user: 'someone', + proxy_pass: 'else' + } + + send_request(opts, proxy_auth_set('xxx', 'yyy', done)); + }) + + }) + + describe('and options.username is also present', function() { + + before(function() { + opts = { proxy_user: 'foobar', username: 'someone' }; + }) + + it('a separate Authorization header is set', function(done) { + var opts = { + proxy: nonexisting_host + ':123', + proxy_user: 'someone', + proxy_pass: 'else', + username: 'test', + password: 'X' + } + + send_request(opts, basic_auth_set('test', 'X', done)); + }) + + }) + + }) + + }) + + describe('when environment variable is set', function() { + + describe('and default is unchanged', function() { + + before(function() { + process.env.HTTP_PROXY = 'foobar'; + }) + + after(function() { + delete process.env.HTTP_PROXY; + }) + + it('tries to proxy', function(done) { + send_request({}, proxied('foobar', 80, done)) + }) + + }) + + describe('and functionality is disabled', function() { + + before(function() { + process.env.HTTP_PROXY = 'foobar'; + }) + + after(function() { + delete process.env.HTTP_PROXY; + }) + + it('ignores proxy', function(done) { + send_request({ + use_proxy_from_env_var: false + }, not_proxied(done)) + }) + + }) + }) + +}) diff --git a/node_modules/needle/test/querystring_spec.js b/node_modules/needle/test/querystring_spec.js new file mode 100644 index 0000000..34c1748 --- /dev/null +++ b/node_modules/needle/test/querystring_spec.js @@ -0,0 +1,128 @@ +var should = require('should'), + stringify = require('../lib/querystring').build; + +describe('stringify', function() { + + describe('with null', function() { + + it('throws', function() { + (function() { + var res = stringify(null); + }).should.throw(); + }) + + }) + + describe('with a number', function() { + + it('throws', function() { + (function() { + var res = stringify(100); + }).should.throw(); + }) + + }) + + describe('with a string', function() { + + describe('that is empty', function() { + + it('throws', function() { + (function() { + var res = stringify(''); + }).should.throw(); + }) + + }) + + describe('that doesnt contain an equal sign', function() { + + it('throws', function() { + (function() { + var res = stringify('boomshagalaga'); + }).should.throw(); + }) + + }) + + describe('that contains an equal sign', function() { + + it('works', function() { + var res = stringify('hello=123'); + res.should.eql('hello=123'); + }) + + }) + + }) + + describe('with an array', function() { + + describe('with key val objects', function() { + + it('works', function() { + var res = stringify([ {foo: 'bar'} ]); + res.should.eql('foo=bar'); + }) + + }) + + describe('where all elements are strings with an equal sign', function() { + + it('works', function() { + var res = stringify([ 'bar=123', 'quux=' ]); + res.should.eql('bar=123&quux='); + }) + + }) + + describe('with random words', function() { + + it('throws', function() { + (function() { + var res = stringify(['hello', 'there']); + }).should.throw(); + }) + + }) + + describe('with integers', function() { + + it('throws', function() { + (function() { + var res = stringify([123, 432]); + }).should.throw(); + }) + + }) + + }) + + describe('with an object', function() { + + it('works', function() { + var res = stringify({ test: 100 }); + res.should.eql('test=100'); + }) + + describe('with object where val is an array', function() { + + it('works', function() { + var res = stringify({ foo: ['bar', 'baz'] }); + res.should.eql('foo[]=bar&foo[]=baz'); + }) + + }) + + describe('with object where val is an array of key val objects', function() { + + it('works', function() { + var res = stringify({ foo: [{'1': 'bar'}, {'2': 'baz'}] }); + res.should.eql('foo[][1]=bar&foo[][2]=baz'); + }) + + }) + + }) + +}) diff --git a/node_modules/needle/test/redirect_spec.js b/node_modules/needle/test/redirect_spec.js new file mode 100644 index 0000000..5b97c5a --- /dev/null +++ b/node_modules/needle/test/redirect_spec.js @@ -0,0 +1,465 @@ +var helpers = require('./helpers'), + should = require('should'), + sinon = require('sinon'), + needle = require('./../'); + +var ports = { + http : 8888, + https : 9999 +} + +var protocols = { + http : require('http'), + https : require('https') +} + +var code = 301; +var location; // var to set the response location + +function response_code() { + return code; +} + +function response_headers() { + return { 'Content-Type': 'text/plain', 'Location': location } +} + +describe('redirects', function() { + + var spies = {}, + servers = {}; + + var current_protocol; + var hostname = require('os').hostname(); + + // open two servers, one that responds to a redirect + before(function(done) { + + var conf = { + port : ports.http, + code : response_code, + headers : response_headers + } + + servers.http = helpers.server(conf, function() { + conf.port = ports.https; + conf.protocol = 'https'; + servers.https = helpers.server(conf, done); + }); + }) + + after(function(done) { + servers.http.close(function() { + servers.https.close(done); + }); + }) + + var prots = {'http': 'https'}; + Object.keys(prots).forEach(function(protocol) { + + current_protocol = protocol; + var other_protocol = protocol == 'http' ? 'https' : 'http'; + + var opts, // each test will modify this + host = '127.0.0.1', + url = protocol + '://' + host + ':' + ports[protocol] + '/hello'; + + function send_request(opts, cb) { + if (protocol == 'https') opts.rejectUnauthorized = false; + // console.log(' -- sending request ' + url + ' -- redirect to ' + location); + needle.post(url, { foo: 'bar' }, opts, cb); + } + + function not_followed(done) { + send_request(opts, function(err, resp) { + resp.statusCode.should.eql(301); + if (current_protocol == 'http') { + spies.http.callCount.should.eql(1); // only original request + spies.https.callCount.should.eql(0); + } else { + spies.http.callCount.should.eql(0); + spies.https.callCount.should.eql(1); // only original request + } + done(); + }) + } + + function followed_same_protocol(done) { + send_request(opts, function(err, resp) { + // the original request plus the redirect one + spies[current_protocol].callCount.should.eql(2); + done(); + }) + } + + function followed_other_protocol(done) { + send_request(opts, function(err, resp) { + // on new-ish node versions, https.request calls http.request internally, + // so we need to amount for that additional call. + // update: this doesn't happen on node > 10.x + + var node_major_ver = process.version.split('.')[0].replace('v', ''); + var http_calls = protocols.http.Agent.defaultMaxSockets == Infinity && parseInt(node_major_ver) < 10 ? 2 : 1; + + spies.http.callCount.should.eql(http_calls); // the one(s) from http.request + spies.https.callCount.should.eql(1); // the one from https.request (redirect) + done(); + }) + } + + // set a spy on [protocol].request + // so we can see how many times a request was made + before(function() { + spies.http = sinon.spy(protocols.http, 'request'); + spies.https = sinon.spy(protocols.https, 'request'); + }) + + // and make sure it is restored after each test + afterEach(function() { + spies.http.reset(); + spies.https.reset(); + }) + + after(function() { + spies.http.restore(); + spies.https.restore(); + }) + + describe('when overriding defaults', function() { + + before(function() { + needle.defaults({ follow_max: 10 }); + opts = {}; + }) + + after(function() { + // reset values to previous + needle.defaults({ follow_max: 0 }); + }) + + describe('and redirected to the same path on same host and protocol', function() { + before(function() { + location = url; + }) + it('does not follow redirect', not_followed); + }) + + describe('and redirected to the same path on same host and different protocol', function() { + before(function() { + location = url.replace(protocol, other_protocol).replace(ports[protocol], ports[other_protocol]); + }) + + it('follows redirect', followed_other_protocol); + }) + + describe('and redirected to a different path on same host, same protocol', function() { + before(function() { + location = url.replace('/hello', '/goodbye'); + }) + it('follows redirect', followed_same_protocol); + }) + + describe('and redirected to a different path on same host, different protocol', function() { + before(function() { + location = url.replace('/hello', '/goodbye').replace(protocol, other_protocol).replace(ports[protocol], ports[other_protocol]); + }) + it('follows redirect', followed_other_protocol); + }) + + describe('and redirected to same path on another host, same protocol', function() { + before(function() { + location = url.replace(host, hostname); + }) + it('follows redirect', followed_same_protocol); + }) + + describe('and redirected to same path on another host, different protocol', function() { + before(function() { + location = url.replace(host, hostname).replace(protocol, other_protocol).replace(ports[protocol], ports[other_protocol]); + }) + it('follows redirect', followed_other_protocol); + }) + + }) + + // false and null have the same result + var values = [false, null]; + values.forEach(function(value) { + + describe('when follow is ' + value, function() { + + before(function() { + opts = { follow: value }; + }) + + describe('and redirected to the same path on same host and protocol', function() { + before(function() { + location = url; + }) + + it('throws an error', function() { + (function() { + send_request(opts, function() { }); + }).should.throw; + }) + + }) + + }) + + }) + + describe('when follow is true', function() { + + before(function() { + opts = { follow: true }; + }) + + describe('and redirected to the same path on same host and protocol', function() { + before(function() { location = url }) + + it('throws an error', function() { + (function() { + send_request(opts, function() { }); + }).should.throw; + }) + + }) + + }) + + describe('when follow is > 0', function() { + + before(function() { + needle.defaults({ follow: 10 }); + }) + + after(function() { + needle.defaults({ follow: 0 }); + }) + + describe('when keep_method is false', function() { + + before(function() { + opts = { follow_keep_method: false }; + }) + + // defaults to follow host and protocol + describe('and redirected to the same path on same host and different protocol', function() { + + before(function() { + location = url.replace(protocol, other_protocol); + }) + + it('follows redirect', followed_other_protocol); + + it('sends a GET request with no data', function(done) { + send_request(opts, function(err, resp) { + // spy.args[0][3].should.eql(null); + spies.http.args[0][0].method.should.eql('GET'); + done(); + }) + }) + + it('does not resend cookies if follow_set_cookies is false', function(done) { + opts.cookies = {foo: 'bar'}; + opts.follow_set_cookies = false; + send_request(opts, function(err, resp) { + should.not.exist(spies.http.args[0][0].headers['cookie']); + done(); + }) + }) + + it('resends cookies if follow_set_cookies is true', function(done) { + opts.cookies = {foo: 'bar'}; + opts.follow_set_cookies = true; + send_request(opts, function(err, resp) { + spies.http.args[0][0].headers['cookie'].should.eql('foo=bar') + done(); + }) + }) + + }) + + }) + + describe('and set_referer is true', function() { + + before(function() { + opts = { follow_set_referer: true }; + }) + + // defaults to follow host and protocol + describe('and redirected to the same path on same host and different protocol', function() { + + before(function() { + location = url.replace(protocol, other_protocol); + }) + + it('follows redirect', followed_other_protocol); + + it('sets Referer header when following redirect', function(done) { + send_request(opts, function(err, resp) { + // spies.http.args[0][3].should.eql({ foo: 'bar'}); + spies.http.args[0][0].headers['referer'].should.eql("http://" + host + ":8888/hello"); + done(); + }) + }) + + it('does not resend cookies if follow_set_cookies is false', function(done) { + opts.cookies = {foo: 'bar'}; + opts.follow_set_cookies = false; + send_request(opts, function(err, resp) { + should.not.exist(spies.http.args[0][0].headers['cookie']); + done(); + }) + }) + + it('resends cookies if follow_set_cookies is true', function(done) { + opts.cookies = {foo: 'bar'}; + opts.follow_set_cookies = true; + send_request(opts, function(err, resp) { + spies.http.args[0][0].headers['cookie'].should.eql('foo=bar') + done(); + }) + }) + + }) + + }) + + describe('and keep_method is true', function() { + + before(function() { + opts = { follow_keep_method: true }; + }) + + // defaults to follow host and protocol + describe('and redirected to the same path on same host and different protocol', function() { + + before(function() { + location = url.replace(protocol, other_protocol); + }) + + it('follows redirect', followed_other_protocol); + + it('sends a POST request with the original data', function(done) { + send_request(opts, function(err, resp) { + spies.http.args[0][0].method.should.eql('post'); + // spies.http.args[0][3].should.eql({ foo: 'bar'}); + done(); + }) + }) + + it('does not resend cookies if follow_set_cookies is false', function(done) { + opts.cookies = {foo: 'bar'}; + opts.follow_set_cookies = false; + send_request(opts, function(err, resp) { + should.not.exist(spies.http.args[0][0].headers['cookie']); + done(); + }) + }) + + it('resends cookies if follow_set_cookies is true', function(done) { + opts.cookies = {foo: 'bar'}; + opts.follow_set_cookies = true; + send_request(opts, function(err, resp) { + spies.http.args[0][0].headers['cookie'].should.eql('foo=bar') + done(); + }) + }) + + }) + + }) + + describe('and if_same_host is false', function() { + + before(function() { + opts = { follow_if_same_host: false }; + }) + + // by default it will follow other protocols + describe('and redirected to same path on another domain, same protocol', function() { + before(function() { + location = url.replace(host, hostname); + }) + + it('follows redirect', followed_same_protocol); + + it('does not resend cookies even if follow_set_cookies is true', function(done) { + opts.cookies = {foo: 'bar'}; + opts.follow_set_cookies = true; + send_request(opts, function(err, resp) { + should.not.exist(spies.http.args[0][0].headers['cookie']); + done(); + }) + }) + }) + + }) + + describe('and if_same_host is true', function() { + + before(function() { + opts = { follow_if_same_host: true }; + }) + + // by default it will follow other protocols + describe('and redirected to same path on another domain, same protocol', function() { + before(function() { + location = url.replace(host, hostname); + }) + + it('does not follow redirect', not_followed); + }) + + }) + + describe('and if_same_protocol is false', function() { + + before(function() { + opts = { follow_if_same_protocol: false }; + }) + + // by default it will follow other hosts + describe('and redirected to same path on another domain, different protocol', function() { + before(function() { + location = url.replace(host, hostname).replace(protocol, other_protocol).replace(ports[protocol], ports[other_protocol]); + }) + + it('follows redirect', followed_other_protocol); + + it('does not resend cookies even if follow_set_cookies is true', function(done) { + opts.cookies = {foo: 'bar'}; + opts.follow_set_cookies = true; + send_request(opts, function(err, resp) { + should.not.exist(spies.http.args[0][0].headers['cookie']); + done(); + }) + }) + }) + + }) + + describe('and if_same_protocol is true', function() { + + before(function() { + opts = { follow_if_same_protocol: true }; + }) + + // by default it will follow other hosts + describe('and redirected to same path on another domain, different protocol', function() { + before(function() { + location = url.replace(host, hostname).replace(protocol, other_protocol).replace(ports[protocol], ports[other_protocol]); + }) + it('does not follow redirect', not_followed); + }) + + }) + + }) + + }) + +}); diff --git a/node_modules/needle/test/redirect_with_timeout.js b/node_modules/needle/test/redirect_with_timeout.js new file mode 100644 index 0000000..7e8e02e --- /dev/null +++ b/node_modules/needle/test/redirect_with_timeout.js @@ -0,0 +1,45 @@ +var should = require('should') +var needle = require('./../') + +describe('follow redirects when read_timeout is set', function () { + + it('clear timeout before following redirect', function (done) { + var opts = { + open_timeout: 1000, + read_timeout: 3000, + follow: 5, + user_agent: 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36' + } + + var timedOut = 0 + var redirects = 0 + + var timer = setTimeout(function () { + var hasRedirects = redirects > 0 + hasRedirects.should.equal(true) + done() + }, opts.read_timeout || 3000) + + var resp = needle.get('http://google.com/', opts, function (err, resp, body) { + var noErr = err === null + var hasBody = body.length > 0 + noErr.should.equal(true); + hasBody.should.equal(true); + }); + + resp.on('redirect', function (location) { + redirects++ + // console.info(' Redirected to ', location) + }) + + resp.on('timeout', function (type) { + timedOut++ + timedOut.should.equal(0) + // console.error(' ', type, 'timeout') + clearTimeout(timer) + done() + }) + + }).timeout(30000) + +}) \ No newline at end of file diff --git a/node_modules/needle/test/request_stream_spec.js b/node_modules/needle/test/request_stream_spec.js new file mode 100644 index 0000000..8f37533 --- /dev/null +++ b/node_modules/needle/test/request_stream_spec.js @@ -0,0 +1,164 @@ +var fs = require('fs'), + needle = require('..'), + stream = require('stream'), + http = require('http'), + should = require('should'), + sinon = require('sinon'); + +var port = 2233; + +var node_major_ver = parseInt(process.version.split('.')[0].replace('v', '')); +var node_minor_ver = parseInt(process.version.split('.')[1]); + +describe('request stream length', function() { + + var server, writable; + + function createServer() { + return http.createServer(function(req, res) { + + req.on('data', function(chunk) { + // console.log(chunk.length); + }) + + req.on('end', function() { + res.writeHeader(200, { 'Content-Type': 'application/json'}) + res.end(JSON.stringify({ headers: req.headers })) + }) + + }) + } + + before(function(done) { + server = createServer(); + server.listen(port, done) + }) + + beforeEach(function() { + writable = new stream.Readable(); + writable._read = function() { + this.push('hello world'); + this.push(null); + } + }) + + after(function(done) { + server.close(done) + }) + + function send_request(opts, cb) { + needle.post('http://localhost:' + port, writable, opts, cb) + } + + describe('no stream_length set', function() { + + it('doesnt set Content-Length header', function(done) { + send_request({}, function(err, resp) { + should.not.exist(resp.body.headers['content-length']); + done() + }) + }) + + it('works if Transfer-Encoding is not set', function(done) { + send_request({}, function(err, resp) { + should.not.exist(err); + resp.statusCode.should.eql(200); + done() + }) + }) + + }) + + describe('stream_length is set to valid value', function() { + + it('sets Content-Length header to that value', function(done) { + send_request({ stream_length: 11 }, function(err, resp) { + resp.body.headers['content-length'].should.eql('11'); + done() + }) + }) + + it('works if Transfer-Encoding is set to a blank string', function(done) { + send_request({ stream_length: 11, headers: { 'Transfer-Encoding': '' }}, function(err, resp) { + should.not.exist(err); + var code = node_major_ver == 10 && node_minor_ver > 15 ? 400 : 200; + resp.statusCode.should.eql(code); + done() + }) + }) + + it('works if Transfer-Encoding is not set', function(done) { + send_request({ stream_length: 11 }, function(err, resp) { + should.not.exist(err); + resp.statusCode.should.eql(200); + done() + }) + }) + + }) + + + describe('stream_length set to 0', function() { + + describe('stream with path', function() { + + var stub; + + beforeEach(function() { + writable.path = '/foo/bar'; + stub = sinon.stub(fs, 'stat').callsFake(function(path, cb) { + cb(null, { size: 11 }) + }) + }) + + afterEach(function() { + stub.restore(); + }) + + it('sets Content-Length header to streams length', function(done) { + send_request({ stream_length: 0 }, function(err, resp) { + resp.body.headers['content-length'].should.eql('11'); + done() + }) + }) + + it('works if Transfer-Encoding is set to a blank string', function(done) { + send_request({ stream_length: 0, headers: { 'Transfer-Encoding': '' }}, function(err, resp) { + should.not.exist(err); + var code = node_major_ver == 10 && node_minor_ver > 15 ? 400 : 200; + resp.statusCode.should.eql(code); + done() + }) + }) + + it('works if Transfer-Encoding is not set', function(done) { + send_request({ stream_length: 0 }, function(err, resp) { + should.not.exist(err); + resp.statusCode.should.eql(200); + done() + }) + }) + + }) + + describe('stream without path', function() { + + it('does not set Content-Length header', function(done) { + send_request({ stream_length: 0 }, function(err, resp) { + should.not.exist(resp.body.headers['content-length']); + done() + }) + }) + + it('works if Transfer-Encoding is not set', function(done) { + send_request({ stream_length: 0 }, function(err, resp) { + should.not.exist(err); + resp.statusCode.should.eql(200); + done() + }) + }) + }) + + }) + +}) diff --git a/node_modules/needle/test/response_stream_spec.js b/node_modules/needle/test/response_stream_spec.js new file mode 100644 index 0000000..a0ccef8 --- /dev/null +++ b/node_modules/needle/test/response_stream_spec.js @@ -0,0 +1,138 @@ +var should = require('should'), + needle = require('./../'), + http = require('http'), + stream = require('stream'), + fs = require('fs'), + port = 11111, + server; + +describe('response streams', function() { + + describe('when the server sends back json', function(){ + + before(function(done) { + server = http.createServer(function(req, res) { + res.setHeader('Content-Type', 'application/json') + res.end('{"foo":"bar"}') + }).listen(port, done); + }); + + after(function(done) { + server.close(done); + }) + + describe('and the client uses streams', function(){ + + it('creates a proper streams2 stream', function(done) { + var stream = needle.get('localhost:' + port) + + // newer node versions set this to null instead of false + var bool = !!stream._readableState.flowing; + should.equal(false, bool); + + var readableCalled = false; + stream.on('readable', function() { + readableCalled = true; + }) + + stream.on('finish', function() { + readableCalled.should.be.true; + done(); + }); + + stream.resume(); + }) + + it('emits a single data item which is our JSON object', function(done) { + var stream = needle.get('localhost:' + port) + + var chunks = []; + stream.on('readable', function () { + while (chunk = this.read()) { + chunk.should.be.an.Object; + chunks.push(chunk); + } + }) + + stream.on('done', function () { + chunks.should.have.length(1) + chunks[0].should.have.property('foo', 'bar'); + done(); + }); + }) + + it('emits a raw buffer if we do not want to parse JSON', function(done) { + var stream = needle.get('localhost:' + port, { parse: false }) + + var chunks = []; + stream.on('readable', function () { + while (chunk = this.read()) { + Buffer.isBuffer(chunk).should.be.true; + chunks.push(chunk); + } + }) + + stream.on('done', function() { + var body = Buffer.concat(chunks).toString(); + body.should.equal('{"foo":"bar"}') + done(); + }); + }) + + }) + }) + + describe('when the server sends back what was posted to it', function () { + var file = 'asdf.txt'; + + before(function(done){ + server = http.createServer(function(req, res) { + res.setHeader('Content-Type', 'application/octet') + req.pipe(res); + }).listen(port); + + fs.writeFile(file, 'contents of stream', done); + }); + + after(function(done){ + server.close(); + fs.unlink(file, done); + }) + + it('can PUT a stream', function (done) { + var stream = needle.put('localhost:' + port, fs.createReadStream(file), { stream: true }); + + var chunks = []; + stream.on('readable', function () { + while (chunk = this.read()) { + Buffer.isBuffer(chunk).should.be.true; + chunks.push(chunk); + } + }) + + stream.on('end', function () { + var body = Buffer.concat(chunks).toString(); + body.should.equal('contents of stream') + done(); + }); + }); + + it('can PATCH a stream', function (done) { + var stream = needle.patch('localhost:' + port, fs.createReadStream(file), { stream: true }); + + var chunks = []; + stream.on('readable', function () { + while (chunk = this.read()) { + Buffer.isBuffer(chunk).should.be.true; + chunks.push(chunk); + } + }) + + stream.on('end', function () { + var body = Buffer.concat(chunks).toString(); + body.should.equal('contents of stream') + done(); + }); + }); + }) +}) diff --git a/node_modules/needle/test/socket_cleanup_spec.js b/node_modules/needle/test/socket_cleanup_spec.js new file mode 100644 index 0000000..fdfc0cb --- /dev/null +++ b/node_modules/needle/test/socket_cleanup_spec.js @@ -0,0 +1,79 @@ +var should = require('should'), + needle = require('./../'), + fs = require('fs'), + https = require('https'), + stream = require('stream'); + +describe('socket cleanup', function(){ + + var outFile = 'test/tmp'; + var httpAgent, readStream, writeStream + + var file = 'ubuntu-21.04-desktop-amd64.iso', + url = 'https://releases.ubuntu.com/21.04/' + file; + + function getActiveSockets() { + return Object.keys(httpAgent.sockets).length + } + + before(function() { + httpAgent = new https.Agent({ + keepAlive : true, + maxSockets : 1 + }); + }) + + after(function() { + httpAgent.destroy() + fs.unlinkSync(outFile); + }) + + it('should cleanup sockets on ERR_STREAM_PREMATURE_CLOSE (using .pipe)', function(done) { + getActiveSockets().should.eql(0); + + var resp = needle.get(url, { agent: httpAgent }); + var writable = fs.createWriteStream(outFile); + resp.pipe(writable); + + writable.on('close', function(e) { + if (!resp.done) resp.abort(); + }) + + setTimeout(function() { + getActiveSockets().should.eql(1); + writable.destroy(); + }, 50); + + setTimeout(function() { + getActiveSockets().should.eql(0); + done(); + }, 500); // takes a bit + }) + + it('should cleanup sockets on ERR_STREAM_PREMATURE_CLOSE (using stream.pipeline)', function(done) { + if (!stream.pipeline) + return done() + + getActiveSockets().should.eql(0); + + var resp = needle.get(url, { agent: httpAgent }); + var writable = fs.createWriteStream(outFile); + + stream.pipeline(resp, writable, function(err) { + err.code.should.eql('ERR_STREAM_PREMATURE_CLOSE') + if (err) resp.request.destroy(); + }); + + setTimeout(function() { + getActiveSockets().should.eql(1); + writable.destroy(); + }, 50); + + setTimeout(function() { + getActiveSockets().should.eql(0); + done(); + }, 1000); // takes a bit + + }) + +}) diff --git a/node_modules/needle/test/socket_pool_spec.js b/node_modules/needle/test/socket_pool_spec.js new file mode 100644 index 0000000..75080bd --- /dev/null +++ b/node_modules/needle/test/socket_pool_spec.js @@ -0,0 +1,67 @@ +var needle = require('../'), + should = require('should'), + http = require('http'); + +var server, port = 11112; + +describe('socket reuse', function() { + + var httpAgent = new http.Agent({ + keepAlive : true, + maxSockets : 1 + }); + + before(function(done) { + server = http.createServer(function(req, res) { + res.setHeader('Content-Type', 'application/json'); + setTimeout(function() { + res.end('{"foo":"bar"}'); + }, 50); + }).listen(port, done); + }); + + after(function(done) { + httpAgent.destroy(); + server.close(done); + }); + + describe('when sockets are reused', function() { + + it('does not duplicate listeners on .end', function(done) { + + var last_error; + var count = 10; + + function completed(err) { + --count || done(last_error); + } + + function send() { + needle.get('localhost:' + port, { agent: httpAgent }, function(err, resp) { + if (err) + throw new Error("Unexpected error: " + err); + + // lets go through all sockets and inspect all socket objects + for (hostTarget in httpAgent.sockets) { + httpAgent.sockets[hostTarget].forEach(function(socket) { + // normally, there are 2 internal listeners and 1 needle sets up, + // but to be sure the test does not fail even if newer node versions + // introduce additional listeners, we use a higher limit. + try { + socket.listeners('end').length.should.be.below(5, "too many listeners on the socket object's end event"); + } catch (e) { + last_error = e; + } + }); + } + + completed(); + }); + } + + for (var i = 0; i < count; i++) { + send(); + } + }); + }); +}); diff --git a/node_modules/needle/test/stream_events_spec.js b/node_modules/needle/test/stream_events_spec.js new file mode 100644 index 0000000..57ef994 --- /dev/null +++ b/node_modules/needle/test/stream_events_spec.js @@ -0,0 +1,144 @@ +var needle = require('../'), + fs = require('fs'), + should = require('should'), + helpers = require('./helpers'); + +describe('stream events', function() { + + var server, + port = 3456, + responseData, + serverOpts = {}, + requestHandler = function(req, res) { res.end('OK') } + + before(function() { + var opts = { + port: port, + handler: function(req, res) { requestHandler(req, res) } + } + server = helpers.server(opts); + }) + + after(function() { + server.close(); + }) + + beforeEach(function() { + responseData = ''; + }) + + describe('when consuming data directly', function() { + + function send_request(opts, cb) { + return needle + .get('http://localhost:' + port, opts) + .on('data', function(data) { responseData += data }) + } + + describe('and request stream fails', function() { + + it('emits done event with error', function(done) { + requestHandler = function(req, res) { req.socket.destroy() } + + send_request({}).on('done', function(err) { + err.code.should.eql('ECONNRESET'); + responseData.should.eql(''); + done() + }) + }) + + }) + + describe('and request succeeds but decoding fails', function() { + + it('emits done event without error', function(done) { + requestHandler = function(req, res) { + res.setHeader('Content-Type', 'application/json') + res.end('invalid:json') + } + + send_request({ json: true }).on('done', function(err) { + should.not.exist(err); + responseData.should.eql('invalid:json'); + done() + }) + }) + + }) + + describe('and request succeeds and pipeline works ok', function() { + + it('emits done event without error', function(done) { + requestHandler = function(req, res) { res.end('{"ok":1}') } + + send_request({ json: true }).on('done', function(err) { + should.not.exist(err); + responseData.should.eql('{"ok":1}'); + done() + }) + }) + + }) + + }) + + describe('when piping to a fs writableStream', function() { + + var outFile = 'test/tmp.dat'; + + function send_request(opts, cb) { + return needle + .get('http://localhost:' + port, opts) + .pipe(fs.createWriteStream(outFile)) + .on('data', function(data) { responseData += data }) + } + + after(function(done) { + fs.unlink(outFile, done) + }) + + describe('and request stream fails', function() { + + it('final stream emits done event with error', function(done) { + requestHandler = function(req, res) { req.socket.destroy() } + + send_request({}).on('done', function(err) { + err.code.should.eql('ECONNRESET'); + done() + }) + }) + + }) + + describe('and request succeeds but decoding fails', function() { + + it('final stream emits done event without error', function(done) { + requestHandler = function(req, res) { + res.setHeader('Content-Type', 'application/json') + res.end('invalid:json') + } + + send_request({ json: true }).on('done', function(err) { + should.not.exist(err); + done() + }) + }) + + }) + + describe('and request succeeds and pipeline works ok', function() { + + it('final stream emits done event without error', function(done) { + requestHandler = function(req, res) { res.end('{"ok":1}') } + + send_request({ json: true }).on('done', function(err) { + should.not.exist(err); + done() + }) + }) + + }) + + }) + +}) \ No newline at end of file diff --git a/node_modules/needle/test/tls_options_spec.js b/node_modules/needle/test/tls_options_spec.js new file mode 100644 index 0000000..208f829 --- /dev/null +++ b/node_modules/needle/test/tls_options_spec.js @@ -0,0 +1,57 @@ +var needle = require('..'), + https = require('https'), + helpers = require('./helpers'), + should = require('should'); + +describe('tls options', function() { + + describe('rejectUnauthorized: false', function() { + + var url = 'https://expired-rsa-dv.ssl.com/'; + + it('is an expired cert', function(done) { + needle.get(url, function(err, resp) { + err.code.should.eql('CERT_HAS_EXPIRED') + should.not.exist(resp) + done() + }) + }) + + it('allows fetching pages under expired certificates', function(done) { + needle.get(url, { rejectUnauthorized: false }, function(err, resp) { + should.not.exist(err); + resp.statusCode.should.eql(200); + done() + }) + }) + + it('also works when using custom agent', function(done) { + var agent = new https.Agent({ rejectUnauthorized: true }) + + // should overwrite value from custom agent + needle.get(url, { rejectUnauthorized: false }, function(err, resp) { + should.not.exist(err); + resp.statusCode.should.eql(200); + done() + }) + + }) + + it('also works with shared/default agent', function(done) { + var agent = new https.Agent({ rejectUnauthorized: true }) + needle.defaults({ agent: agent }) + + // should overwrite value from custom agent + needle.get(url, { rejectUnauthorized: false }, function(err, resp) { + should.not.exist(err); + resp.statusCode.should.eql(200); + + needle.defaults({ agent: null }) + done() + }) + + }) + + }) + +}) \ No newline at end of file diff --git a/node_modules/needle/test/uri_modifier_spec.js b/node_modules/needle/test/uri_modifier_spec.js new file mode 100644 index 0000000..1a12a36 --- /dev/null +++ b/node_modules/needle/test/uri_modifier_spec.js @@ -0,0 +1,46 @@ +var needle = require('../'), + sinon = require('sinon'), + should = require('should'), + http = require('http'), + helpers = require('./helpers'); + +var port = 3456; + +describe('uri_modifier config parameter function', function() { + + var server, uri; + + function send_request(mw, cb) { + needle.get(uri, { uri_modifier: mw }, cb); + } + + before(function(done){ + server = helpers.server({ port: port }, done); + }) + + after(function(done) { + server.close(done); + }) + + describe('modifies uri', function() { + + var path = '/foo/replace'; + + before(function() { + uri = 'localhost:' + port + path + }); + + it('should modify path', function(done) { + send_request(function(uri) { + return uri.replace('/replace', ''); + }, function(err, res) { + should.not.exist(err); + should(res.req.path).be.exactly('/foo'); + done(); + }); + + }); + + }) + +}) diff --git a/node_modules/needle/test/url_spec.js b/node_modules/needle/test/url_spec.js new file mode 100644 index 0000000..5154d58 --- /dev/null +++ b/node_modules/needle/test/url_spec.js @@ -0,0 +1,155 @@ +var needle = require('../'), + sinon = require('sinon'), + should = require('should'), + http = require('http'), + helpers = require('./helpers'); + +var port = 3456; + +describe('urls', function() { + + var server, url; + + function send_request(cb) { + return needle.get(url, cb); + } + + before(function(done){ + server = helpers.server({ port: port }, done); + }) + + after(function(done) { + server.close(done); + }) + + describe('null URL', function(){ + + it('throws', function(){ + (function() { + send_request() + }).should.throw(); + }) + + }) + + describe('invalid protocol', function(){ + + before(function() { + url = 'foo://google.com/what' + }) + + it('does not throw', function(done) { + (function() { + send_request(function(err) { + done(); + }) + }).should.not.throw() + }) + + it('returns an error', function(done) { + send_request(function(err) { + err.should.be.an.Error; + err.code.should.match(/ENOTFOUND|EADDRINFO|EAI_AGAIN/) + done(); + }) + }) + + }) + + describe('invalid host', function(){ + + before(function() { + url = 'http://s1\\\u0002.com/' + }) + + it('fails', function(done) { + (function() { + send_request(function(){ }) + }.should.throw(TypeError)) + done() + }) + + }) + +/* + describe('invalid path', function(){ + + before(function() { + url = 'http://www.google.com\\\/x\\\ %^&*() /x2.com/' + }) + + it('fails', function(done) { + send_request(function(err) { + err.should.be.an.Error; + done(); + }) + }) + + }) +*/ + + describe('valid protocol and path', function() { + + before(function() { + url = 'http://localhost:' + port + '/foo'; + }) + + it('works', function(done) { + send_request(function(err){ + should.not.exist(err); + done(); + }) + }) + + }) + + describe('no protocol but with slashes and valid path', function() { + + before(function() { + url = '//localhost:' + port + '/foo'; + }) + + it('works', function(done) { + send_request(function(err){ + should.not.exist(err); + done(); + }) + }) + + }) + + describe('no protocol nor slashes and valid path', function() { + + before(function() { + url = 'localhost:' + port + '/foo'; + }) + + it('works', function(done) { + send_request(function(err){ + should.not.exist(err); + done(); + }) + }) + + }) + + describe('double encoding', function() { + + var path = '/foo?email=' + encodeURIComponent('what-ever@Example.Com'); + + before(function() { + url = 'localhost:' + port + path + }); + + it('should not occur', function(done) { + send_request(function(err, res) { + should.not.exist(err); + should(res.req.path).be.exactly(path); + done(); + }); + + }); + + }) + +}) diff --git a/node_modules/needle/test/utils/formidable.js b/node_modules/needle/test/utils/formidable.js new file mode 100644 index 0000000..ba1d983 --- /dev/null +++ b/node_modules/needle/test/utils/formidable.js @@ -0,0 +1,17 @@ +var formidable = require('formidable'), + http = require('http'), + util = require('util'); + +var port = process.argv[2] || 8888; + +http.createServer(function(req, res) { + var form = new formidable.IncomingForm(); + form.parse(req, function(err, fields, files) { + res.writeHead(200, {'content-type': 'text/plain'}); + res.write('received upload:\n\n'); + console.log(util.inspect({fields: fields, files: files})) + res.end(util.inspect({fields: fields, files: files})); + }); +}).listen(port); + +console.log('HTTP server listening on port ' + port); \ No newline at end of file diff --git a/node_modules/needle/test/utils/proxy.js b/node_modules/needle/test/utils/proxy.js new file mode 100644 index 0000000..531bf49 --- /dev/null +++ b/node_modules/needle/test/utils/proxy.js @@ -0,0 +1,62 @@ +var http = require('http'), + https = require('https'), + url = require('url'); + +var port = 1234, + log = true, + request_auth = false; + +http.createServer(function(request, response) { + + console.log(request.headers); + console.log("Got request: " + request.url); + console.log("Forwarding request to " + request.headers['host']); + + if (request_auth) { + if (!request.headers['proxy-authorization']) { + response.writeHead(407, {'Proxy-Authenticate': 'Basic realm="proxy.com"'}) + return response.end('Hello.'); + } + } + + var remote = url.parse(request.url); + var protocol = remote.protocol == 'https:' ? https : http; + + var opts = { + host: request.headers['host'], + port: remote.port || (remote.protocol == 'https:' ? 443 : 80), + method: request.method, + path: remote.pathname, + headers: request.headers + } + + var proxy_request = protocol.request(opts, function(proxy_response){ + + proxy_response.on('data', function(chunk) { + if (log) console.log(chunk.toString()); + response.write(chunk, 'binary'); + }); + proxy_response.on('end', function() { + response.end(); + }); + + response.writeHead(proxy_response.statusCode, proxy_response.headers); + }); + + request.on('data', function(chunk) { + if (log) console.log(chunk.toString()); + proxy_request.write(chunk, 'binary'); + }); + + request.on('end', function() { + proxy_request.end(); + }); + +}).listen(port); + +process.on('uncaughtException', function(err){ + console.log('Uncaught exception!'); + console.log(err); +}); + +console.log("Proxy server listening on port " + port); diff --git a/node_modules/needle/test/utils/test.js b/node_modules/needle/test/utils/test.js new file mode 100644 index 0000000..8d58d70 --- /dev/null +++ b/node_modules/needle/test/utils/test.js @@ -0,0 +1,104 @@ +// TODO: write specs. :) + +var fs = require('fs'), + client = require('./../../'); + +process.env.DEBUG = true; + +var response_callback = function(err, resp, body){ + console.log(err); + if(resp) console.log("Got status code " + resp.statusCode) + console.log(body); +} + +function simple_head(){ + client.head('http://www.amazon.com', response_callback); +} + +function simple_get(){ + client.get('http://www.nodejs.org', response_callback); +} + +function proxy_get(){ + client.get('https://www.google.com/search?q=nodejs', {proxy: 'http://localhost:1234'}, response_callback); +} + +function auth_get(){ + client.get('https://www.twitter.com', {username: 'asd', password: '123'}, response_callback); +} + +function simple_post(url){ + + var data = { + foo: 'bar', + baz: { + nested: 'attribute' + } + } + + client.post(url, data, response_callback); + +} + +function multipart_post(url){ + + var filename = 'test_file.txt'; + var data = 'Plain text data.\nLorem ipsum dolor sit amet.\nBla bla bla.\n'; + fs.writeFileSync(filename, data); + + var black_pixel = Buffer.from("data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=".replace(/^data:image\/\w+;base64,/, ""), "base64"); + + var data = { + foo: 'bar', + bar: 'baz', + nested: { + my_document: { file: filename, content_type: 'text/plain' }, + even: { + more: 'nesting' + } + }, + pixel: { filename: 'black_pixel.gif', buffer: black_pixel, content_type: 'image/gif' }, + field2: {value: JSON.stringify({"json":[ {"one":1}, {"two":2} ]}), content_type: 'application/json' } + } + + client.post(url, data, {multipart: true}, function(err, resp, body){ + + console.log(err); + console.log("Got status code " + resp.statusCode) + console.log(body); + fs.unlink(filename); + + }); + +} + +switch(process.argv[2]){ + case 'head': + simple_head(); + break; + case 'get': + simple_get(); + break; + case 'auth': + auth_get(); + break; + case 'proxy': + proxy_get(); + break; + case 'post': + simple_post(process.argv[3] || 'http://posttestserver.com/post.php'); + break; + case 'multipart': + multipart_post(process.argv[3] || 'http://posttestserver.com/post.php?dir=example'); + break; + case 'all': + simple_head(); + simple_get(); + auth_get(); + proxy_get(); + simple_post(process.argv[3] || 'http://posttestserver.com/post.php'); + multipart_post(process.argv[3] || 'http://posttestserver.com/post.php?dir=example'); + break; + default: + console.log("Usage: ./test.js [head|get|auth|proxy|multipart]") +} diff --git a/node_modules/needle/test/utils_spec.js b/node_modules/needle/test/utils_spec.js new file mode 100644 index 0000000..ce9685c --- /dev/null +++ b/node_modules/needle/test/utils_spec.js @@ -0,0 +1,105 @@ +var helpers = require('./helpers'), + should = require('should'), + sinon = require('sinon'), + utils = require('./../lib/utils'); + +describe('utils.should_proxy_to()', function() { + + var should_proxy_to = utils.should_proxy_to; + + var noProxy = ".ic1.mycorp,localhost,127.0.0.1,*.mycorp.org"; + var noProxyWithPorts = " ,.mycorp.org:1234,.ic1.mycorp,localhost,127.0.0.1"; + + var uris = { + hostname: "http://registry.random.opr.mycorp.org", + with_port: "http://registry.random.opr.mycorp.org:9874", + with_another_port: "http://registry.random.opr.mycorp.org:1234", + localhost: "http://localhost", + ip: "http://127.0.0.1" + } + + it("returns true if NO_PROXY is undefined", function(done) { + process.env.NO_PROXY = undefined; + should_proxy_to(uris.hostname).should.true() + delete process.env.NO_PROXY; + done(); + }); + + it("returns true if NO_PROXY is empty", function(done) { + process.env.NO_PROXY = ""; + should_proxy_to(uris.hostname).should.true() + delete process.env.NO_PROXY; + done(); + }); + + it("returns false if NO_PROXY is a wildcard", function(done) { + process.env.NO_PROXY = "*"; + should_proxy_to(uris.hostname).should.false() + delete process.env.NO_PROXY; + done(); + }); + + it("returns true if the host matches and the ports don't (URI doesn't have port specified)", function(done) { + process.env.NO_PROXY = noProxyWithPorts; + should_proxy_to(uris.hostname).should.true() + delete process.env.NO_PROXY; + done(); + }); + + it("returns true if the host matches and the ports don't (both have a port specified but just different values)", function(done) { + process.env.NO_PROXY = noProxyWithPorts; + should_proxy_to(uris.with_port).should.true() + delete process.env.NO_PROXY; + done(); + }); + + it("returns false if the host matches and the ports don't (no_proxy pattern doesn't have a port)", function(done) { + process.env.NO_PROXY = noProxy; + should_proxy_to(uris.with_port).should.false() + delete process.env.NO_PROXY; + done(); + }); + + it("returns false if host matches", function(done) { + process.env.NO_PROXY = noProxy; + should_proxy_to(uris.hostname).should.false() + delete process.env.NO_PROXY; + done(); + }); + + it("returns false if the host and port matches", function(done) { + process.env.NO_PROXY = noProxyWithPorts; + should_proxy_to(uris.with_another_port).should.false() + delete process.env.NO_PROXY; + done(); + }); + + it("returns false if the host matches (localhost)", function(done) { + process.env.NO_PROXY = noProxy; + should_proxy_to(uris.localhost).should.false() + delete process.env.NO_PROXY; + done(); + }); + + it("returns false if the host matches (ip)", function(done) { + process.env.NO_PROXY = noProxy; + should_proxy_to(uris.ip).should.false() + delete process.env.NO_PROXY; + done(); + }); + + it("returns false if the host matches (ip)", function(done) { + process.env.NO_PROXY = noProxy.replace(/,g/, " "); + should_proxy_to(uris.ip).should.false() + delete process.env.NO_PROXY; + done(); + }); + + it("returns false if the host matches (ip)", function(done) { + process.env.NO_PROXY = noProxy.replace(/,g/, " "); + should_proxy_to(uris.ip).should.false() + delete process.env.NO_PROXY; + done(); + }); + +}) 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..8f6cd4e --- /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":"18.17.0","date":"2023-07-18","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.18.0","date":"2023-09-18","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.19.0","date":"2023-11-29","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.20.0","date":"2024-03-26","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"},{"name":"nodejs","version":"20.3.0","date":"2023-06-08","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.4.0","date":"2023-07-04","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.5.0","date":"2023-07-19","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.6.0","date":"2023-08-23","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.7.0","date":"2023-09-18","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.8.0","date":"2023-09-28","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.9.0","date":"2023-10-24","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.10.0","date":"2023-11-22","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.11.0","date":"2024-01-09","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.12.0","date":"2024-03-26","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.13.0","date":"2024-05-07","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.14.0","date":"2024-05-28","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.15.0","date":"2024-06-20","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"21.0.0","date":"2023-10-17","lts":false,"security":false,"v8":"11.8.172.13"},{"name":"nodejs","version":"21.1.0","date":"2023-10-24","lts":false,"security":false,"v8":"11.8.172.15"},{"name":"nodejs","version":"21.2.0","date":"2023-11-14","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.3.0","date":"2023-11-30","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.4.0","date":"2023-12-05","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.5.0","date":"2023-12-19","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.6.0","date":"2024-01-14","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.7.0","date":"2024-03-06","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"22.0.0","date":"2024-04-24","lts":false,"security":false,"v8":"12.4.254.14"},{"name":"nodejs","version":"22.1.0","date":"2024-05-02","lts":false,"security":false,"v8":"12.4.254.14"},{"name":"nodejs","version":"22.2.0","date":"2024-05-15","lts":false,"security":false,"v8":"12.4.254.14"},{"name":"nodejs","version":"22.3.0","date":"2024-06-11","lts":false,"security":false,"v8":"12.4.254.20"},{"name":"nodejs","version":"22.4.0","date":"2024-07-02","lts":false,"security":false,"v8":"12.4.254.21"},{"name":"nodejs","version":"22.5.0","date":"2024-07-17","lts":false,"security":false,"v8":"12.4.254.21"}] \ 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..633bd3c --- /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":"Iron"},"v21":{"start":"2023-10-17","maintenance":"2024-04-01","end":"2024-06-01"},"v22":{"start":"2024-04-24","lts":"2024-10-29","maintenance":"2025-10-21","end":"2027-04-30","codename":""},"v23":{"start":"2024-10-15","maintenance":"2025-04-01","end":"2025-06-01"},"v24":{"start":"2025-04-22","lts":"2025-10-28","maintenance":"2026-10-20","end":"2028-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..2d7d9b2 --- /dev/null +++ b/node_modules/node-releases/package.json @@ -0,0 +1,22 @@ +{ + "name": "node-releases", + "version": "2.0.18", + "description": "Node.js releases data", + "type": "module", + "scripts": { + "build": "node scripts/build.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/chicoxyzzy/node-releases.git" + }, + "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/object-assign/index.js b/node_modules/object-assign/index.js new file mode 100644 index 0000000..0930cf8 --- /dev/null +++ b/node_modules/object-assign/index.js @@ -0,0 +1,90 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +'use strict'; +/* eslint-disable no-unused-vars */ +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var propIsEnumerable = Object.prototype.propertyIsEnumerable; + +function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); +} + +function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } +} + +module.exports = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; +}; diff --git a/node_modules/object-assign/license b/node_modules/object-assign/license new file mode 100644 index 0000000..654d0bf --- /dev/null +++ b/node_modules/object-assign/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/object-assign/package.json b/node_modules/object-assign/package.json new file mode 100644 index 0000000..503eb1e --- /dev/null +++ b/node_modules/object-assign/package.json @@ -0,0 +1,42 @@ +{ + "name": "object-assign", + "version": "4.1.1", + "description": "ES2015 `Object.assign()` ponyfill", + "license": "MIT", + "repository": "sindresorhus/object-assign", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "xo && ava", + "bench": "matcha bench.js" + }, + "files": [ + "index.js" + ], + "keywords": [ + "object", + "assign", + "extend", + "properties", + "es2015", + "ecmascript", + "harmony", + "ponyfill", + "prollyfill", + "polyfill", + "shim", + "browser" + ], + "devDependencies": { + "ava": "^0.16.0", + "lodash": "^4.16.4", + "matcha": "^0.7.0", + "xo": "^0.16.0" + } +} diff --git a/node_modules/object-assign/readme.md b/node_modules/object-assign/readme.md new file mode 100644 index 0000000..1be09d3 --- /dev/null +++ b/node_modules/object-assign/readme.md @@ -0,0 +1,61 @@ +# object-assign [![Build Status](https://travis-ci.org/sindresorhus/object-assign.svg?branch=master)](https://travis-ci.org/sindresorhus/object-assign) + +> ES2015 [`Object.assign()`](http://www.2ality.com/2014/01/object-assign.html) [ponyfill](https://ponyfill.com) + + +## Use the built-in + +Node.js 4 and up, as well as every evergreen browser (Chrome, Edge, Firefox, Opera, Safari), +support `Object.assign()` :tada:. If you target only those environments, then by all +means, use `Object.assign()` instead of this package. + + +## Install + +``` +$ npm install --save object-assign +``` + + +## Usage + +```js +const objectAssign = require('object-assign'); + +objectAssign({foo: 0}, {bar: 1}); +//=> {foo: 0, bar: 1} + +// multiple sources +objectAssign({foo: 0}, {bar: 1}, {baz: 2}); +//=> {foo: 0, bar: 1, baz: 2} + +// overwrites equal keys +objectAssign({foo: 0}, {foo: 1}, {foo: 2}); +//=> {foo: 2} + +// ignores null and undefined sources +objectAssign({foo: 0}, null, {bar: 1}, undefined); +//=> {foo: 0, bar: 1} +``` + + +## API + +### objectAssign(target, [source, ...]) + +Assigns enumerable own properties of `source` objects to the `target` object and returns the `target` object. Additional `source` objects will overwrite previous ones. + + +## Resources + +- [ES2015 spec - Object.assign](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign) + + +## Related + +- [deep-assign](https://github.com/sindresorhus/deep-assign) - Recursive `Object.assign()` + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/once/LICENSE b/node_modules/once/LICENSE new file mode 100644 index 0000000..19129e3 --- /dev/null +++ b/node_modules/once/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter 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/once/README.md b/node_modules/once/README.md new file mode 100644 index 0000000..1f1ffca --- /dev/null +++ b/node_modules/once/README.md @@ -0,0 +1,79 @@ +# once + +Only call a function once. + +## usage + +```javascript +var once = require('once') + +function load (file, cb) { + cb = once(cb) + loader.load('file') + loader.once('load', cb) + loader.once('error', cb) +} +``` + +Or add to the Function.prototype in a responsible way: + +```javascript +// only has to be done once +require('once').proto() + +function load (file, cb) { + cb = cb.once() + loader.load('file') + loader.once('load', cb) + loader.once('error', cb) +} +``` + +Ironically, the prototype feature makes this module twice as +complicated as necessary. + +To check whether you function has been called, use `fn.called`. Once the +function is called for the first time the return value of the original +function is saved in `fn.value` and subsequent calls will continue to +return this value. + +```javascript +var once = require('once') + +function load (cb) { + cb = once(cb) + var stream = createStream() + stream.once('data', cb) + stream.once('end', function () { + if (!cb.called) cb(new Error('not found')) + }) +} +``` + +## `once.strict(func)` + +Throw an error if the function is called twice. + +Some functions are expected to be called only once. Using `once` for them would +potentially hide logical errors. + +In the example below, the `greet` function has to call the callback only once: + +```javascript +function greet (name, cb) { + // return is missing from the if statement + // when no name is passed, the callback is called twice + if (!name) cb('Hello anonymous') + cb('Hello ' + name) +} + +function log (msg) { + console.log(msg) +} + +// this will print 'Hello anonymous' but the logical error will be missed +greet(null, once(msg)) + +// once.strict will print 'Hello anonymous' and throw an error when the callback will be called the second time +greet(null, once.strict(msg)) +``` diff --git a/node_modules/once/once.js b/node_modules/once/once.js new file mode 100644 index 0000000..2354067 --- /dev/null +++ b/node_modules/once/once.js @@ -0,0 +1,42 @@ +var wrappy = require('wrappy') +module.exports = wrappy(once) +module.exports.strict = wrappy(onceStrict) + +once.proto = once(function () { + Object.defineProperty(Function.prototype, 'once', { + value: function () { + return once(this) + }, + configurable: true + }) + + Object.defineProperty(Function.prototype, 'onceStrict', { + value: function () { + return onceStrict(this) + }, + configurable: true + }) +}) + +function once (fn) { + var f = function () { + if (f.called) return f.value + f.called = true + return f.value = fn.apply(this, arguments) + } + f.called = false + return f +} + +function onceStrict (fn) { + var f = function () { + if (f.called) + throw new Error(f.onceError) + f.called = true + return f.value = fn.apply(this, arguments) + } + var name = fn.name || 'Function wrapped with `once`' + f.onceError = name + " shouldn't be called more than once" + f.called = false + return f +} diff --git a/node_modules/once/package.json b/node_modules/once/package.json new file mode 100644 index 0000000..16815b2 --- /dev/null +++ b/node_modules/once/package.json @@ -0,0 +1,33 @@ +{ + "name": "once", + "version": "1.4.0", + "description": "Run a function exactly one time", + "main": "once.js", + "directories": { + "test": "test" + }, + "dependencies": { + "wrappy": "1" + }, + "devDependencies": { + "tap": "^7.0.1" + }, + "scripts": { + "test": "tap test/*.js" + }, + "files": [ + "once.js" + ], + "repository": { + "type": "git", + "url": "git://github.com/isaacs/once" + }, + "keywords": [ + "once", + "function", + "one", + "single" + ], + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "license": "ISC" +} diff --git a/node_modules/os-homedir/index.js b/node_modules/os-homedir/index.js new file mode 100644 index 0000000..3306616 --- /dev/null +++ b/node_modules/os-homedir/index.js @@ -0,0 +1,24 @@ +'use strict'; +var os = require('os'); + +function homedir() { + var env = process.env; + var home = env.HOME; + var user = env.LOGNAME || env.USER || env.LNAME || env.USERNAME; + + if (process.platform === 'win32') { + return env.USERPROFILE || env.HOMEDRIVE + env.HOMEPATH || home || null; + } + + if (process.platform === 'darwin') { + return home || (user ? '/Users/' + user : null); + } + + if (process.platform === 'linux') { + return home || (process.getuid() === 0 ? '/root' : (user ? '/home/' + user : null)); + } + + return home || null; +} + +module.exports = typeof os.homedir === 'function' ? os.homedir : homedir; diff --git a/node_modules/os-homedir/license b/node_modules/os-homedir/license new file mode 100644 index 0000000..654d0bf --- /dev/null +++ b/node_modules/os-homedir/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/os-homedir/package.json b/node_modules/os-homedir/package.json new file mode 100644 index 0000000..525b225 --- /dev/null +++ b/node_modules/os-homedir/package.json @@ -0,0 +1,41 @@ +{ + "name": "os-homedir", + "version": "1.0.2", + "description": "Node.js 4 `os.homedir()` ponyfill", + "license": "MIT", + "repository": "sindresorhus/os-homedir", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "builtin", + "core", + "ponyfill", + "polyfill", + "shim", + "os", + "homedir", + "home", + "dir", + "directory", + "folder", + "user", + "path" + ], + "devDependencies": { + "ava": "*", + "path-exists": "^2.0.0", + "xo": "^0.16.0" + } +} diff --git a/node_modules/os-homedir/readme.md b/node_modules/os-homedir/readme.md new file mode 100644 index 0000000..856ae61 --- /dev/null +++ b/node_modules/os-homedir/readme.md @@ -0,0 +1,31 @@ +# os-homedir [![Build Status](https://travis-ci.org/sindresorhus/os-homedir.svg?branch=master)](https://travis-ci.org/sindresorhus/os-homedir) + +> Node.js 4 [`os.homedir()`](https://nodejs.org/api/os.html#os_os_homedir) [ponyfill](https://ponyfill.com) + + +## Install + +``` +$ npm install --save os-homedir +``` + + +## Usage + +```js +const osHomedir = require('os-homedir'); + +console.log(osHomedir()); +//=> '/Users/sindresorhus' +``` + + +## Related + +- [user-home](https://github.com/sindresorhus/user-home) - Same as this module but caches the result +- [home-or-tmp](https://github.com/sindresorhus/home-or-tmp) - Get the user home directory with fallback to the system temp directory + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/parse-node-version/LICENSE b/node_modules/parse-node-version/LICENSE new file mode 100644 index 0000000..bde9654 --- /dev/null +++ b/node_modules/parse-node-version/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2018 Blaine Bublitz and Eric Schoffstall + +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/parse-node-version/README.md b/node_modules/parse-node-version/README.md new file mode 100644 index 0000000..2bb35bf --- /dev/null +++ b/node_modules/parse-node-version/README.md @@ -0,0 +1,51 @@ +

      + + + +

      + +# parse-node-version + +[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-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] + +Turn node's process.version into something useful. + +## Usage + +```js +var nodeVersion = require('parse-node-version')(process.version); + +console.log( + nodeVersion.major, + nodeVersion.minor, + nodeVersion.patch, + nodeVersion.pre, + nodeVersion.build +); +``` + +## API + +### parseVersion(nodeVersionString) + +Takes a node version string (usually `process.version`) and returns an object with the `major`/`minor`/`patch` (which will all be numbers) and `pre`/`build` keys (which will always be a string). If the version doesn't contain any pre-release or build information, the properties will be returned as empty string. + +## License + +MIT + +[downloads-image]: http://img.shields.io/npm/dm/parse-node-version.svg +[npm-url]: https://www.npmjs.com/package/parse-node-version +[npm-image]: http://img.shields.io/npm/v/parse-node-version.svg + +[travis-url]: https://travis-ci.org/gulpjs/parse-node-version +[travis-image]: http://img.shields.io/travis/gulpjs/parse-node-version.svg?label=travis-ci + +[appveyor-url]: https://ci.appveyor.com/project/gulpjs/parse-node-version +[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/parse-node-version.svg?label=appveyor + +[coveralls-url]: https://coveralls.io/r/gulpjs/parse-node-version +[coveralls-image]: http://img.shields.io/coveralls/gulpjs/parse-node-version/master.svg + +[gitter-url]: https://gitter.im/gulpjs/gulp +[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg diff --git a/node_modules/parse-node-version/index.js b/node_modules/parse-node-version/index.js new file mode 100644 index 0000000..87fc764 --- /dev/null +++ b/node_modules/parse-node-version/index.js @@ -0,0 +1,20 @@ +'use strict'; + +function parseNodeVersion(version) { + var match = version.match(/^v(\d{1,2})\.(\d{1,2})\.(\d{1,2})(?:-([0-9A-Za-z-.]+))?(?:\+([0-9A-Za-z-.]+))?$/); // eslint-disable-line max-len + if (!match) { + throw new Error('Unable to parse: ' + version); + } + + var res = { + major: parseInt(match[1], 10), + minor: parseInt(match[2], 10), + patch: parseInt(match[3], 10), + pre: match[4] || '', + build: match[5] || '', + }; + + return res; +} + +module.exports = parseNodeVersion; diff --git a/node_modules/parse-node-version/package.json b/node_modules/parse-node-version/package.json new file mode 100644 index 0000000..f4124e2 --- /dev/null +++ b/node_modules/parse-node-version/package.json @@ -0,0 +1,40 @@ +{ + "name": "parse-node-version", + "version": "1.0.1", + "description": "Turn node's process.version into something useful.", + "author": "Gulp Team (http://gulpjs.com/)", + "contributors": [ + "Blaine Bublitz " + ], + "repository": "gulpjs/parse-node-version", + "license": "MIT", + "engines": { + "node": ">= 0.10" + }, + "main": "index.js", + "files": [ + "LICENSE", + "index.js" + ], + "scripts": { + "lint": "eslint .", + "pretest": "npm run lint", + "test": "mocha --async-only", + "cover": "istanbul cover _mocha --report lcovonly", + "coveralls": "npm run cover && istanbul-coveralls" + }, + "dependencies": {}, + "devDependencies": { + "eslint": "^2.13.0", + "eslint-config-gulp": "^3.0.1", + "expect": "^1.20.2", + "istanbul": "^0.4.3", + "istanbul-coveralls": "^1.0.3", + "mocha": "^3.5.3" + }, + "keywords": [ + "process.version", + "node version", + "version parse" + ] +} diff --git a/node_modules/parse-passwd/LICENSE b/node_modules/parse-passwd/LICENSE new file mode 100644 index 0000000..f92fdcf --- /dev/null +++ b/node_modules/parse-passwd/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Brian Woodward + +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/parse-passwd/README.md b/node_modules/parse-passwd/README.md new file mode 100644 index 0000000..31b1e79 --- /dev/null +++ b/node_modules/parse-passwd/README.md @@ -0,0 +1,86 @@ +# parse-passwd [![NPM version](https://img.shields.io/npm/v/parse-passwd.svg?style=flat)](https://www.npmjs.com/package/parse-passwd) [![NPM downloads](https://img.shields.io/npm/dm/parse-passwd.svg?style=flat)](https://npmjs.org/package/parse-passwd) [![Linux Build Status](https://img.shields.io/travis/doowb/parse-passwd.svg?style=flat&label=Travis)](https://travis-ci.org/doowb/parse-passwd) [![Windows Build Status](https://img.shields.io/appveyor/ci/doowb/parse-passwd.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/doowb/parse-passwd) + +> Parse a passwd file into a list of users. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save parse-passwd +``` + +## Usage + +```js +var parse = require('parse-passwd'); +``` + +## API + +**Example** + +```js +// assuming '/etc/passwd' contains: +// doowb:*:123:123:Brian Woodward:/Users/doowb:/bin/bash +console.log(parse(fs.readFileSync('/etc/passwd', 'utf8'))); + +//=> [ +//=> { +//=> username: 'doowb', +//=> password: '*', +//=> uid: '123', +//=> gid: '123', +//=> gecos: 'Brian Woodward', +//=> homedir: '/Users/doowb', +//=> shell: '/bin/bash' +//=> } +//=> ] +``` + +**Params** + +* `content` **{String}**: Content of a passwd file to parse. +* `returns` **{Array}**: Array of user objects parsed from the content. + +## 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](contributing.md) for avice on opening issues, pull requests, and coding standards. + +### 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 + +**Brian Woodward** + +* [github/doowb](https://github.com/doowb) +* [twitter/doowb](http://twitter.com/doowb) + +### License + +Copyright © 2016, [Brian Woodward](https://github.com/doowb). +Released under the [MIT license](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.2.0, on October 19, 2016._ \ No newline at end of file diff --git a/node_modules/parse-passwd/index.js b/node_modules/parse-passwd/index.js new file mode 100644 index 0000000..7524520 --- /dev/null +++ b/node_modules/parse-passwd/index.js @@ -0,0 +1,56 @@ +'use strict'; + +/** + * Parse the content of a passwd file into a list of user objects. + * This function ignores blank lines and comments. + * + * ```js + * // assuming '/etc/passwd' contains: + * // doowb:*:123:123:Brian Woodward:/Users/doowb:/bin/bash + * console.log(parse(fs.readFileSync('/etc/passwd', 'utf8'))); + * + * //=> [ + * //=> { + * //=> username: 'doowb', + * //=> password: '*', + * //=> uid: '123', + * //=> gid: '123', + * //=> gecos: 'Brian Woodward', + * //=> homedir: '/Users/doowb', + * //=> shell: '/bin/bash' + * //=> } + * //=> ] + * ``` + * @param {String} `content` Content of a passwd file to parse. + * @return {Array} Array of user objects parsed from the content. + * @api public + */ + +module.exports = function(content) { + if (typeof content !== 'string') { + throw new Error('expected a string'); + } + return content + .split('\n') + .map(user) + .filter(Boolean); +}; + +function user(line, i) { + if (!line || !line.length || line.charAt(0) === '#') { + return null; + } + + // see https://en.wikipedia.org/wiki/Passwd for field descriptions + var fields = line.split(':'); + return { + username: fields[0], + password: fields[1], + uid: fields[2], + gid: fields[3], + // see https://en.wikipedia.org/wiki/Gecos_field for GECOS field descriptions + gecos: fields[4], + homedir: fields[5], + shell: fields[6] + }; +} diff --git a/node_modules/parse-passwd/package.json b/node_modules/parse-passwd/package.json new file mode 100644 index 0000000..b09fb0f --- /dev/null +++ b/node_modules/parse-passwd/package.json @@ -0,0 +1,55 @@ +{ + "name": "parse-passwd", + "description": "Parse a passwd file into a list of users.", + "version": "1.0.0", + "homepage": "https://github.com/doowb/parse-passwd", + "author": "Brian Woodward (https://github.com/doowb)", + "repository": "doowb/parse-passwd", + "bugs": { + "url": "https://github.com/doowb/parse-passwd/issues" + }, + "license": "MIT", + "files": [ + "index.js", + "LICENSE" + ], + "main": "index.js", + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "gulp-format-md": "^0.1.11", + "mocha": "^3.1.2" + }, + "keywords": [ + "etc", + "etc-passwd", + "etc/passwd", + "parse", + "parse-passwd", + "passwd" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + }, + "related": { + "list": [] + }, + "reflinks": [ + "verb", + "verb-generate-readme" + ] + } +} diff --git a/node_modules/path-is-absolute/index.js b/node_modules/path-is-absolute/index.js new file mode 100644 index 0000000..22aa6c3 --- /dev/null +++ b/node_modules/path-is-absolute/index.js @@ -0,0 +1,20 @@ +'use strict'; + +function posix(path) { + return path.charAt(0) === '/'; +} + +function win32(path) { + // https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56 + var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; + var result = splitDeviceRe.exec(path); + var device = result[1] || ''; + var isUnc = Boolean(device && device.charAt(1) !== ':'); + + // UNC paths are always absolute + return Boolean(result[2] || isUnc); +} + +module.exports = process.platform === 'win32' ? win32 : posix; +module.exports.posix = posix; +module.exports.win32 = win32; diff --git a/node_modules/path-is-absolute/license b/node_modules/path-is-absolute/license new file mode 100644 index 0000000..654d0bf --- /dev/null +++ b/node_modules/path-is-absolute/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/path-is-absolute/package.json b/node_modules/path-is-absolute/package.json new file mode 100644 index 0000000..91196d5 --- /dev/null +++ b/node_modules/path-is-absolute/package.json @@ -0,0 +1,43 @@ +{ + "name": "path-is-absolute", + "version": "1.0.1", + "description": "Node.js 0.12 path.isAbsolute() ponyfill", + "license": "MIT", + "repository": "sindresorhus/path-is-absolute", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "xo && node test.js" + }, + "files": [ + "index.js" + ], + "keywords": [ + "path", + "paths", + "file", + "dir", + "absolute", + "isabsolute", + "is-absolute", + "built-in", + "util", + "utils", + "core", + "ponyfill", + "polyfill", + "shim", + "is", + "detect", + "check" + ], + "devDependencies": { + "xo": "^0.16.0" + } +} diff --git a/node_modules/path-is-absolute/readme.md b/node_modules/path-is-absolute/readme.md new file mode 100644 index 0000000..8dbdf5f --- /dev/null +++ b/node_modules/path-is-absolute/readme.md @@ -0,0 +1,59 @@ +# path-is-absolute [![Build Status](https://travis-ci.org/sindresorhus/path-is-absolute.svg?branch=master)](https://travis-ci.org/sindresorhus/path-is-absolute) + +> Node.js 0.12 [`path.isAbsolute()`](http://nodejs.org/api/path.html#path_path_isabsolute_path) [ponyfill](https://ponyfill.com) + + +## Install + +``` +$ npm install --save path-is-absolute +``` + + +## Usage + +```js +const pathIsAbsolute = require('path-is-absolute'); + +// Running on Linux +pathIsAbsolute('/home/foo'); +//=> true +pathIsAbsolute('C:/Users/foo'); +//=> false + +// Running on Windows +pathIsAbsolute('C:/Users/foo'); +//=> true +pathIsAbsolute('/home/foo'); +//=> false + +// Running on any OS +pathIsAbsolute.posix('/home/foo'); +//=> true +pathIsAbsolute.posix('C:/Users/foo'); +//=> false +pathIsAbsolute.win32('C:/Users/foo'); +//=> true +pathIsAbsolute.win32('/home/foo'); +//=> false +``` + + +## API + +See the [`path.isAbsolute()` docs](http://nodejs.org/api/path.html#path_path_isabsolute_path). + +### pathIsAbsolute(path) + +### pathIsAbsolute.posix(path) + +POSIX specific version. + +### pathIsAbsolute.win32(path) + +Windows specific version. + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/path-parse/LICENSE b/node_modules/path-parse/LICENSE new file mode 100644 index 0000000..810f3db --- /dev/null +++ b/node_modules/path-parse/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 Javier Blanco + +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-parse/README.md b/node_modules/path-parse/README.md new file mode 100644 index 0000000..05097f8 --- /dev/null +++ b/node_modules/path-parse/README.md @@ -0,0 +1,42 @@ +# path-parse [![Build Status](https://travis-ci.org/jbgutierrez/path-parse.svg?branch=master)](https://travis-ci.org/jbgutierrez/path-parse) + +> Node.js [`path.parse(pathString)`](https://nodejs.org/api/path.html#path_path_parse_pathstring) [ponyfill](https://ponyfill.com). + +## Install + +``` +$ npm install --save path-parse +``` + +## Usage + +```js +var pathParse = require('path-parse'); + +pathParse('/home/user/dir/file.txt'); +//=> { +// root : "/", +// dir : "/home/user/dir", +// base : "file.txt", +// ext : ".txt", +// name : "file" +// } +``` + +## API + +See [`path.parse(pathString)`](https://nodejs.org/api/path.html#path_path_parse_pathstring) docs. + +### pathParse(path) + +### pathParse.posix(path) + +The Posix specific version. + +### pathParse.win32(path) + +The Windows specific version. + +## License + +MIT © [Javier Blanco](http://jbgutierrez.info) diff --git a/node_modules/path-parse/index.js b/node_modules/path-parse/index.js new file mode 100644 index 0000000..f062d0a --- /dev/null +++ b/node_modules/path-parse/index.js @@ -0,0 +1,75 @@ +'use strict'; + +var isWindows = process.platform === 'win32'; + +// Regex to split a windows path into into [dir, root, basename, name, ext] +var splitWindowsRe = + /^(((?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?[\\\/]?)(?:[^\\\/]*[\\\/])*)((\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))[\\\/]*$/; + +var win32 = {}; + +function win32SplitPath(filename) { + return splitWindowsRe.exec(filename).slice(1); +} + +win32.parse = function(pathString) { + if (typeof pathString !== 'string') { + throw new TypeError( + "Parameter 'pathString' must be a string, not " + typeof pathString + ); + } + var allParts = win32SplitPath(pathString); + if (!allParts || allParts.length !== 5) { + throw new TypeError("Invalid path '" + pathString + "'"); + } + return { + root: allParts[1], + dir: allParts[0] === allParts[1] ? allParts[0] : allParts[0].slice(0, -1), + base: allParts[2], + ext: allParts[4], + name: allParts[3] + }; +}; + + + +// Split a filename into [dir, root, basename, name, ext], unix version +// 'root' is just a slash, or nothing. +var splitPathRe = + /^((\/?)(?:[^\/]*\/)*)((\.{1,2}|[^\/]+?|)(\.[^.\/]*|))[\/]*$/; +var posix = {}; + + +function posixSplitPath(filename) { + return splitPathRe.exec(filename).slice(1); +} + + +posix.parse = function(pathString) { + if (typeof pathString !== 'string') { + throw new TypeError( + "Parameter 'pathString' must be a string, not " + typeof pathString + ); + } + var allParts = posixSplitPath(pathString); + if (!allParts || allParts.length !== 5) { + throw new TypeError("Invalid path '" + pathString + "'"); + } + + return { + root: allParts[1], + dir: allParts[0].slice(0, -1), + base: allParts[2], + ext: allParts[4], + name: allParts[3], + }; +}; + + +if (isWindows) + module.exports = win32.parse; +else /* posix */ + module.exports = posix.parse; + +module.exports.posix = posix.parse; +module.exports.win32 = win32.parse; diff --git a/node_modules/path-parse/package.json b/node_modules/path-parse/package.json new file mode 100644 index 0000000..36c23f8 --- /dev/null +++ b/node_modules/path-parse/package.json @@ -0,0 +1,33 @@ +{ + "name": "path-parse", + "version": "1.0.7", + "description": "Node.js path.parse() ponyfill", + "main": "index.js", + "scripts": { + "test": "node test.js" + }, + "repository": { + "type": "git", + "url": "https://github.com/jbgutierrez/path-parse.git" + }, + "keywords": [ + "path", + "paths", + "file", + "dir", + "parse", + "built-in", + "util", + "utils", + "core", + "ponyfill", + "polyfill", + "shim" + ], + "author": "Javier Blanco ", + "license": "MIT", + "bugs": { + "url": "https://github.com/jbgutierrez/path-parse/issues" + }, + "homepage": "https://github.com/jbgutierrez/path-parse#readme" +} 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..8cdcf5f --- /dev/null +++ b/node_modules/picocolors/package.json @@ -0,0 +1,25 @@ +{ + "name": "picocolors", + "version": "1.0.1", + "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..8b8a23e --- /dev/null +++ b/node_modules/picocolors/picocolors.js @@ -0,0 +1,65 @@ +let argv = process.argv || [], + env = process.env +let isColorSupported = + !("NO_COLOR" in env || argv.includes("--no-color")) && + ("FORCE_COLOR" in env || + argv.includes("--color") || + process.platform === "win32" || + (require != null && require("tty").isatty(1) && env.TERM !== "dumb") || + "CI" in 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 result = "" + let cursor = 0 + do { + result += string.substring(cursor, index) + replace + cursor = index + close.length + index = string.indexOf(close, cursor) + } while (~index) + return result + string.substring(cursor) +} + +let createColors = (enabled = isColorSupported) => { + let init = enabled ? formatter : () => String + return { + isColorSupported: enabled, + reset: init("\x1b[0m", "\x1b[0m"), + bold: init("\x1b[1m", "\x1b[22m", "\x1b[22m\x1b[1m"), + dim: init("\x1b[2m", "\x1b[22m", "\x1b[22m\x1b[2m"), + italic: init("\x1b[3m", "\x1b[23m"), + underline: init("\x1b[4m", "\x1b[24m"), + inverse: init("\x1b[7m", "\x1b[27m"), + hidden: init("\x1b[8m", "\x1b[28m"), + strikethrough: init("\x1b[9m", "\x1b[29m"), + black: init("\x1b[30m", "\x1b[39m"), + red: init("\x1b[31m", "\x1b[39m"), + green: init("\x1b[32m", "\x1b[39m"), + yellow: init("\x1b[33m", "\x1b[39m"), + blue: init("\x1b[34m", "\x1b[39m"), + magenta: init("\x1b[35m", "\x1b[39m"), + cyan: init("\x1b[36m", "\x1b[39m"), + white: init("\x1b[37m", "\x1b[39m"), + gray: init("\x1b[90m", "\x1b[39m"), + bgBlack: init("\x1b[40m", "\x1b[49m"), + bgRed: init("\x1b[41m", "\x1b[49m"), + bgGreen: init("\x1b[42m", "\x1b[49m"), + bgYellow: init("\x1b[43m", "\x1b[49m"), + bgBlue: init("\x1b[44m", "\x1b[49m"), + bgMagenta: init("\x1b[45m", "\x1b[49m"), + bgCyan: init("\x1b[46m", "\x1b[49m"), + bgWhite: init("\x1b[47m", "\x1b[49m"), + } +} + +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..df56221 --- /dev/null +++ b/node_modules/pify/index.js @@ -0,0 +1,68 @@ +'use strict'; + +const processFn = (fn, options) => function (...args) { + const P = options.promiseModule; + + return new P((resolve, reject) => { + if (options.multiArgs) { + args.push((...result) => { + if (options.errorFirst) { + if (result[0]) { + reject(result); + } else { + result.shift(); + resolve(result); + } + } else { + resolve(result); + } + }); + } else if (options.errorFirst) { + args.push((error, result) => { + if (error) { + reject(error); + } else { + resolve(result); + } + }); + } else { + args.push(resolve); + } + + fn.apply(this, args); + }); +}; + +module.exports = (input, options) => { + options = Object.assign({ + exclude: [/.+(Sync|Stream)$/], + errorFirst: true, + promiseModule: Promise + }, options); + + const objType = typeof input; + if (!(input !== null && (objType === 'object' || objType === 'function'))) { + throw new TypeError(`Expected \`input\` to be a \`Function\` or \`Object\`, got \`${input === null ? 'null' : objType}\``); + } + + const filter = key => { + const match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key); + return options.include ? options.include.some(match) : !options.exclude.some(match); + }; + + let ret; + if (objType === 'function') { + ret = function (...args) { + return options.excludeMain ? input(...args) : processFn(input, options).apply(this, args); + }; + } else { + ret = Object.create(Object.getPrototypeOf(input)); + } + + for (const key in input) { // eslint-disable-line guard-for-in + const property = input[key]; + ret[key] = typeof property === 'function' && filter(key) ? processFn(property, options) : property; + } + + return ret; +}; diff --git a/node_modules/pify/license b/node_modules/pify/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/pify/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/pify/package.json b/node_modules/pify/package.json new file mode 100644 index 0000000..a5468cd --- /dev/null +++ b/node_modules/pify/package.json @@ -0,0 +1,51 @@ +{ + "name": "pify", + "version": "4.0.1", + "description": "Promisify a callback-style function", + "license": "MIT", + "repository": "sindresorhus/pify", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=6" + }, + "scripts": { + "test": "xo && ava", + "optimization-test": "node --allow-natives-syntax optimization-test.js" + }, + "files": [ + "index.js" + ], + "keywords": [ + "promise", + "promises", + "promisify", + "all", + "denodify", + "denodeify", + "callback", + "cb", + "node", + "then", + "thenify", + "convert", + "transform", + "wrap", + "wrapper", + "bind", + "to", + "async", + "await", + "es2015", + "bluebird" + ], + "devDependencies": { + "ava": "^0.25.0", + "pinkie-promise": "^2.0.0", + "v8-natives": "^1.1.0", + "xo": "^0.23.0" + } +} diff --git a/node_modules/pify/readme.md b/node_modules/pify/readme.md new file mode 100644 index 0000000..7ae3f1c --- /dev/null +++ b/node_modules/pify/readme.md @@ -0,0 +1,145 @@ +# pify [![Build Status](https://travis-ci.org/sindresorhus/pify.svg?branch=master)](https://travis-ci.org/sindresorhus/pify) + +> Promisify a callback-style function + +--- + +
      + + Get professional support for 'pify' with a Tidelift subscription + +
      + + Tidelift helps make open source sustainable for maintainers while giving companies
      assurances about security, maintenance, and licensing for their dependencies. +
      +
      + +--- + + +## Install + +``` +$ npm install 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' +}); + +// Promisify all methods in a module +pify(fs).readFile('package.json', 'utf8').then(data => { + console.log(JSON.parse(data).name); + //=> 'pify' +}); +``` + + +## API + +### pify(input, [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. + +#### 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. This also applies to rejections, where it returns an array of all the callback arguments, including the error. + +```js +const request = require('request'); +const pify = require('pify'); + +pify(request, {multiArgs: true})('https://sindresorhus.com').then(result => { + const [httpResponse, body] = result; +}); +``` + +##### include + +Type: `string[]` `RegExp[]` + +Methods in a module to promisify. Remaining methods will be left untouched. + +##### exclude + +Type: `string[]` `RegExp[]`
      +Default: `[/.+(Sync|Stream)$/]` + +Methods in a module **not** to promisify. Methods with names ending with `'Sync'` are excluded by default. + +##### excludeMain + +Type: `boolean`
      +Default: `false` + +If given module is a function itself, it 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(null, data); + }); +}; + +// Promisify methods but not `fn()` +const promiseFn = pify(fn, {excludeMain: true}); + +if (promiseFn()) { + promiseFn.method('hi').then(data => { + console.log(data); + }); +} +``` + +##### errorFirst + +Type: `boolean`
      +Default: `true` + +Whether the callback has an error as the first argument. You'll want to set this to `false` if you're dealing with an API that doesn't have an error as the first argument, like `fs.exists()`, some browser APIs, Chrome Extension APIs, etc. + +##### 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. + + +## Related + +- [p-event](https://github.com/sindresorhus/p-event) - Promisify an event by waiting for it to be emitted +- [p-map](https://github.com/sindresorhus/p-map) - Map over promises concurrently +- [More…](https://github.com/sindresorhus/promise-fun) + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/postcss-modules-extract-imports/LICENSE b/node_modules/postcss-modules-extract-imports/LICENSE new file mode 100644 index 0000000..30b5176 --- /dev/null +++ b/node_modules/postcss-modules-extract-imports/LICENSE @@ -0,0 +1,5 @@ +Copyright 2015 Glen Maddern + +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/postcss-modules-extract-imports/README.md b/node_modules/postcss-modules-extract-imports/README.md new file mode 100644 index 0000000..3bc41a5 --- /dev/null +++ b/node_modules/postcss-modules-extract-imports/README.md @@ -0,0 +1,76 @@ +# CSS Modules: Extract Imports + +[![Build Status](https://travis-ci.org/css-modules/postcss-modules-extract-imports.svg?branch=master)](https://travis-ci.org/css-modules/postcss-modules-extract-imports) + +Transforms: + +```css +:local(.continueButton) { + composes: button from "library/button.css"; + color: green; +} +``` + +into: + +```css +:import("library/button.css") { + button: __tmp_487387465fczSDGHSABb; +} +:local(.continueButton) { + composes: __tmp_487387465fczSDGHSABb; + color: green; +} +``` + +## Specification + +- Only a certain whitelist of properties are inspected. Currently, that whitelist is `['composes']` alone. +- An extend-import has the following format: + +``` +composes: className [... className] from "path/to/file.css", className [... className], className [... className] from global; +``` + +## Options + +- `failOnWrongOrder` `bool` generates exception for unpredictable imports order. + +```css +.aa { + composes: b from "./b.css"; + composes: c from "./c.css"; +} + +.bb { + /* "b.css" should be before "c.css" in this case */ + composes: c from "./c.css"; + composes: b from "./b.css"; +} +``` + +## Building + +``` +npm install +npm test +``` + +[![Build Status](https://travis-ci.org/css-modules/postcss-modules-extract-imports.svg?branch=master)](https://travis-ci.org/css-modules/postcss-modules-extract-imports) + +- Lines: [![Coverage Status](https://coveralls.io/repos/css-modules/postcss-modules-extract-imports/badge.svg?branch=master)](https://coveralls.io/r/css-modules/postcss-modules-extract-imports?branch=master) +- Statements: [![codecov.io](http://codecov.io/github/css-modules/postcss-modules-extract-imports/coverage.svg?branch=master)](http://codecov.io/github/css-modules/postcss-modules-extract-imports?branch=master) + +## License + +ISC + +## With thanks + +- Mark Dalgleish +- Tobias Koppers +- Guy Bedford + +--- + +Glen Maddern, 2015. diff --git a/node_modules/postcss-modules-extract-imports/package.json b/node_modules/postcss-modules-extract-imports/package.json new file mode 100644 index 0000000..4a578e0 --- /dev/null +++ b/node_modules/postcss-modules-extract-imports/package.json @@ -0,0 +1,51 @@ +{ + "name": "postcss-modules-extract-imports", + "version": "3.1.0", + "description": "A CSS Modules transform to extract local aliases for inline imports", + "main": "src/index.js", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "files": [ + "src" + ], + "scripts": { + "prettier": "prettier -l --ignore-path .gitignore . \"!test/test-cases\"", + "eslint": "eslint --ignore-path .gitignore .", + "lint": "yarn eslint && yarn prettier", + "test:only": "jest", + "test:watch": "jest --watch", + "test:coverage": "jest --coverage --collectCoverageFrom=\"src/**/*\"", + "pretest": "yarn lint", + "test": "yarn test:coverage", + "prepublishOnly": "yarn test" + }, + "repository": { + "type": "git", + "url": "https://github.com/css-modules/postcss-modules-extract-imports.git" + }, + "keywords": [ + "css-modules", + "postcss", + "plugin" + ], + "author": "Glen Maddern", + "license": "ISC", + "bugs": { + "url": "https://github.com/css-modules/postcss-modules-extract-imports/issues" + }, + "homepage": "https://github.com/css-modules/postcss-modules-extract-imports", + "devDependencies": { + "coveralls": "^3.1.0", + "eslint": "^7.10.0", + "eslint-config-prettier": "^6.12.0", + "husky": "^4.3.0", + "jest": "^26.5.2", + "lint-staged": "^10.4.0", + "postcss": "^8.1.1", + "prettier": "^2.1.2" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } +} diff --git a/node_modules/postcss-modules-extract-imports/src/index.js b/node_modules/postcss-modules-extract-imports/src/index.js new file mode 100644 index 0000000..7bf6c6f --- /dev/null +++ b/node_modules/postcss-modules-extract-imports/src/index.js @@ -0,0 +1,209 @@ +const topologicalSort = require("./topologicalSort"); + +const matchImports = /^(.+?)\s+from\s+(?:"([^"]+)"|'([^']+)'|(global))$/; +const icssImport = /^:import\((?:"([^"]+)"|'([^']+)')\)/; + +const VISITED_MARKER = 1; + +/** + * :import('G') {} + * + * Rule + * composes: ... from 'A' + * composes: ... from 'B' + + * Rule + * composes: ... from 'A' + * composes: ... from 'A' + * composes: ... from 'C' + * + * Results in: + * + * graph: { + * G: [], + * A: [], + * B: ['A'], + * C: ['A'], + * } + */ +function addImportToGraph(importId, parentId, graph, visited) { + const siblingsId = parentId + "_" + "siblings"; + const visitedId = parentId + "_" + importId; + + if (visited[visitedId] !== VISITED_MARKER) { + if (!Array.isArray(visited[siblingsId])) { + visited[siblingsId] = []; + } + + const siblings = visited[siblingsId]; + + if (Array.isArray(graph[importId])) { + graph[importId] = graph[importId].concat(siblings); + } else { + graph[importId] = siblings.slice(); + } + + visited[visitedId] = VISITED_MARKER; + + siblings.push(importId); + } +} + +module.exports = (options = {}) => { + let importIndex = 0; + const createImportedName = + typeof options.createImportedName !== "function" + ? (importName /*, path*/) => + `i__imported_${importName.replace(/\W/g, "_")}_${importIndex++}` + : options.createImportedName; + const failOnWrongOrder = options.failOnWrongOrder; + + return { + postcssPlugin: "postcss-modules-extract-imports", + prepare() { + const graph = {}; + const visited = {}; + const existingImports = {}; + const importDecls = {}; + const imports = {}; + + return { + Once(root, postcss) { + // Check the existing imports order and save refs + root.walkRules((rule) => { + const matches = icssImport.exec(rule.selector); + + if (matches) { + const [, /*match*/ doubleQuotePath, singleQuotePath] = matches; + const importPath = doubleQuotePath || singleQuotePath; + + addImportToGraph(importPath, "root", graph, visited); + + existingImports[importPath] = rule; + } + }); + + root.walkDecls(/^composes$/, (declaration) => { + const multiple = declaration.value.split(","); + const values = []; + + multiple.forEach((value) => { + const matches = value.trim().match(matchImports); + + if (!matches) { + values.push(value); + + return; + } + + let tmpSymbols; + let [ + , + /*match*/ symbols, + doubleQuotePath, + singleQuotePath, + global, + ] = matches; + + if (global) { + // Composing globals simply means changing these classes to wrap them in global(name) + tmpSymbols = symbols.split(/\s+/).map((s) => `global(${s})`); + } else { + const importPath = doubleQuotePath || singleQuotePath; + + let parent = declaration.parent; + let parentIndexes = ""; + + while (parent.type !== "root") { + parentIndexes = + parent.parent.index(parent) + "_" + parentIndexes; + parent = parent.parent; + } + + const { selector } = declaration.parent; + const parentRule = `_${parentIndexes}${selector}`; + + addImportToGraph(importPath, parentRule, graph, visited); + + importDecls[importPath] = declaration; + imports[importPath] = imports[importPath] || {}; + + tmpSymbols = symbols.split(/\s+/).map((s) => { + if (!imports[importPath][s]) { + imports[importPath][s] = createImportedName(s, importPath); + } + + return imports[importPath][s]; + }); + } + + values.push(tmpSymbols.join(" ")); + }); + + declaration.value = values.join(", "); + }); + + const importsOrder = topologicalSort(graph, failOnWrongOrder); + + if (importsOrder instanceof Error) { + const importPath = importsOrder.nodes.find((importPath) => + // eslint-disable-next-line no-prototype-builtins + importDecls.hasOwnProperty(importPath) + ); + const decl = importDecls[importPath]; + + throw decl.error( + "Failed to resolve order of composed modules " + + importsOrder.nodes + .map((importPath) => "`" + importPath + "`") + .join(", ") + + ".", + { + plugin: "postcss-modules-extract-imports", + word: "composes", + } + ); + } + + let lastImportRule; + + importsOrder.forEach((path) => { + const importedSymbols = imports[path]; + let rule = existingImports[path]; + + if (!rule && importedSymbols) { + rule = postcss.rule({ + selector: `:import("${path}")`, + raws: { after: "\n" }, + }); + + if (lastImportRule) { + root.insertAfter(lastImportRule, rule); + } else { + root.prepend(rule); + } + } + + lastImportRule = rule; + + if (!importedSymbols) { + return; + } + + Object.keys(importedSymbols).forEach((importedSymbol) => { + rule.append( + postcss.decl({ + value: importedSymbol, + prop: importedSymbols[importedSymbol], + raws: { before: "\n " }, + }) + ); + }); + }); + }, + }; + }, + }; +}; + +module.exports.postcss = true; diff --git a/node_modules/postcss-modules-extract-imports/src/topologicalSort.js b/node_modules/postcss-modules-extract-imports/src/topologicalSort.js new file mode 100644 index 0000000..9166fbb --- /dev/null +++ b/node_modules/postcss-modules-extract-imports/src/topologicalSort.js @@ -0,0 +1,66 @@ +const PERMANENT_MARKER = 2; +const TEMPORARY_MARKER = 1; + +function createError(node, graph) { + const er = new Error("Nondeterministic import's order"); + + const related = graph[node]; + const relatedNode = related.find( + (relatedNode) => graph[relatedNode].indexOf(node) > -1 + ); + + er.nodes = [node, relatedNode]; + + return er; +} + +function walkGraph(node, graph, state, result, strict) { + if (state[node] === PERMANENT_MARKER) { + return; + } + + if (state[node] === TEMPORARY_MARKER) { + if (strict) { + return createError(node, graph); + } + + return; + } + + state[node] = TEMPORARY_MARKER; + + const children = graph[node]; + const length = children.length; + + for (let i = 0; i < length; ++i) { + const error = walkGraph(children[i], graph, state, result, strict); + + if (error instanceof Error) { + return error; + } + } + + state[node] = PERMANENT_MARKER; + + result.push(node); +} + +function topologicalSort(graph, strict) { + const result = []; + const state = {}; + + const nodes = Object.keys(graph); + const length = nodes.length; + + for (let i = 0; i < length; ++i) { + const er = walkGraph(nodes[i], graph, state, result, strict); + + if (er instanceof Error) { + return er; + } + } + + return result; +} + +module.exports = topologicalSort; diff --git a/node_modules/postcss-modules-local-by-default/LICENSE b/node_modules/postcss-modules-local-by-default/LICENSE new file mode 100644 index 0000000..ae675bf --- /dev/null +++ b/node_modules/postcss-modules-local-by-default/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2015 Mark Dalgleish + +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-modules-local-by-default/README.md b/node_modules/postcss-modules-local-by-default/README.md new file mode 100644 index 0000000..29f4534 --- /dev/null +++ b/node_modules/postcss-modules-local-by-default/README.md @@ -0,0 +1,68 @@ +[![Build Status][ci-img]][ci] [![codecov][codecov-img]][codecov] [![npm][npm-img]][npm] + +# CSS Modules: Local by Default + +Transformation examples: + + +```css +.foo { ... } /* => */ :local(.foo) { ... } + +.foo .bar { ... } /* => */ :local(.foo) :local(.bar) { ... } + +/* Shorthand global selector */ + +:global .foo .bar { ... } /* => */ .foo .bar { ... } + +.foo :global .bar { ... } /* => */ :local(.foo) .bar { ... } + +/* Targeted global selector */ + +:global(.foo) .bar { ... } /* => */ .foo :local(.bar) { ... } + +.foo:global(.bar) { ... } /* => */ :local(.foo).bar { ... } + +.foo :global(.bar) .baz { ... } /* => */ :local(.foo) .bar :local(.baz) { ... } + +.foo:global(.bar) .baz { ... } /* => */ :local(.foo).bar :local(.baz) { ... } +``` + + +## Building + +```bash +$ npm install +$ npm test +``` + +- Build: [![Build Status][ci-img]][ci] +- Lines: [![coveralls][coveralls-img]][coveralls] +- Statements: [![codecov][codecov-img]][codecov] + +## Development + +```bash +$ yarn test:watch +``` + +## License + +MIT + +## With thanks + +- [Tobias Koppers](https://github.com/sokra) +- [Glen Maddern](https://github.com/geelen) + +--- + +Mark Dalgleish, 2015. + +[ci-img]: https://img.shields.io/travis/css-modules/postcss-modules-local-by-default/master.svg?style=flat-square +[ci]: https://travis-ci.org/css-modules/postcss-modules-local-by-default +[npm-img]: https://img.shields.io/npm/v/postcss-modules-local-by-default.svg?style=flat-square +[npm]: https://www.npmjs.com/package/postcss-modules-local-by-default +[coveralls-img]: https://img.shields.io/coveralls/css-modules/postcss-modules-local-by-default/master.svg?style=flat-square +[coveralls]: https://coveralls.io/r/css-modules/postcss-modules-local-by-default?branch=master +[codecov-img]: https://img.shields.io/codecov/c/github/css-modules/postcss-modules-local-by-default/master.svg?style=flat-square +[codecov]: https://codecov.io/github/css-modules/postcss-modules-local-by-default?branch=master diff --git a/node_modules/postcss-modules-local-by-default/package.json b/node_modules/postcss-modules-local-by-default/package.json new file mode 100644 index 0000000..b53af93 --- /dev/null +++ b/node_modules/postcss-modules-local-by-default/package.json @@ -0,0 +1,52 @@ +{ + "name": "postcss-modules-local-by-default", + "version": "4.0.5", + "description": "A CSS Modules transform to make local scope the default", + "main": "src/index.js", + "author": "Mark Dalgleish", + "license": "MIT", + "files": [ + "src" + ], + "repository": { + "type": "git", + "url": "https://github.com/css-modules/postcss-modules-local-by-default.git" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "keywords": [ + "css-modules", + "postcss", + "css", + "postcss-plugin" + ], + "scripts": { + "prettier": "prettier -l --ignore-path .gitignore .", + "eslint": "eslint --ignore-path .gitignore .", + "lint": "yarn eslint && yarn prettier", + "test:only": "jest", + "test:watch": "jest --watch", + "test:coverage": "jest --coverage --collectCoverageFrom=\"src/**/*\"", + "test": "yarn test:coverage", + "prepublishOnly": "yarn lint && yarn test" + }, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "devDependencies": { + "coveralls": "^3.1.0", + "eslint": "^7.10.0", + "eslint-config-prettier": "^6.12.0", + "husky": "^4.3.0", + "jest": "^26.5.2", + "lint-staged": "^10.4.0", + "postcss": "^8.1.0", + "prettier": "^2.1.2" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } +} diff --git a/node_modules/postcss-modules-local-by-default/src/index.js b/node_modules/postcss-modules-local-by-default/src/index.js new file mode 100644 index 0000000..eeaef93 --- /dev/null +++ b/node_modules/postcss-modules-local-by-default/src/index.js @@ -0,0 +1,631 @@ +"use strict"; + +const selectorParser = require("postcss-selector-parser"); +const valueParser = require("postcss-value-parser"); +const { extractICSS } = require("icss-utils"); + +const isSpacing = (node) => node.type === "combinator" && node.value === " "; + +function normalizeNodeArray(nodes) { + const array = []; + + nodes.forEach((x) => { + if (Array.isArray(x)) { + normalizeNodeArray(x).forEach((item) => { + array.push(item); + }); + } else if (x) { + array.push(x); + } + }); + + if (array.length > 0 && isSpacing(array[array.length - 1])) { + array.pop(); + } + return array; +} + +function localizeNode(rule, mode, localAliasMap) { + const transform = (node, context) => { + if (context.ignoreNextSpacing && !isSpacing(node)) { + throw new Error("Missing whitespace after " + context.ignoreNextSpacing); + } + + if (context.enforceNoSpacing && isSpacing(node)) { + throw new Error("Missing whitespace before " + context.enforceNoSpacing); + } + + let newNodes; + + switch (node.type) { + case "root": { + let resultingGlobal; + + context.hasPureGlobals = false; + + newNodes = node.nodes.map((n) => { + const nContext = { + global: context.global, + lastWasSpacing: true, + hasLocals: false, + explicit: false, + }; + + n = transform(n, nContext); + + if (typeof resultingGlobal === "undefined") { + resultingGlobal = nContext.global; + } else if (resultingGlobal !== nContext.global) { + throw new Error( + 'Inconsistent rule global/local result in rule "' + + node + + '" (multiple selectors must result in the same mode for the rule)' + ); + } + + if (!nContext.hasLocals) { + context.hasPureGlobals = true; + } + + return n; + }); + + context.global = resultingGlobal; + + node.nodes = normalizeNodeArray(newNodes); + break; + } + case "selector": { + newNodes = node.map((childNode) => transform(childNode, context)); + + node = node.clone(); + node.nodes = normalizeNodeArray(newNodes); + break; + } + case "combinator": { + if (isSpacing(node)) { + if (context.ignoreNextSpacing) { + context.ignoreNextSpacing = false; + context.lastWasSpacing = false; + context.enforceNoSpacing = false; + return null; + } + context.lastWasSpacing = true; + return node; + } + break; + } + case "pseudo": { + let childContext; + const isNested = !!node.length; + const isScoped = node.value === ":local" || node.value === ":global"; + const isImportExport = + node.value === ":import" || node.value === ":export"; + + if (isImportExport) { + context.hasLocals = true; + // :local(.foo) + } else if (isNested) { + if (isScoped) { + if (node.nodes.length === 0) { + throw new Error(`${node.value}() can't be empty`); + } + + if (context.inside) { + throw new Error( + `A ${node.value} is not allowed inside of a ${context.inside}(...)` + ); + } + + childContext = { + global: node.value === ":global", + inside: node.value, + hasLocals: false, + explicit: true, + }; + + newNodes = node + .map((childNode) => transform(childNode, childContext)) + .reduce((acc, next) => acc.concat(next.nodes), []); + + if (newNodes.length) { + const { before, after } = node.spaces; + + const first = newNodes[0]; + const last = newNodes[newNodes.length - 1]; + + first.spaces = { before, after: first.spaces.after }; + last.spaces = { before: last.spaces.before, after }; + } + + node = newNodes; + + break; + } else { + childContext = { + global: context.global, + inside: context.inside, + lastWasSpacing: true, + hasLocals: false, + explicit: context.explicit, + }; + newNodes = node.map((childNode) => { + const newContext = { + ...childContext, + enforceNoSpacing: false, + }; + + const result = transform(childNode, newContext); + + childContext.global = newContext.global; + childContext.hasLocals = newContext.hasLocals; + + return result; + }); + + node = node.clone(); + node.nodes = normalizeNodeArray(newNodes); + + if (childContext.hasLocals) { + context.hasLocals = true; + } + } + break; + + //:local .foo .bar + } else if (isScoped) { + if (context.inside) { + throw new Error( + `A ${node.value} is not allowed inside of a ${context.inside}(...)` + ); + } + + const addBackSpacing = !!node.spaces.before; + + context.ignoreNextSpacing = context.lastWasSpacing + ? node.value + : false; + + context.enforceNoSpacing = context.lastWasSpacing + ? false + : node.value; + + context.global = node.value === ":global"; + context.explicit = true; + + // because this node has spacing that is lost when we remove it + // we make up for it by adding an extra combinator in since adding + // spacing on the parent selector doesn't work + return addBackSpacing + ? selectorParser.combinator({ value: " " }) + : null; + } + break; + } + case "id": + case "class": { + if (!node.value) { + throw new Error("Invalid class or id selector syntax"); + } + + if (context.global) { + break; + } + + const isImportedValue = localAliasMap.has(node.value); + const isImportedWithExplicitScope = isImportedValue && context.explicit; + + if (!isImportedValue || isImportedWithExplicitScope) { + const innerNode = node.clone(); + innerNode.spaces = { before: "", after: "" }; + + node = selectorParser.pseudo({ + value: ":local", + nodes: [innerNode], + spaces: node.spaces, + }); + + context.hasLocals = true; + } + + break; + } + case "nesting": { + if (node.value === "&") { + context.hasLocals = true; + } + } + } + + context.lastWasSpacing = false; + context.ignoreNextSpacing = false; + context.enforceNoSpacing = false; + + return node; + }; + + const rootContext = { + global: mode === "global", + hasPureGlobals: false, + }; + + rootContext.selector = selectorParser((root) => { + transform(root, rootContext); + }).processSync(rule, { updateSelector: false, lossless: true }); + + return rootContext; +} + +function localizeDeclNode(node, context) { + switch (node.type) { + case "word": + if (context.localizeNextItem) { + if (!context.localAliasMap.has(node.value)) { + node.value = ":local(" + node.value + ")"; + context.localizeNextItem = false; + } + } + break; + + case "function": + if ( + context.options && + context.options.rewriteUrl && + node.value.toLowerCase() === "url" + ) { + node.nodes.map((nestedNode) => { + if (nestedNode.type !== "string" && nestedNode.type !== "word") { + return; + } + + let newUrl = context.options.rewriteUrl( + context.global, + nestedNode.value + ); + + switch (nestedNode.type) { + case "string": + if (nestedNode.quote === "'") { + newUrl = newUrl.replace(/(\\)/g, "\\$1").replace(/'/g, "\\'"); + } + + if (nestedNode.quote === '"') { + newUrl = newUrl.replace(/(\\)/g, "\\$1").replace(/"/g, '\\"'); + } + + break; + case "word": + newUrl = newUrl.replace(/("|'|\)|\\)/g, "\\$1"); + break; + } + + nestedNode.value = newUrl; + }); + } + break; + } + return node; +} + +// `none` is special value, other is global values +const specialKeywords = [ + "none", + "inherit", + "initial", + "revert", + "revert-layer", + "unset", +]; + +function localizeDeclarationValues(localize, declaration, context) { + const valueNodes = valueParser(declaration.value); + + valueNodes.walk((node, index, nodes) => { + if ( + node.type === "function" && + (node.value.toLowerCase() === "var" || node.value.toLowerCase() === "env") + ) { + return false; + } + + if ( + node.type === "word" && + specialKeywords.includes(node.value.toLowerCase()) + ) { + return; + } + + const subContext = { + options: context.options, + global: context.global, + localizeNextItem: localize && !context.global, + localAliasMap: context.localAliasMap, + }; + nodes[index] = localizeDeclNode(node, subContext); + }); + + declaration.value = valueNodes.toString(); +} + +function localizeDeclaration(declaration, context) { + const isAnimation = /animation$/i.test(declaration.prop); + + if (isAnimation) { + // letter + // An uppercase letter or a lowercase letter. + // + // ident-start code point + // A letter, a non-ASCII code point, or U+005F LOW LINE (_). + // + // ident code point + // An ident-start code point, a digit, or U+002D HYPHEN-MINUS (-). + + // We don't validate `hex digits`, because we don't need it, it is work of linters. + const validIdent = + /^-?([a-z\u0080-\uFFFF_]|(\\[^\r\n\f])|-(?![0-9]))((\\[^\r\n\f])|[a-z\u0080-\uFFFF_0-9-])*$/i; + + /* + The spec defines some keywords that you can use to describe properties such as the timing + function. These are still valid animation names, so as long as there is a property that accepts + a keyword, it is given priority. Only when all the properties that can take a keyword are + exhausted can the animation name be set to the keyword. I.e. + + animation: infinite infinite; + + The animation will repeat an infinite number of times from the first argument, and will have an + animation name of infinite from the second. + */ + const animationKeywords = { + // animation-direction + $normal: 1, + $reverse: 1, + $alternate: 1, + "$alternate-reverse": 1, + // animation-fill-mode + $forwards: 1, + $backwards: 1, + $both: 1, + // animation-iteration-count + $infinite: 1, + // animation-play-state + $paused: 1, + $running: 1, + // animation-timing-function + $ease: 1, + "$ease-in": 1, + "$ease-out": 1, + "$ease-in-out": 1, + $linear: 1, + "$step-end": 1, + "$step-start": 1, + // Special + $none: Infinity, // No matter how many times you write none, it will never be an animation name + // Global values + $initial: Infinity, + $inherit: Infinity, + $unset: Infinity, + $revert: Infinity, + "$revert-layer": Infinity, + }; + let parsedAnimationKeywords = {}; + const valueNodes = valueParser(declaration.value).walk((node) => { + // If div-token appeared (represents as comma ','), a possibility of an animation-keywords should be reflesh. + if (node.type === "div") { + parsedAnimationKeywords = {}; + + return; + } + // Do not handle nested functions + else if (node.type === "function") { + return false; + } + // Ignore all except word + else if (node.type !== "word") { + return; + } + + const value = node.type === "word" ? node.value.toLowerCase() : null; + + let shouldParseAnimationName = false; + + if (value && validIdent.test(value)) { + if ("$" + value in animationKeywords) { + parsedAnimationKeywords["$" + value] = + "$" + value in parsedAnimationKeywords + ? parsedAnimationKeywords["$" + value] + 1 + : 0; + + shouldParseAnimationName = + parsedAnimationKeywords["$" + value] >= + animationKeywords["$" + value]; + } else { + shouldParseAnimationName = true; + } + } + + const subContext = { + options: context.options, + global: context.global, + localizeNextItem: shouldParseAnimationName && !context.global, + localAliasMap: context.localAliasMap, + }; + + return localizeDeclNode(node, subContext); + }); + + declaration.value = valueNodes.toString(); + + return; + } + + const isAnimationName = /animation(-name)?$/i.test(declaration.prop); + + if (isAnimationName) { + return localizeDeclarationValues(true, declaration, context); + } + + const hasUrl = /url\(/i.test(declaration.value); + + if (hasUrl) { + return localizeDeclarationValues(false, declaration, context); + } +} + +module.exports = (options = {}) => { + if ( + options && + options.mode && + options.mode !== "global" && + options.mode !== "local" && + options.mode !== "pure" + ) { + throw new Error( + 'options.mode must be either "global", "local" or "pure" (default "local")' + ); + } + + const pureMode = options && options.mode === "pure"; + const globalMode = options && options.mode === "global"; + + return { + postcssPlugin: "postcss-modules-local-by-default", + prepare() { + const localAliasMap = new Map(); + + return { + Once(root) { + const { icssImports } = extractICSS(root, false); + + Object.keys(icssImports).forEach((key) => { + Object.keys(icssImports[key]).forEach((prop) => { + localAliasMap.set(prop, icssImports[key][prop]); + }); + }); + + root.walkAtRules((atRule) => { + if (/keyframes$/i.test(atRule.name)) { + const globalMatch = /^\s*:global\s*\((.+)\)\s*$/.exec( + atRule.params + ); + const localMatch = /^\s*:local\s*\((.+)\)\s*$/.exec( + atRule.params + ); + + let globalKeyframes = globalMode; + + if (globalMatch) { + if (pureMode) { + throw atRule.error( + "@keyframes :global(...) is not allowed in pure mode" + ); + } + atRule.params = globalMatch[1]; + globalKeyframes = true; + } else if (localMatch) { + atRule.params = localMatch[0]; + globalKeyframes = false; + } else if ( + atRule.params && + !globalMode && + !localAliasMap.has(atRule.params) + ) { + atRule.params = ":local(" + atRule.params + ")"; + } + + atRule.walkDecls((declaration) => { + localizeDeclaration(declaration, { + localAliasMap, + options: options, + global: globalKeyframes, + }); + }); + } else if (/scope$/i.test(atRule.name)) { + if (atRule.params) { + atRule.params = atRule.params + .split("to") + .map((item) => { + const selector = item.trim().slice(1, -1).trim(); + const context = localizeNode( + selector, + options.mode, + localAliasMap + ); + + context.options = options; + context.localAliasMap = localAliasMap; + + if (pureMode && context.hasPureGlobals) { + throw atRule.error( + 'Selector in at-rule"' + + selector + + '" is not pure ' + + "(pure selectors must contain at least one local class or id)" + ); + } + + return `(${context.selector})`; + }) + .join(" to "); + } + + atRule.nodes.forEach((declaration) => { + if (declaration.type === "decl") { + localizeDeclaration(declaration, { + localAliasMap, + options: options, + global: globalMode, + }); + } + }); + } else if (atRule.nodes) { + atRule.nodes.forEach((declaration) => { + if (declaration.type === "decl") { + localizeDeclaration(declaration, { + localAliasMap, + options: options, + global: globalMode, + }); + } + }); + } + }); + + root.walkRules((rule) => { + if ( + rule.parent && + rule.parent.type === "atrule" && + /keyframes$/i.test(rule.parent.name) + ) { + // ignore keyframe rules + return; + } + + const context = localizeNode(rule, options.mode, localAliasMap); + + context.options = options; + context.localAliasMap = localAliasMap; + + if (pureMode && context.hasPureGlobals) { + throw rule.error( + 'Selector "' + + rule.selector + + '" is not pure ' + + "(pure selectors must contain at least one local class or id)" + ); + } + + rule.selector = context.selector; + + // Less-syntax mixins parse as rules with no nodes + if (rule.nodes) { + rule.nodes.forEach((declaration) => + localizeDeclaration(declaration, context) + ); + } + }); + }, + }; + }, + }; +}; +module.exports.postcss = true; diff --git a/node_modules/postcss-modules-scope/LICENSE b/node_modules/postcss-modules-scope/LICENSE new file mode 100644 index 0000000..fdfeea4 --- /dev/null +++ b/node_modules/postcss-modules-scope/LICENSE @@ -0,0 +1,7 @@ +ISC License (ISC) + +Copyright (c) 2015, Glen Maddern + +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/postcss-modules-scope/README.md b/node_modules/postcss-modules-scope/README.md new file mode 100644 index 0000000..7e2a08e --- /dev/null +++ b/node_modules/postcss-modules-scope/README.md @@ -0,0 +1,100 @@ +# CSS Modules: Scope Locals & Extend + +[![Build Status](https://travis-ci.org/css-modules/postcss-modules-scope.svg?branch=master)](https://travis-ci.org/css-modules/postcss-modules-scope) + +Transforms: + +```css +:local(.continueButton) { + color: green; +} +``` + +into: + +```css +:export { + continueButton: __buttons_continueButton_djd347adcxz9; +} +.__buttons_continueButton_djd347adcxz9 { + color: green; +} +``` + +so it doesn't pollute CSS global scope and can be simply used in JS like so: + +```js +import styles from "./buttons.css"; +elem.innerHTML = ``; +``` + +## Composition + +Since we're exporting class names, there's no reason to export only one. This can give us some really useful reuse of styles: + +```css +.globalButtonStyle { + background: white; + border: 1px solid; + border-radius: 0.25rem; +} +.globalButtonStyle:hover { + box-shadow: 0 0 4px -2px; +} +:local(.continueButton) { + compose-with: globalButtonStyle; + color: green; +} +``` + +becomes: + +``` +.globalButtonStyle { + background: white; + border: 1px solid; + border-radius: 0.25rem; +} +.globalButtonStyle:hover { + box-shadow: 0 0 4px -2px; +} +:local(.continueButton) { + compose-with: globalButtonStyle; + color: green; +} +``` + +**Note:** you can also use `composes` as a shorthand for `compose-with` + +## Local-by-default & reuse across files + +You're looking for [CSS Modules](https://github.com/css-modules/css-modules). It uses this plugin as well as a few others, and it's amazing. + +## Building + +``` +npm install +npm test +``` + +- Status: [![Build Status](https://travis-ci.org/css-modules/postcss-modules-scope.svg?branch=master)](https://travis-ci.org/css-modules/postcss-modules-scope) +- Lines: [![Coverage Status](https://coveralls.io/repos/css-modules/postcss-modules-scope/badge.svg?branch=master)](https://coveralls.io/r/css-modules/postcss-modules-scope?branch=master) +- Statements: [![codecov.io](http://codecov.io/github/css-modules/postcss-modules-scope/coverage.svg?branch=master)](http://codecov.io/github/css-modules/postcss-modules-scope?branch=master) + +## Development + +- `npm test:watch` will watch `src` and `test` for changes and run the tests + +## License + +ISC + +## With thanks + +- Mark Dalgleish +- Tobias Koppers +- Guy Bedford + +--- + +Glen Maddern, 2015. diff --git a/node_modules/postcss-modules-scope/package.json b/node_modules/postcss-modules-scope/package.json new file mode 100644 index 0000000..1dd8e42 --- /dev/null +++ b/node_modules/postcss-modules-scope/package.json @@ -0,0 +1,54 @@ +{ + "name": "postcss-modules-scope", + "version": "3.2.0", + "description": "A CSS Modules transform to extract export statements from local-scope classes", + "main": "src/index.js", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "scripts": { + "prettier": "prettier -l --ignore-path .gitignore . \"!test/test-cases\"", + "eslint": "eslint --ignore-path .gitignore .", + "lint": "yarn eslint && yarn prettier", + "test:only": "jest", + "test:watch": "jest --watch", + "test:coverage": "jest --coverage --collectCoverageFrom=\"src/**/*\"", + "pretest": "yarn lint", + "test": "yarn test:coverage", + "prepublishOnly": "yarn test" + }, + "repository": { + "type": "git", + "url": "https://github.com/css-modules/postcss-modules-scope.git" + }, + "keywords": [ + "css-modules", + "postcss", + "plugin" + ], + "files": [ + "src" + ], + "author": "Glen Maddern", + "license": "ISC", + "bugs": { + "url": "https://github.com/css-modules/postcss-modules-scope/issues" + }, + "homepage": "https://github.com/css-modules/postcss-modules-scope", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "devDependencies": { + "coveralls": "^3.1.0", + "eslint": "^7.9.0", + "eslint-config-prettier": "^6.12.0", + "husky": "^4.3.0", + "jest": "^26.4.2", + "lint-staged": "^10.4.0", + "postcss": "^8.3.0", + "prettier": "^2.1.2" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } +} diff --git a/node_modules/postcss-modules-scope/src/index.js b/node_modules/postcss-modules-scope/src/index.js new file mode 100644 index 0000000..c7e3ff4 --- /dev/null +++ b/node_modules/postcss-modules-scope/src/index.js @@ -0,0 +1,376 @@ +"use strict"; + +const selectorParser = require("postcss-selector-parser"); + +const hasOwnProperty = Object.prototype.hasOwnProperty; + +function isNestedRule(rule) { + if (!rule.parent || rule.parent.type === "root") { + return false; + } + + if (rule.parent.type === "rule") { + return true; + } + + return isNestedRule(rule.parent); +} + +function getSingleLocalNamesForComposes(root, rule) { + if (isNestedRule(rule)) { + throw new Error(`composition is not allowed in nested rule \n\n${rule}`); + } + + return root.nodes.map((node) => { + if (node.type !== "selector" || node.nodes.length !== 1) { + throw new Error( + `composition is only allowed when selector is single :local class name not in "${root}"` + ); + } + + node = node.nodes[0]; + + if ( + node.type !== "pseudo" || + node.value !== ":local" || + node.nodes.length !== 1 + ) { + throw new Error( + 'composition is only allowed when selector is single :local class name not in "' + + root + + '", "' + + node + + '" is weird' + ); + } + + node = node.first; + + if (node.type !== "selector" || node.length !== 1) { + throw new Error( + 'composition is only allowed when selector is single :local class name not in "' + + root + + '", "' + + node + + '" is weird' + ); + } + + node = node.first; + + if (node.type !== "class") { + // 'id' is not possible, because you can't compose ids + throw new Error( + 'composition is only allowed when selector is single :local class name not in "' + + root + + '", "' + + node + + '" is weird' + ); + } + + return node.value; + }); +} + +const whitespace = "[\\x20\\t\\r\\n\\f]"; +const unescapeRegExp = new RegExp( + "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", + "ig" +); + +function unescape(str) { + return str.replace(unescapeRegExp, (_, escaped, escapedWhitespace) => { + const high = "0x" + escaped - 0x10000; + + // NaN means non-codepoint + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace + ? escaped + : high < 0 + ? // BMP codepoint + String.fromCharCode(high + 0x10000) + : // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode((high >> 10) | 0xd800, (high & 0x3ff) | 0xdc00); + }); +} + +const plugin = (options = {}) => { + const generateScopedName = + (options && options.generateScopedName) || plugin.generateScopedName; + const generateExportEntry = + (options && options.generateExportEntry) || plugin.generateExportEntry; + const exportGlobals = options && options.exportGlobals; + + return { + postcssPlugin: "postcss-modules-scope", + Once(root, { rule }) { + const exports = Object.create(null); + + function exportScopedName(name, rawName, node) { + const scopedName = generateScopedName( + rawName ? rawName : name, + root.source.input.from, + root.source.input.css, + node + ); + const exportEntry = generateExportEntry( + rawName ? rawName : name, + scopedName, + root.source.input.from, + root.source.input.css, + node + ); + const { key, value } = exportEntry; + + exports[key] = exports[key] || []; + + if (exports[key].indexOf(value) < 0) { + exports[key].push(value); + } + + return scopedName; + } + + function localizeNode(node) { + switch (node.type) { + case "selector": + node.nodes = node.map((item) => localizeNode(item)); + return node; + case "class": + return selectorParser.className({ + value: exportScopedName( + node.value, + node.raws && node.raws.value ? node.raws.value : null, + node + ), + }); + case "id": { + return selectorParser.id({ + value: exportScopedName( + node.value, + node.raws && node.raws.value ? node.raws.value : null, + node + ), + }); + } + case "attribute": { + if (node.attribute === "class" && node.operator === "=") { + return selectorParser.attribute({ + attribute: node.attribute, + operator: node.operator, + quoteMark: "'", + value: exportScopedName(node.value, null, null), + }); + } + } + } + + throw new Error( + `${node.type} ("${node}") is not allowed in a :local block` + ); + } + + function traverseNode(node) { + switch (node.type) { + case "pseudo": + if (node.value === ":local") { + if (node.nodes.length !== 1) { + throw new Error('Unexpected comma (",") in :local block'); + } + + const selector = localizeNode(node.first); + // move the spaces that were around the pseudo selector to the first + // non-container node + selector.first.spaces = node.spaces; + + const nextNode = node.next(); + + if ( + nextNode && + nextNode.type === "combinator" && + nextNode.value === " " && + /\\[A-F0-9]{1,6}$/.test(selector.last.value) + ) { + selector.last.spaces.after = " "; + } + + node.replaceWith(selector); + + return; + } + /* falls through */ + case "root": + case "selector": { + node.each((item) => traverseNode(item)); + break; + } + case "id": + case "class": + if (exportGlobals) { + exports[node.value] = [node.value]; + } + break; + } + return node; + } + + // Find any :import and remember imported names + const importedNames = {}; + + root.walkRules(/^:import\(.+\)$/, (rule) => { + rule.walkDecls((decl) => { + importedNames[decl.prop] = true; + }); + }); + + // Find any :local selectors + root.walkRules((rule) => { + let parsedSelector = selectorParser().astSync(rule); + + rule.selector = traverseNode(parsedSelector.clone()).toString(); + + rule.walkDecls(/^(composes|compose-with)$/i, (decl) => { + const localNames = getSingleLocalNamesForComposes( + parsedSelector, + decl.parent + ); + const multiple = decl.value.split(","); + + multiple.forEach((value) => { + const classes = value.trim().split(/\s+/); + + classes.forEach((className) => { + const global = /^global\(([^)]+)\)$/.exec(className); + + if (global) { + localNames.forEach((exportedName) => { + exports[exportedName].push(global[1]); + }); + } else if (hasOwnProperty.call(importedNames, className)) { + localNames.forEach((exportedName) => { + exports[exportedName].push(className); + }); + } else if (hasOwnProperty.call(exports, className)) { + localNames.forEach((exportedName) => { + exports[className].forEach((item) => { + exports[exportedName].push(item); + }); + }); + } else { + throw decl.error( + `referenced class name "${className}" in ${decl.prop} not found` + ); + } + }); + }); + + decl.remove(); + }); + + // Find any :local values + rule.walkDecls((decl) => { + if (!/:local\s*\((.+?)\)/.test(decl.value)) { + return; + } + + let tokens = decl.value.split(/(,|'[^']*'|"[^"]*")/); + + tokens = tokens.map((token, idx) => { + if (idx === 0 || tokens[idx - 1] === ",") { + let result = token; + + const localMatch = /:local\s*\((.+?)\)/.exec(token); + + if (localMatch) { + const input = localMatch.input; + const matchPattern = localMatch[0]; + const matchVal = localMatch[1]; + const newVal = exportScopedName(matchVal); + + result = input.replace(matchPattern, newVal); + } else { + return token; + } + + return result; + } else { + return token; + } + }); + + decl.value = tokens.join(""); + }); + }); + + // Find any :local keyframes + root.walkAtRules(/keyframes$/i, (atRule) => { + const localMatch = /^\s*:local\s*\((.+?)\)\s*$/.exec(atRule.params); + + if (!localMatch) { + return; + } + + atRule.params = exportScopedName(localMatch[1]); + }); + + root.walkAtRules(/scope$/i, (atRule) => { + if (atRule.params) { + atRule.params = atRule.params + .split("to") + .map((item) => { + const selector = item.trim().slice(1, -1).trim(); + + const localMatch = /^\s*:local\s*\((.+?)\)\s*$/.exec(selector); + + if (!localMatch) { + return `(${selector})`; + } + + let parsedSelector = selectorParser().astSync(selector); + + return `(${traverseNode(parsedSelector).toString()})`; + }) + .join(" to "); + } + }); + + // If we found any :locals, insert an :export rule + const exportedNames = Object.keys(exports); + + if (exportedNames.length > 0) { + const exportRule = rule({ selector: ":export" }); + + exportedNames.forEach((exportedName) => + exportRule.append({ + prop: exportedName, + value: exports[exportedName].join(" "), + raws: { before: "\n " }, + }) + ); + + root.append(exportRule); + } + }, + }; +}; + +plugin.postcss = true; + +plugin.generateScopedName = function (name, path) { + const sanitisedPath = path + .replace(/\.[^./\\]+$/, "") + .replace(/[\W_]+/g, "_") + .replace(/^_|_$/g, ""); + + return `_${sanitisedPath}__${name}`.trim(); +}; + +plugin.generateExportEntry = function (name, scopedName) { + return { + key: unescape(name), + value: unescape(scopedName), + }; +}; + +module.exports = plugin; diff --git a/node_modules/postcss-modules-values/CHANGELOG.md b/node_modules/postcss-modules-values/CHANGELOG.md new file mode 100644 index 0000000..1985183 --- /dev/null +++ b/node_modules/postcss-modules-values/CHANGELOG.md @@ -0,0 +1,55 @@ +# Change Log + +All notable changes to this project will be documented in this file. +This project adheres to [Semantic Versioning](http://semver.org/). + +## [4.0.0](https://github.com/postcss-modules-local-by-default/compare/v4.0.0-rc.5...v4.0.0) - 2020-13-08 + +### Fixes + +- compatibility with other plugins + +## [4.0.0-rc.5](https://github.com/postcss-modules-local-by-default/compare/v4.0.0-rc.4...v4.0.0-rc.5) - 2020-11-08 + +### Fixes + +- compatibility with other plugins + +## [4.0.0-rc.4](https://github.com/postcss-modules-local-by-default/compare/v4.0.0-rc.3...v4.0.0-rc.4) - 2020-10-08 + +### Fixes + +- perf +- compatibility with empty custom properties +- works with `options.createImportedName` + +## [4.0.0-rc.3](https://github.com/postcss-modules-local-by-default/compare/v4.0.0-rc.2...v4.0.0-rc.3) - 2020-10-08 + +### BREAKING CHANGE + +- minimum supported `postcss` version is `^8.1.0` + +### Fixes + +- minimum supported `Node.js` version is `^10 || ^12 || >= 14` +- compatibility with PostCSS 8 + +## [4.0.0-rc.2](https://github.com/postcss-modules-local-by-default/compare/v4.0.0-rc.1...v4.0.0-rc.2) - 2020-09-22 + +### Fixes + +- avoid using `postcss` directly to create decls and rules + +## [4.0.0-rc.1](https://github.com/postcss-modules-local-by-default/compare/v4.0.0-rc.0...v4.0.0-rc.1) - 2020-09-22 + +### BREAKING CHANGE + +- update `icss-utils` for PostCSS 8 compatibility + +## [4.0.0-rc.0](https://github.com/postcss-modules-local-by-default/compare/v3.0.0...v4.0.0-rc.1) - 2020-09-18 + +### BREAKING CHANGE + +- minimum supported `Node.js` version is `>= 10.13.0 || >= 12.13.0 || >= 14` +- minimum supported `postcss` version is `^8.0.3` +- `postcss` was moved to `peerDependencies`, you need to install `postcss` in your project before use the plugin diff --git a/node_modules/postcss-modules-values/LICENSE b/node_modules/postcss-modules-values/LICENSE new file mode 100644 index 0000000..c748301 --- /dev/null +++ b/node_modules/postcss-modules-values/LICENSE @@ -0,0 +1,7 @@ +ISC License (ISC) + +Copyright (c) 2015, Glen Maddern + +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. \ No newline at end of file diff --git a/node_modules/postcss-modules-values/README.md b/node_modules/postcss-modules-values/README.md new file mode 100644 index 0000000..83fe3a7 --- /dev/null +++ b/node_modules/postcss-modules-values/README.md @@ -0,0 +1,80 @@ +# CSS Modules: Values + +Pass arbitrary values between your module files + +### Usage + +```css +/* colors.css */ +@value primary: #BF4040; +@value secondary: #1F4F7F; + +.text-primary { + color: primary; +} + +.text-secondary { + color: secondary; +} +``` + +```css +/* breakpoints.css */ +@value small: (max-width: 599px); +@value medium: (min-width: 600px) and (max-width: 959px); +@value large: (min-width: 960px); +``` + +```css +/* my-component.css */ +/* alias paths for other values or composition */ +@value colors: "./colors.css"; +/* import multiple from a single file */ +@value primary, secondary from colors; +/* make local aliases to imported values */ +@value small as bp-small, large as bp-large from "./breakpoints.css"; +/* value as selector name */ +@value selectorValue: secondary-color; + +.selectorValue { + color: secondary; +} + +.header { + composes: text-primary from colors; + box-shadow: 0 0 10px secondary; +} + +@media bp-small { + .header { + box-shadow: 0 0 4px secondary; + } +} +@media bp-large { + .header { + box-shadow: 0 0 20px secondary; + } +} +``` + +**If you are using Sass** along with this PostCSS plugin, do not use the colon `:` in your `@value` definitions. It will cause Sass to crash. + +Note also you can _import_ multiple values at once but can only _define_ one value per line. + +```css +@value a: b, c: d; /* defines a as "b, c: d" */ +``` + +## License + +ISC + +## With thanks + +- Mark Dalgleish +- Tobias Koppers +- Josh Johnston + +--- + +Glen Maddern, 2015. diff --git a/node_modules/postcss-modules-values/package.json b/node_modules/postcss-modules-values/package.json new file mode 100644 index 0000000..97217c2 --- /dev/null +++ b/node_modules/postcss-modules-values/package.json @@ -0,0 +1,54 @@ +{ + "name": "postcss-modules-values", + "version": "4.0.0", + "description": "PostCSS plugin for CSS Modules to pass arbitrary values between your module files", + "main": "src/index.js", + "files": [ + "src" + ], + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "scripts": { + "prettier": "prettier -l --ignore-path .gitignore .", + "eslint": "eslint --ignore-path .gitignore .", + "lint": "yarn eslint && yarn prettier", + "test:only": "jest", + "test:watch": "jest --watch", + "test:coverage": "jest --coverage --collectCoverageFrom=\"src/**/*\"", + "pretest": "yarn lint", + "test": "yarn test:coverage", + "prepublishOnly": "yarn test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/css-modules/postcss-modules-values.git" + }, + "keywords": [ + "css", + "modules", + "postcss" + ], + "author": "Glen Maddern", + "license": "ISC", + "bugs": { + "url": "https://github.com/css-modules/postcss-modules-values/issues" + }, + "homepage": "https://github.com/css-modules/postcss-modules-values#readme", + "devDependencies": { + "coveralls": "^3.1.0", + "eslint": "^7.10.0", + "eslint-config-prettier": "^6.12.0", + "husky": "^4.3.0", + "jest": "^26.5.2", + "lint-staged": "^10.4.0", + "postcss": "^8.1.0", + "prettier": "^2.1.2" + }, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } +} diff --git a/node_modules/postcss-modules-values/src/index.js b/node_modules/postcss-modules-values/src/index.js new file mode 100644 index 0000000..c77e066 --- /dev/null +++ b/node_modules/postcss-modules-values/src/index.js @@ -0,0 +1,142 @@ +"use strict"; + +const ICSSUtils = require("icss-utils"); + +const matchImports = /^(.+?|\([\s\S]+?\))\s+from\s+("[^"]*"|'[^']*'|[\w-]+)$/; +const matchValueDefinition = /(?:\s+|^)([\w-]+):?(.*?)$/; +const matchImport = /^([\w-]+)(?:\s+as\s+([\w-]+))?/; + +module.exports = (options) => { + let importIndex = 0; + const createImportedName = + (options && options.createImportedName) || + ((importName /*, path*/) => + `i__const_${importName.replace(/\W/g, "_")}_${importIndex++}`); + + return { + postcssPlugin: "postcss-modules-values", + prepare(result) { + const importAliases = []; + const definitions = {}; + + return { + Once(root, postcss) { + root.walkAtRules(/value/i, (atRule) => { + const matches = atRule.params.match(matchImports); + + if (matches) { + let [, /*match*/ aliases, path] = matches; + + // We can use constants for path names + if (definitions[path]) { + path = definitions[path]; + } + + const imports = aliases + .replace(/^\(\s*([\s\S]+)\s*\)$/, "$1") + .split(/\s*,\s*/) + .map((alias) => { + const tokens = matchImport.exec(alias); + + if (tokens) { + const [, /*match*/ theirName, myName = theirName] = tokens; + const importedName = createImportedName(myName); + definitions[myName] = importedName; + return { theirName, importedName }; + } else { + throw new Error(`@import statement "${alias}" is invalid!`); + } + }); + + importAliases.push({ path, imports }); + + atRule.remove(); + + return; + } + + if (atRule.params.indexOf("@value") !== -1) { + result.warn("Invalid value definition: " + atRule.params); + } + + let [, key, value] = `${atRule.params}${atRule.raws.between}`.match( + matchValueDefinition + ); + + const normalizedValue = value.replace(/\/\*((?!\*\/).*?)\*\//g, ""); + + if (normalizedValue.length === 0) { + result.warn("Invalid value definition: " + atRule.params); + atRule.remove(); + + return; + } + + let isOnlySpace = /^\s+$/.test(normalizedValue); + + if (!isOnlySpace) { + value = value.trim(); + } + + // Add to the definitions, knowing that values can refer to each other + definitions[key] = ICSSUtils.replaceValueSymbols( + value, + definitions + ); + + atRule.remove(); + }); + + /* If we have no definitions, don't continue */ + if (!Object.keys(definitions).length) { + return; + } + + /* Perform replacements */ + ICSSUtils.replaceSymbols(root, definitions); + + /* We want to export anything defined by now, but don't add it to the CSS yet or it well get picked up by the replacement stuff */ + const exportDeclarations = Object.keys(definitions).map((key) => + postcss.decl({ + value: definitions[key], + prop: key, + raws: { before: "\n " }, + }) + ); + + /* Add export rules if any */ + if (exportDeclarations.length > 0) { + const exportRule = postcss.rule({ + selector: ":export", + raws: { after: "\n" }, + }); + + exportRule.append(exportDeclarations); + + root.prepend(exportRule); + } + + /* Add import rules */ + importAliases.reverse().forEach(({ path, imports }) => { + const importRule = postcss.rule({ + selector: `:import(${path})`, + raws: { after: "\n" }, + }); + + imports.forEach(({ theirName, importedName }) => { + importRule.append({ + value: theirName, + prop: importedName, + raws: { before: "\n " }, + }); + }); + + root.prepend(importRule); + }); + }, + }; + }, + }; +}; + +module.exports.postcss = true; diff --git a/node_modules/postcss-modules/CHANGELOG.md b/node_modules/postcss-modules/CHANGELOG.md new file mode 100644 index 0000000..09eafd1 --- /dev/null +++ b/node_modules/postcss-modules/CHANGELOG.md @@ -0,0 +1,199 @@ +# Changelog + +## 4.3.1 + +- Fixed errors when using shorthand selectors by Felix Bruns (@fxb) https://github.com/madyankin/postcss-modules/pull/130 + +## 4.3.0 + +- Updated the `generic-names` dependency to reduce packages size by Bogdan Chadkin (@TrySound) https://github.com/madyankin/postcss-modules/pull/129 + +## 4.2.2 + +- Fix the build + +## 4.2.1 + +- Fixed the `resolve` option behaviour by @kamilic https://github.com/madyankin/postcss-modules/pull/127 + +## 4.2.0 + +- Added the `resolve` option to configure lookup paths for composes/from by @kamilic https://github.com/madyankin/postcss-modules/pull/126 + +## 4.1.3 + +- Fixed package contents + +## 4.1.1 + +- Fixed TypeScript typings by Shuman Lim (@origin-master) https://github.com/madyankin/postcss-modules/pull/124 + +## 4.1.0 + +- Added TypeScript typings by Shuman Lim (@origin-master) https://github.com/madyankin/postcss-modules/pull/123 + +## 4.0.0 + +- Upgraded to PostCSS 8 by Evan You (@yyx990803) https://github.com/css-modules/postcss-modules/pull/114 + +## 3.2.2 + +### Fixed + +- Fixed user plugins order by Tom Jenkinson (@tjenkinson) https://github.com/css-modules/postcss-modules/pull/112 + +## 3.2.1 + +### Fixed + +- Fixed an issue when some plugins were running multiple times by Tom Jenkinson (@tjenkinson) https://github.com/css-modules/postcss-modules/pull/111 + +## 3.2.0 + +### Changed + +- [`localsConvention` option] now supports a custom function `(originalClassName: string, generatedClassName: string, inputFile: string) => className: string` by Gregory Waxman (@Akkuma) https://github.com/css-modules/postcss-modules/pull/109 + +## 3.1.0 + +### Added + +- Added `exportGlobals` option + +## 3.0.0 + +### Changed + +- Dropped `css-modules-loader-core` dependency +- [Upgraded all the dependencies](https://github.com/css-modules/postcss-modules/pull/108) + +### Breaking changes + +- Dropped support for unsupported Node versions. Supported versions are 10, 12 and 14+ https://nodejs.org/en/about/releases/ + +## 2.0.0 + +### Added + +- [`localsConvention` option](https://github.com/css-modules/postcss-modules#localsconvention) by Hamza Mihai Daniel (@allocenx) , + +### Breaking changes + +- `camelCase` camelCase removed, use the [`localsConvention` option](https://github.com/css-modules/postcss-modules#localsconvention) instead. + +## 1.5.0 + +- Added `hashPrefix` option by Jesse Thomson (@jessethomson) + +## 1.4.1 + +- Rebublished the previous release. Sorry :( + +## 1.4.0 + +- Added export for other plugins by Evilebot Tnawi (@evilebottnawi) , + +## 1.3.1 + +- Move dev tools to devDependecies by Anton Khlynovskiy (@ubzey) + +## 1.3.0 + +- Updated dependecies +- Added prettier to format code + +## 1.2.0 + +- Added option to transform classes to camelCase by Igor Ribeiro (@igor-ribeiro) + +## 1.1.0 + +- Added ability to transmit outputFileName into getJSON by @lutien + +## 1.0.0 + +- Dropped support for Node < 6 +- Updated dependencies + +## 0.8.0 + +- Updated PostCSS to 6 by Alexey Litvinov (@sullenor) + +## 0.7.1 + +- Allowed empty string as opts.root by Sharon Rolel (@Mosho1) + +## 0.7.0 + +- Allow async getJSON by Philipp A. (@flying-sheep) + +## 0.6.4 + +- Added the `root` option to pass the root path by Sharon Rolel (@Mosho1) () + +## 0.6.3 + +- Fixed regression in `isValidBehaviour` function () + +## 0.6.2 + +- Refactored `getDefaultPluginsList` function + +## 0.6.1 + +- Fixed `generateScopedName` bug with multiple postcss-modules instances () + +## 0.6.0 + +- Added `globalModulePaths` option (Thanks to @pospi). +- Refactored all the things. + +## 0.5.2 + +- Updated dependencies + +## 0.5.1 + +- Fixed sorting for composed dependencies by Josh Johnston (@joshwnj) () + +## 0.5.0 + +- Added `scopeBehaviour` option () +- Added ability to pass a string to `generateScopedName` () +- Updated dependencies + +## 0.4.1 + +- Fixed processing errors capturing by Boris Serdiuk (@just-boris) + +## 0.4.0 + +- Added support for custom loaders by Björn Brauer (@ZauberNerd) + +## 0.3.0 + +- Fixed processing for imported CSS +- Added default callback for saving exported JSON + +## 0.2.0 + +- Fixed JSON export with shallow imports () +- Fixed lookup paths () +- Fixed imports overriding () +- Global refactoring under the hood + +## 0.1.3 + +Fixed failing on comments by @dfreeman () + +## 0.1.2 + +Fixed module export for ES5 () + +## 0.1.1 + +Call getExports only for top level css + +## 0.1.0 + +Initial version diff --git a/node_modules/postcss-modules/LICENSE b/node_modules/postcss-modules/LICENSE new file mode 100644 index 0000000..802e18d --- /dev/null +++ b/node_modules/postcss-modules/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2015-present Alexander Madyankin + +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-modules/README.md b/node_modules/postcss-modules/README.md new file mode 100644 index 0000000..88ea2a7 --- /dev/null +++ b/node_modules/postcss-modules/README.md @@ -0,0 +1,332 @@ +# postcss-modules + +A [PostCSS] plugin to use [CSS Modules] everywhere. Not only at the client side. + +[postcss]: https://github.com/postcss/postcss +[css modules]: https://github.com/css-modules/css-modules + +## Support the developer + +I maintain the plugin in my free time, so I don't receive any payment for this work. +To have better docs, new features and integrations with frameworks, you can [support me on Patreon](https://www.patreon.com/bePatron?u=25976212). + +The sponsors are listed [below in the README](#sponsors) + +## What is this? + +For example, you have the following CSS: + +```css +/* styles.css */ +:global .page { + padding: 20px; +} + +.title { + composes: title from "./mixins.css"; + color: green; +} + +.article { + font-size: 16px; +} + +/* mixins.css */ +.title { + color: black; + font-size: 40px; +} + +.title:hover { + color: red; +} +``` + +After the transformation it will become like this: + +```css +._title_116zl_1 { + color: black; + font-size: 40px; +} + +._title_116zl_1:hover { + color: red; +} + +.page { + padding: 20px; +} + +._title_xkpkl_5 { + color: green; +} + +._article_xkpkl_10 { + font-size: 16px; +} +``` + +And the plugin will give you a JSON object for transformed classes: + +```json +{ + "title": "_title_xkpkl_5 _title_116zl_1", + "article": "_article_xkpkl_10" +} +``` + +## Usage + +### Saving exported classes + +By default, a JSON file with exported classes will be placed next to corresponding CSS. +But you have a freedom to make everything you want with exported classes, just +use the `getJSON` callback. For example, save data about classes into a corresponding JSON file: + +```js +postcss([ + require("postcss-modules")({ + getJSON: function (cssFileName, json, outputFileName) { + var path = require("path"); + var cssName = path.basename(cssFileName, ".css"); + var jsonFileName = path.resolve("./build/" + cssName + ".json"); + fs.writeFileSync(jsonFileName, JSON.stringify(json)); + }, + }), +]); +``` + +`getJSON` may also return a `Promise`. + +### Generating scoped names + +By default, the plugin assumes that all the classes are local. You can change +this behaviour using the `scopeBehaviour` option: + +```js +postcss([ + require("postcss-modules")({ + scopeBehaviour: "global", // can be 'global' or 'local', + }), +]); +``` + +To define paths for global modules, use the `globalModulePaths` option. +It is an array with regular expressions defining the paths: + +```js +postcss([ + require('postcss-modules')({ + globalModulePaths: [/path\/to\/legacy-styles/, /another\/paths/], + }); +]); +``` + +To generate custom classes, use the `generateScopedName` callback: + +```js +postcss([ + require("postcss-modules")({ + generateScopedName: function (name, filename, css) { + var path = require("path"); + var i = css.indexOf("." + name); + var line = css.substr(0, i).split(/[\r\n]/).length; + var file = path.basename(filename, ".css"); + + return "_" + file + "_" + line + "_" + name; + }, + }), +]); +``` + +Or just pass an interpolated string to the `generateScopedName` option +(More details [here](https://github.com/webpack/loader-utils#interpolatename)): + +```js +postcss([ + require("postcss-modules")({ + generateScopedName: "[name]__[local]___[hash:base64:5]", + }), +]); +``` + +It's possible to add custom hash to generate more unique classes using the `hashPrefix` option (like in [css-loader](https://webpack.js.org/loaders/css-loader/#hashprefix)): + +```js +postcss([ + require("postcss-modules")({ + generateScopedName: "[name]__[local]___[hash:base64:5]", + hashPrefix: "prefix", + }), +]); +``` + +### Exporting globals + +If you need to export global names via the JSON object along with the local ones, add the `exportGlobals` option: + +```js +postcss([ + require("postcss-modules")({ + exportGlobals: true, + }), +]); +``` + +### Loading source files + +If you need, you can pass a custom loader (see [FileSystemLoader] for example): + +```js +postcss([ + require("postcss-modules")({ + Loader: CustomLoader, + }), +]); +``` + +You can also pass any needed root path: + +```js +postcss([ + require('postcss-modules')({ + root: 'C:\\', + }); +]); +``` + +### localsConvention + +Type: `String | (originalClassName: string, generatedClassName: string, inputFile: string) => className: string` +Default: `null` + +Style of exported classnames, the keys in your json. + +| Name | Type | Description | +| :-------------------: | :--------: | :----------------------------------------------------------------------------------------------- | +| **`'camelCase'`** | `{String}` | Class names will be camelized, the original class name will not to be removed from the locals | +| **`'camelCaseOnly'`** | `{String}` | Class names will be camelized, the original class name will be removed from the locals | +| **`'dashes'`** | `{String}` | Only dashes in class names will be camelized | +| **`'dashesOnly'`** | `{String}` | Dashes in class names will be camelized, the original class name will be removed from the locals | + +In lieu of a string, a custom function can generate the exported class names. + +### Resolve path alias + +You can rewrite paths for `composes/from` by using `resolve` options. +It's useful when you need to resolve custom path alias. + +```js +postcss([ + require("postcss-modules")({ + resolve: function (file) { + return file.replace(/^@/, process.cwd()); + }, + }), +]); +``` + +`resolve` may also return a `Promise`. + + +## Integration with templates + +The plugin only transforms CSS classes to CSS modules. +But you probably want to integrate these CSS modules with your templates. +Here are some examples. + +Assume you've saved project's CSS modules in `cssModules.json`: + +```json +{ + "title": "_title_xkpkl_5 _title_116zl_1", + "article": "_article_xkpkl_10" +} +``` + +### Pug (ex-Jade) + +Let's say you have a Pug template `about.jade`: + +```jade +h1(class=css.title) postcss-modules +article(class=css.article) A PostCSS plugin to use CSS Modules everywhere +``` + +Render it: + +```js +var jade = require("jade"); +var cssModules = require("./cssModules.json"); +var html = jade.compileFile("about.jade")({ css: cssModules }); +console.log(html); +``` + +And you'll get the following HTML: + +```html +

      postcss-modules

      +
      + A PostCSS plugin to use CSS Modules everywhere +
      +``` + +### HTML + +For HTML transformation we'll use [PostHTML](https://github.com/posthtml/posthtml) and [PostHTML CSS Modules](https://github.com/maltsev/posthtml-css-modules): + +```bash +npm install --save posthtml posthtml-css-modules +``` + +Here is our template `about.html`: + +```html +

      postcss-modules

      +
      + A PostCSS plugin to use CSS Modules everywhere +
      +``` + +Transform it: + +```js +var fs = require("fs"); +var posthtml = require("posthtml"); +var posthtmlCssModules = require("posthtml-css-modules"); +var template = fs.readFileSync("./about.html", "utf8"); + +posthtml([posthtmlCssModules("./cssModules.json")]) + .process(template) + .then(function (result) { + console.log(result.html); + }); +``` + +(for using other build systems please check [the documentation of PostHTML](https://github.com/posthtml/posthtml/blob/master/README.md)) + +And you'll get the following HTML: + +```html +

      postcss-modules

      +
      + A PostCSS plugin to use CSS Modules everywhere +
      +``` + +## May I see the plugin in action? + +Sure! Take a look at the [example](https://github.com/outpunk/postcss-modules-example). + +See [PostCSS] docs for examples for your environment and don't forget to run + +``` +npm install --save-dev postcss postcss-modules +``` + +[filesystemloader]: https://github.com/css-modules/css-modules-loader-core/blob/master/src/file-system-loader.js + + +## Sponsors +- Dmitry Olyenyov diff --git a/node_modules/postcss-modules/build/behaviours.js b/node_modules/postcss-modules/build/behaviours.js new file mode 100644 index 0000000..bcaae2d --- /dev/null +++ b/node_modules/postcss-modules/build/behaviours.js @@ -0,0 +1,50 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.behaviours = undefined; +exports.getDefaultPlugins = getDefaultPlugins; +exports.isValidBehaviour = isValidBehaviour; + +var _postcssModulesLocalByDefault = require("postcss-modules-local-by-default"); + +var _postcssModulesLocalByDefault2 = _interopRequireDefault(_postcssModulesLocalByDefault); + +var _postcssModulesExtractImports = require("postcss-modules-extract-imports"); + +var _postcssModulesExtractImports2 = _interopRequireDefault(_postcssModulesExtractImports); + +var _postcssModulesScope = require("postcss-modules-scope"); + +var _postcssModulesScope2 = _interopRequireDefault(_postcssModulesScope); + +var _postcssModulesValues = require("postcss-modules-values"); + +var _postcssModulesValues2 = _interopRequireDefault(_postcssModulesValues); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const behaviours = exports.behaviours = { + LOCAL: "local", + GLOBAL: "global" +}; + +function getDefaultPlugins({ + behaviour, + generateScopedName, + exportGlobals +}) { + const scope = (0, _postcssModulesScope2.default)({ generateScopedName, exportGlobals }); + + const plugins = { + [behaviours.LOCAL]: [_postcssModulesValues2.default, (0, _postcssModulesLocalByDefault2.default)({ mode: 'local' }), _postcssModulesExtractImports2.default, scope], + [behaviours.GLOBAL]: [_postcssModulesValues2.default, (0, _postcssModulesLocalByDefault2.default)({ mode: 'global' }), _postcssModulesExtractImports2.default, scope] + }; + + return plugins[behaviour]; +} + +function isValidBehaviour(behaviour) { + return Object.keys(behaviours).map(key => behaviours[key]).indexOf(behaviour) > -1; +} \ No newline at end of file diff --git a/node_modules/postcss-modules/build/css-loader-core/loader.js b/node_modules/postcss-modules/build/css-loader-core/loader.js new file mode 100644 index 0000000..bfcfa77 --- /dev/null +++ b/node_modules/postcss-modules/build/css-loader-core/loader.js @@ -0,0 +1,121 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _postcss = require("postcss"); + +var _postcss2 = _interopRequireDefault(_postcss); + +var _fs = require("fs"); + +var _fs2 = _interopRequireDefault(_fs); + +var _path = require("path"); + +var _path2 = _interopRequireDefault(_path); + +var _parser = require("./parser"); + +var _parser2 = _interopRequireDefault(_parser); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// Copied from https://github.com/css-modules/css-modules-loader-core + +class Core { + constructor(plugins) { + this.plugins = plugins || Core.defaultPlugins; + } + + load(sourceString, sourcePath, trace, pathFetcher) { + let parser = new _parser2.default(pathFetcher, trace); + + return (0, _postcss2.default)(this.plugins.concat([parser.plugin()])).process(sourceString, { from: "/" + sourcePath }).then(result => { + return { + injectableSource: result.css, + exportTokens: parser.exportTokens + }; + }); + } +} + +// Sorts dependencies in the following way: +// AAA comes before AA and A +// AB comes after AA and before A +// All Bs come after all As +// This ensures that the files are always returned in the following order: +// - In the order they were required, except +// - After all their dependencies +const traceKeySorter = (a, b) => { + if (a.length < b.length) { + return a < b.substring(0, a.length) ? -1 : 1; + } else if (a.length > b.length) { + return a.substring(0, b.length) <= b ? -1 : 1; + } else { + return a < b ? -1 : 1; + } +}; + +class FileSystemLoader { + constructor(root, plugins) { + this.root = root; + this.sources = {}; + this.traces = {}; + this.importNr = 0; + this.core = new Core(plugins); + this.tokensByFile = {}; + } + + fetch(_newPath, relativeTo, _trace) { + let newPath = _newPath.replace(/^["']|["']$/g, ""), + trace = _trace || String.fromCharCode(this.importNr++); + return new Promise((resolve, reject) => { + let relativeDir = _path2.default.dirname(relativeTo), + rootRelativePath = _path2.default.resolve(relativeDir, newPath), + fileRelativePath = _path2.default.resolve(_path2.default.join(this.root, relativeDir), newPath); + + // if the path is not relative or absolute, try to resolve it in node_modules + if (newPath[0] !== "." && newPath[0] !== "/") { + try { + fileRelativePath = require.resolve(newPath); + } catch (e) { + // noop + } + } + + const tokens = this.tokensByFile[fileRelativePath]; + if (tokens) { + return resolve(tokens); + } + + _fs2.default.readFile(fileRelativePath, "utf-8", (err, source) => { + if (err) reject(err); + this.core.load(source, rootRelativePath, trace, this.fetch.bind(this)).then(({ injectableSource, exportTokens }) => { + this.sources[fileRelativePath] = injectableSource; + this.traces[trace] = fileRelativePath; + this.tokensByFile[fileRelativePath] = exportTokens; + resolve(exportTokens); + }, reject); + }); + }); + } + + get finalSource() { + const traces = this.traces; + const sources = this.sources; + let written = new Set(); + + return Object.keys(traces).sort(traceKeySorter).map(key => { + const filename = traces[key]; + if (written.has(filename)) { + return null; + } + written.add(filename); + + return sources[filename]; + }).join(""); + } +} +exports.default = FileSystemLoader; \ No newline at end of file diff --git a/node_modules/postcss-modules/build/css-loader-core/parser.js b/node_modules/postcss-modules/build/css-loader-core/parser.js new file mode 100644 index 0000000..f575e1b --- /dev/null +++ b/node_modules/postcss-modules/build/css-loader-core/parser.js @@ -0,0 +1,80 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _icssReplaceSymbols = require("icss-replace-symbols"); + +var _icssReplaceSymbols2 = _interopRequireDefault(_icssReplaceSymbols); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// Copied from https://github.com/css-modules/css-modules-loader-core + +const importRegexp = /^:import\((.+)\)$/; +class Parser { + constructor(pathFetcher, trace) { + this.pathFetcher = pathFetcher; + this.plugin = this.plugin.bind(this); + this.exportTokens = {}; + this.translations = {}; + this.trace = trace; + } + + plugin() { + const parser = this; + return { + postcssPlugin: "css-modules-parser", + OnceExit(css) { + return Promise.all(parser.fetchAllImports(css)).then(() => parser.linkImportedSymbols(css)).then(() => parser.extractExports(css)); + } + }; + } + + fetchAllImports(css) { + let imports = []; + css.each(node => { + if (node.type == "rule" && node.selector.match(importRegexp)) { + imports.push(this.fetchImport(node, css.source.input.from, imports.length)); + } + }); + return imports; + } + + linkImportedSymbols(css) { + (0, _icssReplaceSymbols2.default)(css, this.translations); + } + + extractExports(css) { + css.each(node => { + if (node.type == "rule" && node.selector == ":export") this.handleExport(node); + }); + } + + handleExport(exportNode) { + exportNode.each(decl => { + if (decl.type == "decl") { + Object.keys(this.translations).forEach(translation => { + decl.value = decl.value.replace(translation, this.translations[translation]); + }); + this.exportTokens[decl.prop] = decl.value; + } + }); + exportNode.remove(); + } + + fetchImport(importNode, relativeTo, depNr) { + let file = importNode.selector.match(importRegexp)[1], + depTrace = this.trace + String.fromCharCode(depNr); + return this.pathFetcher(file, relativeTo, depTrace).then(exports => { + importNode.each(decl => { + if (decl.type == "decl") { + this.translations[decl.prop] = exports[decl.value]; + } + }); + importNode.remove(); + }, err => console.log(err)); + } +} +exports.default = Parser; \ No newline at end of file diff --git a/node_modules/postcss-modules/build/generateScopedName.js b/node_modules/postcss-modules/build/generateScopedName.js new file mode 100644 index 0000000..42ea2d1 --- /dev/null +++ b/node_modules/postcss-modules/build/generateScopedName.js @@ -0,0 +1,20 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = generateScopedName; + +var _stringHash = require("string-hash"); + +var _stringHash2 = _interopRequireDefault(_stringHash); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function generateScopedName(name, filename, css) { + const i = css.indexOf(`.${name}`); + const lineNumber = css.substr(0, i).split(/[\r\n]/).length; + const hash = (0, _stringHash2.default)(css).toString(36).substr(0, 5); + + return `_${name}_${hash}_${lineNumber}`; +} \ No newline at end of file diff --git a/node_modules/postcss-modules/build/index.js b/node_modules/postcss-modules/build/index.js new file mode 100644 index 0000000..b3b47db --- /dev/null +++ b/node_modules/postcss-modules/build/index.js @@ -0,0 +1,182 @@ +"use strict"; + +var _postcss = require("postcss"); + +var _postcss2 = _interopRequireDefault(_postcss); + +var _lodash = require("lodash.camelcase"); + +var _lodash2 = _interopRequireDefault(_lodash); + +var _genericNames = require("generic-names"); + +var _genericNames2 = _interopRequireDefault(_genericNames); + +var _unquote = require("./unquote"); + +var _unquote2 = _interopRequireDefault(_unquote); + +var _parser = require("./css-loader-core/parser"); + +var _parser2 = _interopRequireDefault(_parser); + +var _loader = require("./css-loader-core/loader"); + +var _loader2 = _interopRequireDefault(_loader); + +var _generateScopedName = require("./generateScopedName"); + +var _generateScopedName2 = _interopRequireDefault(_generateScopedName); + +var _saveJSON = require("./saveJSON"); + +var _saveJSON2 = _interopRequireDefault(_saveJSON); + +var _behaviours = require("./behaviours"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } + +const PLUGIN_NAME = "postcss-modules"; + +function getDefaultScopeBehaviour(opts) { + if (opts.scopeBehaviour && (0, _behaviours.isValidBehaviour)(opts.scopeBehaviour)) { + return opts.scopeBehaviour; + } + + return _behaviours.behaviours.LOCAL; +} + +function getScopedNameGenerator(opts) { + const scopedNameGenerator = opts.generateScopedName || _generateScopedName2.default; + + if (typeof scopedNameGenerator === "function") return scopedNameGenerator; + return (0, _genericNames2.default)(scopedNameGenerator, { + context: process.cwd(), + hashPrefix: opts.hashPrefix + }); +} + +function getLoader(opts, plugins) { + const root = typeof opts.root === "undefined" ? "/" : opts.root; + return typeof opts.Loader === "function" ? new opts.Loader(root, plugins) : new _loader2.default(root, plugins); +} + +function isGlobalModule(globalModules, inputFile) { + return globalModules.some(regex => inputFile.match(regex)); +} + +function getDefaultPluginsList(opts, inputFile) { + const globalModulesList = opts.globalModulePaths || null; + const exportGlobals = opts.exportGlobals || false; + const defaultBehaviour = getDefaultScopeBehaviour(opts); + const generateScopedName = getScopedNameGenerator(opts); + + if (globalModulesList && isGlobalModule(globalModulesList, inputFile)) { + return (0, _behaviours.getDefaultPlugins)({ + behaviour: _behaviours.behaviours.GLOBAL, + generateScopedName, + exportGlobals + }); + } + + return (0, _behaviours.getDefaultPlugins)({ + behaviour: defaultBehaviour, + generateScopedName, + exportGlobals + }); +} + +function isOurPlugin(plugin) { + return plugin.postcssPlugin === PLUGIN_NAME; +} + +function dashesCamelCase(string) { + return string.replace(/-+(\w)/g, (_, firstLetter) => firstLetter.toUpperCase()); +} + +module.exports = (opts = {}) => { + return { + postcssPlugin: PLUGIN_NAME, + OnceExit(css, { result }) { + return _asyncToGenerator(function* () { + const getJSON = opts.getJSON || _saveJSON2.default; + const inputFile = css.source.input.file; + const pluginList = getDefaultPluginsList(opts, inputFile); + const resultPluginIndex = result.processor.plugins.findIndex(function (plugin) { + return isOurPlugin(plugin); + }); + if (resultPluginIndex === -1) { + throw new Error('Plugin missing from options.'); + } + const earlierPlugins = result.processor.plugins.slice(0, resultPluginIndex); + const loaderPlugins = [...earlierPlugins, ...pluginList]; + const loader = getLoader(opts, loaderPlugins); + const fetcher = function fetcher(file, relativeTo, depTrace) { + const unquoteFile = (0, _unquote2.default)(file); + const resolvedResult = typeof opts.resolve === 'function' && opts.resolve(unquoteFile); + const resolvedFile = resolvedResult instanceof Promise ? resolvedResult : Promise.resolve(resolvedResult); + + return resolvedFile.then(function (f) { + return loader.fetch.call(loader, `"${f || unquoteFile}"`, relativeTo, depTrace); + }); + }; + const parser = new _parser2.default(fetcher); + + yield (0, _postcss2.default)([...pluginList, parser.plugin()]).process(css, { + from: inputFile + }); + + const out = loader.finalSource; + if (out) css.prepend(out); + + if (opts.localsConvention) { + const isFunc = typeof opts.localsConvention === "function"; + + parser.exportTokens = Object.entries(parser.exportTokens).reduce(function (tokens, [className, value]) { + if (isFunc) { + tokens[opts.localsConvention(className, value, inputFile)] = value; + + return tokens; + } + + switch (opts.localsConvention) { + case "camelCase": + tokens[className] = value; + tokens[(0, _lodash2.default)(className)] = value; + + break; + case "camelCaseOnly": + tokens[(0, _lodash2.default)(className)] = value; + + break; + case "dashes": + tokens[className] = value; + tokens[dashesCamelCase(className)] = value; + + break; + case "dashesOnly": + tokens[dashesCamelCase(className)] = value; + + break; + } + + return tokens; + }, {}); + } + + result.messages.push({ + type: "export", + plugin: "postcss-modules", + exportTokens: parser.exportTokens + }); + + // getJSON may return a promise + return getJSON(css.source.input.file, parser.exportTokens, result.opts.to); + })(); + } + }; +}; + +module.exports.postcss = true; \ No newline at end of file diff --git a/node_modules/postcss-modules/build/saveJSON.js b/node_modules/postcss-modules/build/saveJSON.js new file mode 100644 index 0000000..9de09cf --- /dev/null +++ b/node_modules/postcss-modules/build/saveJSON.js @@ -0,0 +1,14 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = saveJSON; + +var _fs = require("fs"); + +function saveJSON(cssFile, json) { + return new Promise((resolve, reject) => { + (0, _fs.writeFile)(`${cssFile}.json`, JSON.stringify(json), e => e ? reject(e) : resolve(json)); + }); +} \ No newline at end of file diff --git a/node_modules/postcss-modules/build/unquote/index.js b/node_modules/postcss-modules/build/unquote/index.js new file mode 100644 index 0000000..d63131b --- /dev/null +++ b/node_modules/postcss-modules/build/unquote/index.js @@ -0,0 +1,22 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = unquote; +// copied from https://github.com/lakenen/node-unquote + +var reg = /['"]/; + +function unquote(str) { + if (!str) { + return ""; + } + if (reg.test(str.charAt(0))) { + str = str.substr(1); + } + if (reg.test(str.charAt(str.length - 1))) { + str = str.substr(0, str.length - 1); + } + return str; +} \ No newline at end of file diff --git a/node_modules/postcss-modules/index.d.ts b/node_modules/postcss-modules/index.d.ts new file mode 100644 index 0000000..989ea41 --- /dev/null +++ b/node_modules/postcss-modules/index.d.ts @@ -0,0 +1,62 @@ +import type { Plugin } from "postcss"; + +declare type GenerateScopedNameFunction = ( + name: string, + filename: string, + css: string +) => string; + +declare type LocalsConventionFunction = ( + originalClassName: string, + generatedClassName: string, + inputFile: string +) => string; + +declare class Loader { + constructor(root: string, plugins: Plugin[]); + + fetch( + file: string, + relativeTo: string, + depTrace: string + ): Promise<{ [key: string]: string }>; + + finalSource?: string | undefined; +} + +declare interface Options { + getJSON?( + cssFilename: string, + json: { [name: string]: string }, + outputFilename?: string + ): void; + + localsConvention?: + | "camelCase" + | "camelCaseOnly" + | "dashes" + | "dashesOnly" + | LocalsConventionFunction; + + scopeBehaviour?: "global" | "local"; + globalModulePaths?: RegExp[]; + + generateScopedName?: string | GenerateScopedNameFunction; + + hashPrefix?: string; + exportGlobals?: boolean; + root?: string; + + Loader?: typeof Loader; + + resolve?: (file: string) => string | Promise; +} + +declare interface PostcssModulesPlugin { + (options: Options): Plugin; + postcss: true; +} + +declare const PostcssModulesPlugin: PostcssModulesPlugin; + +export = PostcssModulesPlugin; diff --git a/node_modules/postcss-modules/package.json b/node_modules/postcss-modules/package.json new file mode 100644 index 0000000..1c6524e --- /dev/null +++ b/node_modules/postcss-modules/package.json @@ -0,0 +1,65 @@ +{ + "name": "postcss-modules", + "version": "4.3.1", + "description": "PostCSS plugin to use CSS Modules everywhere", + "main": "build/index.js", + "types": "index.d.ts", + "keywords": [ + "postcss", + "css", + "postcss-plugin", + "modules", + "css modules", + "components" + ], + "author": "Alexander Madyankin ", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/css-modules/postcss-modules.git" + }, + "dependencies": { + "generic-names": "^4.0.0", + "icss-replace-symbols": "^1.1.0", + "lodash.camelcase": "^4.3.0", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "string-hash": "^1.1.1" + }, + "peerDependencies": { + "postcss": "^8.0.0" + }, + "devDependencies": { + "autoprefixer": "^10.0.2", + "babel-cli": "^6.26.0", + "babel-core": "^6.26.3", + "babel-eslint": "^10.1.0", + "babel-preset-env": "^1.7.0", + "eslint": "^7.3.1", + "eslint-plugin-import": "^2.21.2", + "eslint-plugin-jest": "^23.17.0", + "husky": "^4.2.5", + "jest": "^26.0.1", + "lint-staged": "^10.2.11", + "postcss": "^8.1.9", + "prettier": "^2.0.5" + }, + "scripts": { + "test": "make test", + "precommit": "lint-staged" + }, + "lint-staged": { + "*.{json,md}": [ + "prettier --write", + "git add" + ], + "*.js": [ + "prettier --write", + "eslint --fix", + "git add" + ] + }, + "require": "babel-core/register" +} diff --git a/node_modules/postcss-selector-parser/API.md b/node_modules/postcss-selector-parser/API.md new file mode 100644 index 0000000..c8e55ee --- /dev/null +++ b/node_modules/postcss-selector-parser/API.md @@ -0,0 +1,872 @@ +# API Documentation + +*Please use only this documented API when working with the parser. Methods +not documented here are subject to change at any point.* + +## `parser` function + +This is the module's main entry point. + +```js +const parser = require('postcss-selector-parser'); +``` + +### `parser([transform], [options])` + +Creates a new `processor` instance + +```js +const processor = parser(); +``` + +Or, with optional transform function + +```js +const transform = selectors => { + selectors.walkUniversals(selector => { + selector.remove(); + }); +}; + +const processor = parser(transform) + +// Example +const result = processor.processSync('*.class'); +// => .class +``` + +[See processor documentation](#processor) + +Arguments: + +* `transform (function)`: Provide a function to work with the parsed AST. +* `options (object)`: Provide default options for all calls on the returned `Processor`. + +### `parser.attribute([props])` + +Creates a new attribute selector. + +```js +parser.attribute({attribute: 'href'}); +// => [href] +``` + +Arguments: + +* `props (object)`: The new node's properties. + +### `parser.className([props])` + +Creates a new class selector. + +```js +parser.className({value: 'button'}); +// => .button +``` + +Arguments: + +* `props (object)`: The new node's properties. + +### `parser.combinator([props])` + +Creates a new selector combinator. + +```js +parser.combinator({value: '+'}); +// => + +``` + +Arguments: + +* `props (object)`: The new node's properties. + +Notes: +* **Descendant Combinators** The value of descendant combinators created by the + parser always just a single space (`" "`). For descendant selectors with no + comments, additional space is now stored in `node.spaces.before`. Depending + on the location of comments, additional spaces may be stored in + `node.raws.spaces.before`, `node.raws.spaces.after`, or `node.raws.value`. +* **Named Combinators** Although, nonstandard and unlikely to ever become a standard, + named combinators like `/deep/` and `/for/` are parsed as combinators. The + `node.value` is name after being unescaped and normalized as lowercase. The + original value for the combinator name is stored in `node.raws.value`. + + +### `parser.comment([props])` + +Creates a new comment. + +```js +parser.comment({value: '/* Affirmative, Dave. I read you. */'}); +// => /* Affirmative, Dave. I read you. */ +``` + +Arguments: + +* `props (object)`: The new node's properties. + +### `parser.id([props])` + +Creates a new id selector. + +```js +parser.id({value: 'search'}); +// => #search +``` + +Arguments: + +* `props (object)`: The new node's properties. + +### `parser.nesting([props])` + +Creates a new nesting selector. + +```js +parser.nesting(); +// => & +``` + +Arguments: + +* `props (object)`: The new node's properties. + +### `parser.pseudo([props])` + +Creates a new pseudo selector. + +```js +parser.pseudo({value: '::before'}); +// => ::before +``` + +Arguments: + +* `props (object)`: The new node's properties. + +### `parser.root([props])` + +Creates a new root node. + +```js +parser.root(); +// => (empty) +``` + +Arguments: + +* `props (object)`: The new node's properties. + +### `parser.selector([props])` + +Creates a new selector node. + +```js +parser.selector(); +// => (empty) +``` + +Arguments: + +* `props (object)`: The new node's properties. + +### `parser.string([props])` + +Creates a new string node. + +```js +parser.string(); +// => (empty) +``` + +Arguments: + +* `props (object)`: The new node's properties. + +### `parser.tag([props])` + +Creates a new tag selector. + +```js +parser.tag({value: 'button'}); +// => button +``` + +Arguments: + +* `props (object)`: The new node's properties. + +### `parser.universal([props])` + +Creates a new universal selector. + +```js +parser.universal(); +// => * +``` + +Arguments: + +* `props (object)`: The new node's properties. + +## Node types + +### `node.type` + +A string representation of the selector type. It can be one of the following; +`attribute`, `class`, `combinator`, `comment`, `id`, `nesting`, `pseudo`, +`root`, `selector`, `string`, `tag`, or `universal`. Note that for convenience, +these constants are exposed on the main `parser` as uppercased keys. So for +example you can get `id` by querying `parser.ID`. + +```js +parser.attribute({attribute: 'href'}).type; +// => 'attribute' +``` + +### `node.parent` + +Returns the parent node. + +```js +root.nodes[0].parent === root; +``` + +### `node.toString()`, `String(node)`, or `'' + node` + +Returns a string representation of the node. + +```js +const id = parser.id({value: 'search'}); +console.log(String(id)); +// => #search +``` + +### `node.next()` & `node.prev()` + +Returns the next/previous child of the parent node. + +```js +const next = id.next(); +if (next && next.type !== 'combinator') { + throw new Error('Qualified IDs are not allowed!'); +} +``` + +### `node.replaceWith(node)` + +Replace a node with another. + +```js +const attr = selectors.first.first; +const className = parser.className({value: 'test'}); +attr.replaceWith(className); +``` + +Arguments: + +* `node`: The node to substitute the original with. + +### `node.remove()` + +Removes the node from its parent node. + +```js +if (node.type === 'id') { + node.remove(); +} +``` + +### `node.clone([opts])` + +Returns a copy of a node, detached from any parent containers that the +original might have had. + +```js +const cloned = node.clone(); +``` + +### `node.isAtPosition(line, column)` + +Return a `boolean` indicating whether this node includes the character at the +position of the given line and column. Returns `undefined` if the nodes lack +sufficient source metadata to determine the position. + +Arguments: + +* `line`: 1-index based line number relative to the start of the selector. +* `column`: 1-index based column number relative to the start of the selector. + +### `node.spaces` + +Extra whitespaces around the node will be moved into `node.spaces.before` and +`node.spaces.after`. So for example, these spaces will be moved as they have +no semantic meaning: + +```css + h1 , h2 {} +``` + +For descendent selectors, the value is always a single space. + +```css +h1 h2 {} +``` + +Additional whitespace is found in either the `node.spaces.before` and `node.spaces.after` depending on the presence of comments or other whitespace characters. If the actual whitespace does not start or end with a single space, the node's raw value is set to the actual space(s) found in the source. + +### `node.source` + +An object describing the node's start/end, line/column source position. + +Within the following CSS, the `.bar` class node ... + +```css +.foo, + .bar {} +``` + +... will contain the following `source` object. + +```js +source: { + start: { + line: 2, + column: 3 + }, + end: { + line: 2, + column: 6 + } +} +``` + +### `node.sourceIndex` + +The zero-based index of the node within the original source string. + +Within the following CSS, the `.baz` class node will have a `sourceIndex` of `12`. + +```css +.foo, .bar, .baz {} +``` + +## Container types + +The `root`, `selector`, and `pseudo` nodes have some helper methods for working +with their children. + +### `container.nodes` + +An array of the container's children. + +```js +// Input: h1 h2 +selectors.at(0).nodes.length // => 3 +selectors.at(0).nodes[0].value // => 'h1' +selectors.at(0).nodes[1].value // => ' ' +``` + +### `container.first` & `container.last` + +The first/last child of the container. + +```js +selector.first === selector.nodes[0]; +selector.last === selector.nodes[selector.nodes.length - 1]; +``` + +### `container.at(index)` + +Returns the node at position `index`. + +```js +selector.at(0) === selector.first; +selector.at(0) === selector.nodes[0]; +``` + +Arguments: + +* `index`: The index of the node to return. + +### `container.atPosition(line, column)` + +Returns the node at the source position `line` and `column`. + +```js +// Input: :not(.foo),\n#foo > :matches(ol, ul) +selector.atPosition(1, 1); // => :not(.foo) +selector.atPosition(2, 1); // => \n#foo +``` + +Arguments: + +* `line`: The line number of the node to return. +* `column`: The column number of the node to return. + +### `container.index(node)` + +Return the index of the node within its container. + +```js +selector.index(selector.nodes[2]) // => 2 +``` + +Arguments: + +* `node`: A node within the current container. + +### `container.length` + +Proxy to the length of the container's nodes. + +```js +container.length === container.nodes.length +``` + +### `container` Array iterators + +The container class provides proxies to certain Array methods; these are: + +* `container.map === container.nodes.map` +* `container.reduce === container.nodes.reduce` +* `container.every === container.nodes.every` +* `container.some === container.nodes.some` +* `container.filter === container.nodes.filter` +* `container.sort === container.nodes.sort` + +Note that these methods only work on a container's immediate children; recursive +iteration is provided by `container.walk`. + +### `container.each(callback)` + +Iterate the container's immediate children, calling `callback` for each child. +You may return `false` within the callback to break the iteration. + +```js +let className; +selectors.each((selector, index) => { + if (selector.type === 'class') { + className = selector.value; + return false; + } +}); +``` + +Note that unlike `Array#forEach()`, this iterator is safe to use whilst adding +or removing nodes from the container. + +Arguments: + +* `callback (function)`: A function to call for each node, which receives `node` + and `index` arguments. + +### `container.walk(callback)` + +Like `container#each`, but will also iterate child nodes as long as they are +`container` types. + +```js +selectors.walk((selector, index) => { + // all nodes +}); +``` + +Arguments: + +* `callback (function)`: A function to call for each node, which receives `node` + and `index` arguments. + +This iterator is safe to use whilst mutating `container.nodes`, +like `container#each`. + +### `container.walk` proxies + +The container class provides proxy methods for iterating over types of nodes, +so that it is easier to write modules that target specific selectors. Those +methods are: + +* `container.walkAttributes` +* `container.walkClasses` +* `container.walkCombinators` +* `container.walkComments` +* `container.walkIds` +* `container.walkNesting` +* `container.walkPseudos` +* `container.walkTags` +* `container.walkUniversals` + +### `container.split(callback)` + +This method allows you to split a group of nodes by returning `true` from +a callback. It returns an array of arrays, where each inner array corresponds +to the groups that you created via the callback. + +```js +// (input) => h1 h2>>h3 +const list = selectors.first.split(selector => { + return selector.type === 'combinator'; +}); + +// (node values) => [['h1', ' '], ['h2', '>>'], ['h3']] +``` + +Arguments: + +* `callback (function)`: A function to call for each node, which receives `node` + as an argument. + +### `container.prepend(node)` & `container.append(node)` + +Add a node to the start/end of the container. Note that doing so will set +the parent property of the node to this container. + +```js +const id = parser.id({value: 'search'}); +selector.append(id); +``` + +Arguments: + +* `node`: The node to add. + +### `container.insertBefore(old, new)` & `container.insertAfter(old, new)` + +Add a node before or after an existing node in a container: + +```js +selectors.walk(selector => { + if (selector.type !== 'class') { + const className = parser.className({value: 'theme-name'}); + selector.parent.insertAfter(selector, className); + } +}); +``` + +Arguments: + +* `old`: The existing node in the container. +* `new`: The new node to add before/after the existing node. + +### `container.removeChild(node)` + +Remove the node from the container. Note that you can also use +`node.remove()` if you would like to remove just a single node. + +```js +selector.length // => 2 +selector.remove(id) +selector.length // => 1; +id.parent // undefined +``` + +Arguments: + +* `node`: The node to remove. + +### `container.removeAll()` or `container.empty()` + +Remove all children from the container. + +```js +selector.removeAll(); +selector.length // => 0 +``` + +## Root nodes + +A root node represents a comma separated list of selectors. Indeed, all +a root's `toString()` method does is join its selector children with a ','. +Other than this, it has no special functionality and acts like a container. + +### `root.trailingComma` + +This will be set to `true` if the input has a trailing comma, in order to +support parsing of legacy CSS hacks. + +## Selector nodes + +A selector node represents a single complex selector. For example, this +selector string `h1 h2 h3, [href] > p`, is represented as two selector nodes. +It has no special functionality of its own. + +## Pseudo nodes + +A pseudo selector extends a container node; if it has any parameters of its +own (such as `h1:not(h2, h3)`), they will be its children. Note that the pseudo +`value` will always contain the colons preceding the pseudo identifier. This +is so that both `:before` and `::before` are properly represented in the AST. + +## Attribute nodes + +### `attribute.quoted` + +Returns `true` if the attribute's value is wrapped in quotation marks, false if it is not. +Remains `undefined` if there is no attribute value. + +```css +[href=foo] /* false */ +[href='foo'] /* true */ +[href="foo"] /* true */ +[href] /* undefined */ +``` + +### `attribute.qualifiedAttribute` + +Returns the attribute name qualified with the namespace if one is given. + +### `attribute.offsetOf(part)` + + Returns the offset of the attribute part specified relative to the + start of the node of the output string. This is useful in raising + error messages about a specific part of the attribute, especially + in combination with `attribute.sourceIndex`. + + Returns `-1` if the name is invalid or the value doesn't exist in this + attribute. + + The legal values for `part` are: + + * `"ns"` - alias for "namespace" + * `"namespace"` - the namespace if it exists. + * `"attribute"` - the attribute name + * `"attributeNS"` - the start of the attribute or its namespace + * `"operator"` - the match operator of the attribute + * `"value"` - The value (string or identifier) + * `"insensitive"` - the case insensitivity flag + +### `attribute.raws.unquoted` + +Returns the unquoted content of the attribute's value. +Remains `undefined` if there is no attribute value. + +```css +[href=foo] /* foo */ +[href='foo'] /* foo */ +[href="foo"] /* foo */ +[href] /* undefined */ +``` + +### `attribute.spaces` + +Like `node.spaces` with the `before` and `after` values containing the spaces +around the element, the parts of the attribute can also have spaces before +and after them. The for each of `attribute`, `operator`, `value` and +`insensitive` there is corresponding property of the same nam in +`node.spaces` that has an optional `before` or `after` string containing only +whitespace. + +Note that corresponding values in `attributes.raws.spaces` contain values +including any comments. If set, these values will override the +`attribute.spaces` value. Take care to remove them if changing +`attribute.spaces`. + +### `attribute.raws` + +The raws object stores comments and other information necessary to re-render +the node exactly as it was in the source. + +If a comment is embedded within the identifiers for the `namespace`, `attribute` +or `value` then a property is placed in the raws for that value containing the full source of the propery including comments. + +If a comment is embedded within the space between parts of the attribute +then the raw for that space is set accordingly. + +Setting an attribute's property `raws` value to be deleted. + +For now, changing the spaces required also updating or removing any of the +raws values that override them. + +Example: `[ /*before*/ href /* after-attr */ = /* after-operator */ te/*inside-value*/st/* wow */ /*omg*/i/*bbq*/ /*whodoesthis*/]` would parse as: + +```js +{ + attribute: "href", + operator: "=", + value: "test", + spaces: { + before: '', + after: '', + attribute: { before: ' ', after: ' ' }, + operator: { after: ' ' }, + value: { after: ' ' }, + insensitive: { after: ' ' } + }, + raws: { + spaces: { + attribute: { before: ' /*before*/ ', after: ' /* after-attr */ ' }, + operator: { after: ' /* after-operator */ ' }, + value: { after: '/* wow */ /*omg*/' }, + insensitive: { after: '/*bbq*/ /*whodoesthis*/' } + }, + unquoted: 'test', + value: 'te/*inside-value*/st' + } +} +``` + +## `Processor` + +### `ProcessorOptions` + +* `lossless` - When `true`, whitespace is preserved. Defaults to `true`. +* `updateSelector` - When `true`, if any processor methods are passed a postcss + `Rule` node instead of a string, then that Rule's selector is updated + with the results of the processing. Defaults to `true`. + +### `process|processSync(selectors, [options])` + +Processes the `selectors`, returning a string from the result of processing. + +Note: when the `updateSelector` option is set, the rule's selector +will be updated with the resulting string. + +**Example:** + +```js +const parser = require("postcss-selector-parser"); +const processor = parser(); + +let result = processor.processSync(' .class'); +console.log(result); +// => .class + +// Asynchronous operation +let promise = processor.process(' .class').then(result => { + console.log(result) + // => .class +}); + +// To have the parser normalize whitespace values, utilize the options +result = processor.processSync(' .class ', {lossless: false}); +console.log(result); +// => .class + +// For better syntax errors, pass a PostCSS Rule node. +const postcss = require('postcss'); +rule = postcss.rule({selector: ' #foo > a, .class '}); +processor.process(rule, {lossless: false, updateSelector: true}).then(result => { + console.log(result); + // => #foo>a,.class + console.log("rule:", rule.selector); + // => rule: #foo>a,.class +}) +``` + +Arguments: + +* `selectors (string|postcss.Rule)`: Either a selector string or a PostCSS Rule + node. +* `[options] (object)`: Process options + + +### `ast|astSync(selectors, [options])` + +Like `process()` and `processSync()` but after +processing the `selectors` these methods return the `Root` node of the result +instead of a string. + +Note: when the `updateSelector` option is set, the rule's selector +will be updated with the resulting string. + +### `transform|transformSync(selectors, [options])` + +Like `process()` and `processSync()` but after +processing the `selectors` these methods return the value returned by the +processor callback. + +Note: when the `updateSelector` option is set, the rule's selector +will be updated with the resulting string. + +### Error Handling Within Selector Processors + +The root node passed to the selector processor callback +has a method `error(message, options)` that returns an +error object. This method should always be used to raise +errors relating to the syntax of selectors. The options +to this method are passed to postcss's error constructor +([documentation](http://postcss.org/api/#container-error)). + +#### Async Error Example + +```js +let processor = (root) => { + return new Promise((resolve, reject) => { + root.walkClasses((classNode) => { + if (/^(.*)[-_]/.test(classNode.value)) { + let msg = "classes may not have underscores or dashes in them"; + reject(root.error(msg, { + index: classNode.sourceIndex + RegExp.$1.length + 1, + word: classNode.value + })); + } + }); + resolve(); + }); +}; + +const postcss = require("postcss"); +const parser = require("postcss-selector-parser"); +const selectorProcessor = parser(processor); +const plugin = postcss.plugin('classValidator', (options) => { + return (root) => { + let promises = []; + root.walkRules(rule => { + promises.push(selectorProcessor.process(rule)); + }); + return Promise.all(promises); + }; +}); +postcss(plugin()).process(` +.foo-bar { + color: red; +} +`.trim(), {from: 'test.css'}).catch((e) => console.error(e.toString())); + +// CssSyntaxError: classValidator: ./test.css:1:5: classes may not have underscores or dashes in them +// +// > 1 | .foo-bar { +// | ^ +// 2 | color: red; +// 3 | } +``` + +#### Synchronous Error Example + +```js +let processor = (root) => { + root.walkClasses((classNode) => { + if (/.*[-_]/.test(classNode.value)) { + let msg = "classes may not have underscores or dashes in them"; + throw root.error(msg, { + index: classNode.sourceIndex, + word: classNode.value + }); + } + }); +}; + +const postcss = require("postcss"); +const parser = require("postcss-selector-parser"); +const selectorProcessor = parser(processor); +const plugin = postcss.plugin('classValidator', (options) => { + return (root) => { + root.walkRules(rule => { + selectorProcessor.processSync(rule); + }); + }; +}); +postcss(plugin()).process(` +.foo-bar { + color: red; +} +`.trim(), {from: 'test.css'}).catch((e) => console.error(e.toString())); + +// CssSyntaxError: classValidator: ./test.css:1:5: classes may not have underscores or dashes in them +// +// > 1 | .foo-bar { +// | ^ +// 2 | color: red; +// 3 | } +``` diff --git a/node_modules/postcss-selector-parser/CHANGELOG.md b/node_modules/postcss-selector-parser/CHANGELOG.md new file mode 100644 index 0000000..14ffadc --- /dev/null +++ b/node_modules/postcss-selector-parser/CHANGELOG.md @@ -0,0 +1,549 @@ +# 6.1.2 + +- Fixed: erroneous trailing combinators in pseudos + +# 6.1.1 + +- Fixed: improve typings of constructor helpers (#292) + +# 6.1.0 + +- Feature: add `sourceIndex` to `Selector` nodes (#290) + +# 6.0.16 + +- Fixed: add missing `index` argument to `each`/`walk` callback types (#289) + +# 6.0.15 + +- Fixed: Node#prev and Node#next type for the first/last node + +# 6.0.14 + +- Fixed: type definitions + +# 6.0.13 + +- Fixed: throw on unexpected pipe symbols + +# 6.0.12 + +- Fixed: `clone` arguments should be optional + +# 6.0.11 + +- Fixed: parse attribute case insensitivity flag + +# 6.0.10 + +- Fixed: `isPseudoElement()` supports `:first-letter` and `:first-line` + +# 6.0.9 + +- Fixed: `Combinator.raws` property type + +# 6.0.8 + +- Fixed: reduced size + +# 6.0.7 + +- Fixed: parse animation percents + +# 6.0.6 + +- Fixed: parse quoted attributes containing a newline correctly + +# 6.0.5 + +- Perf: rework unesc for a 63+% performance boost + +# 6.0.4 + +- Fixed: ts errors + +# 6.0.3 + +- Fixed: replace node built-in "util" module with "util-deprecate" +- Fixed: handle uppercase pseudo elements +- Fixed: do not create invalid combinator before comment + +# 6.0.2 + +- Fixed an issue with parsing and stringifying an empty attribute value + +# 6.0.1 + +- Fixed an issue with unicode surrogate pair parsing + +# 6.0.0 + +- Updated: `cssesc` to 3.0.0 (major) +- Fixed: Issues with escaped `id` and `class` selectors + +# 5.0.0 + +- Allow escaped dot within class name. +- Update PostCSS to 7.0.7 (patch) + +# 5.0.0-rc.4 + +- Fixed an issue where comments immediately after an insensitive (in attribute) + were not parsed correctly. +- Updated `cssesc` to 2.0.0 (major). +- Removed outdated integration tests. +- Added tests for custom selectors, tags with attributes, the universal + selector with pseudos, and tokens after combinators. + +# 5.0.0-rc.1 + +To ease adoption of the v5.0 release, we have relaxed the node version +check performed by npm at installation time to allow for node 4, which +remains officially unsupported, but likely to continue working for the +time being. + +# 5.0.0-rc.0 + +This release has **BREAKING CHANGES** that were required to fix regressions +in 4.0.0 and to make the Combinator Node API consistent for all combinator +types. Please read carefully. + +## Summary of Changes + +* The way a descendent combinator that isn't a single space character (E.g. `.a .b`) is stored in the AST has changed. +* Named Combinators (E.g. `.a /for/ .b`) are now properly parsed as a combinator. +* It is now possible to look up a node based on the source location of a character in that node and to query nodes if they contain some character. +* Several bug fixes that caused the parser to hang and run out of memory when a `/` was encountered have been fixed. +* The minimum supported version of Node is now `v6.0.0`. + +### Changes to the Descendent Combinator + +In prior releases, the value of a descendant combinator with multiple spaces included all the spaces. + +* `.a .b`: Extra spaces are now stored as space before. + - Old & Busted: + - `combinator.value === " "` + - New hotness: + - `combinator.value === " " && combinator.spaces.before === " "` +* `.a /*comment*/.b`: A comment at the end of the combinator causes extra space to become after space. + - Old & Busted: + - `combinator.value === " "` + - `combinator.raws.value === " /*comment/"` + - New hotness: + - `combinator.value === " "` + - `combinator.spaces.after === " "` + - `combinator.raws.spaces.after === " /*comment*/"` +* `.a.b`: whitespace that doesn't start or end with a single space character is stored as a raw value. + - Old & Busted: + - `combinator.value === "\n"` + - `combinator.raws.value === undefined` + - New hotness: + - `combinator.value === " "` + - `combinator.raws.value === "\n"` + +### Support for "Named Combinators" + +Although, nonstandard and unlikely to ever become a standard, combinators like `/deep/` and `/for/` are now properly supported. + +Because they've been taken off the standardization track, there is no spec-official name for combinators of the form `//`. However, I talked to [Tab Atkins](https://twitter.com/tabatkins) and we agreed to call them "named combinators" so now they are called that. + +Before this release such named combinators were parsed without intention and generated three nodes of type `"tag"` where the first and last nodes had a value of `"/"`. + +* `.a /for/ .b` is parsed as a combinator. + - Old & Busted: + - `root.nodes[0].nodes[1].type === "tag"` + - `root.nodes[0].nodes[1].value === "/"` + - New hotness: + - `root.nodes[0].nodes[1].type === "combinator"` + - `root.nodes[0].nodes[1].value === "/for/"` +* `.a /F\6fR/ .b` escapes are handled and uppercase is normalized. + - Old & Busted: + - `root.nodes[0].nodes[2].type === "tag"` + - `root.nodes[0].nodes[2].value === "F\\6fR"` + - New hotness: + - `root.nodes[0].nodes[1].type === "combinator"` + - `root.nodes[0].nodes[1].value === "/for/"` + - `root.nodes[0].nodes[1].raws.value === "/F\\6fR/"` + +### Source position checks and lookups + +A new API was added to look up a node based on the source location. + +```js +const selectorParser = require("postcss-selector-parser"); +// You can find the most specific node for any given character +let combinator = selectorParser.astSync(".a > .b").atPosition(1,4); +combinator.toString() === " > "; +// You can check if a node includes a specific character +// Whitespace surrounding the node that is owned by that node +// is included in the check. +[2,3,4,5,6].map(column => combinator.isAtPosition(1, column)); +// => [false, true, true, true, false] +``` + +# 4.0.0 + +This release has **BREAKING CHANGES** that were required to fix bugs regarding values with escape sequences. Please read carefully. + +* **Identifiers with escapes** - CSS escape sequences are now hidden from the public API by default. + The normal value of a node like a class name or ID, or an aspect of a node such as attribute + selector's value, is unescaped. Escapes representing Non-ascii characters are unescaped into + unicode characters. For example: `bu\tton, .\31 00, #i\2764\FE0Fu, [attr="value is \"quoted\""]` + will parse respectively to the values `button`, `100`, `i❤️u`, `value is "quoted"`. + The original escape sequences for these values can be found in the corresponding property name + in `node.raws`. Where possible, deprecation warnings were added, but the nature + of escape handling makes it impossible to detect what is escaped or not. Our expectation is + that most users are neither expecting nor handling escape sequences in their use of this library, + and so for them, this is a bug fix. Users who are taking care to handle escapes correctly can + now update their code to remove the escape handling and let us do it for them. + +* **Mutating values with escapes** - When you make an update to a node property that has escape handling + The value is assumed to be unescaped, and any special characters are escaped automatically and + the corresponding `raws` value is immediately updated. This can result in changes to the original + escape format. Where the exact value of the escape sequence is important there are methods that + allow both values to be set in conjunction. There are a number of new convenience methods for + manipulating values that involve escapes, especially for attributes values where the quote mark + is involved. See https://github.com/postcss/postcss-selector-parser/pull/133 for an extensive + write-up on these changes. + + +**Upgrade/API Example** + +In `3.x` there was no unescape handling and internal consistency of several properties was the caller's job to maintain. It was very easy for the developer +to create a CSS file that did not parse correctly when some types of values +were in use. + +```js +const selectorParser = require("postcss-selector-parser"); +let attr = selectorParser.attribute({attribute: "id", operator: "=", value: "a-value"}); +attr.value; // => "a-value" +attr.toString(); // => [id=a-value] +// Add quotes to an attribute's value. +// All these values have to be set by the caller to be consistent: +// no internal consistency is maintained. +attr.raws.unquoted = attr.value +attr.value = "'" + attr.value + "'"; +attr.value; // => "'a-value'" +attr.quoted = true; +attr.toString(); // => "[id='a-value']" +``` + +In `4.0` there is a convenient API for setting and mutating values +that may need escaping. Especially for attributes. + +```js +const selectorParser = require("postcss-selector-parser"); + +// The constructor requires you specify the exact escape sequence +let className = selectorParser.className({value: "illegal class name", raws: {value: "illegal\\ class\\ name"}}); +className.toString(); // => '.illegal\\ class\\ name' + +// So it's better to set the value as a property +className = selectorParser.className(); +// Most properties that deal with identifiers work like this +className.value = "escape for me"; +className.value; // => 'escape for me' +className.toString(); // => '.escape\\ for\\ me' + +// emoji and all non-ascii are escaped to ensure it works in every css file. +className.value = "đź±đź¦„đźŤ"; +className.value; // => 'đź±đź¦„đźŤ' +className.toString(); // => '.\\1F631\\1F984\\1F60D' + +// you can control the escape sequence if you want, or do bad bad things +className.setPropertyAndEscape('value', 'xxxx', 'yyyy'); +className.value; // => "xxxx" +className.toString(); // => ".yyyy" + +// Pass a value directly through to the css output without escaping it. +className.setPropertyWithoutEscape('value', '$REPLACE_ME$'); +className.value; // => "$REPLACE_ME$" +className.toString(); // => ".$REPLACE_ME$" + +// The biggest changes are to the Attribute class +// passing quoteMark explicitly is required to avoid a deprecation warning. +let attr = selectorParser.attribute({attribute: "id", operator: "=", value: "a-value", quoteMark: null}); +attr.toString(); // => "[id=a-value]" +// Get the value with quotes on it and any necessary escapes. +// This is the same as reading attr.value in 3.x. +attr.getQuotedValue(); // => "a-value"; +attr.quoteMark; // => null + +// Add quotes to an attribute's value. +attr.quoteMark = "'"; // This is all that's required. +attr.toString(); // => "[id='a-value']" +attr.quoted; // => true +// The value is still the same, only the quotes have changed. +attr.value; // => a-value +attr.getQuotedValue(); // => "'a-value'"; + +// deprecated assignment, no warning because there's no escapes +attr.value = "new-value"; +// no quote mark is needed so it is removed +attr.getQuotedValue(); // => "new-value"; + +// deprecated assignment, +attr.value = "\"a 'single quoted' value\""; +// > (node:27859) DeprecationWarning: Assigning an attribute a value containing characters that might need to be escaped is deprecated. Call attribute.setValue() instead. +attr.getQuotedValue(); // => '"a \'single quoted\' value"'; +// quote mark inferred from first and last characters. +attr.quoteMark; // => '"' + +// setValue takes options to make manipulating the value simple. +attr.setValue('foo', {smart: true}); +// foo doesn't require any escapes or quotes. +attr.toString(); // => '[id=foo]' +attr.quoteMark; // => null + +// An explicit quote mark can be specified +attr.setValue('foo', {quoteMark: '"'}); +attr.toString(); // => '[id="foo"]' + +// preserves quote mark by default +attr.setValue('bar'); +attr.toString(); // => '[id="bar"]' +attr.quoteMark = null; +attr.toString(); // => '[id=bar]' + +// with no arguments, it preserves quote mark even when it's not a great idea +attr.setValue('a value \n that should be quoted'); +attr.toString(); // => '[id=a\\ value\\ \\A\\ that\\ should\\ be\\ quoted]' + +// smart preservation with a specified default +attr.setValue('a value \n that should be quoted', {smart: true, preferCurrentQuoteMark: true, quoteMark: "'"}); +// => "[id='a value \\A that should be quoted']" +attr.quoteMark = '"'; +// => '[id="a value \\A that should be quoted"]' + +// this keeps double quotes because it wants to quote the value and the existing value has double quotes. +attr.setValue('this should be quoted', {smart: true, preferCurrentQuoteMark: true, quoteMark: "'"}); +// => '[id="this should be quoted"]' + +// picks single quotes because the value has double quotes +attr.setValue('a "double quoted" value', {smart: true, preferCurrentQuoteMark: true, quoteMark: "'"}); +// => "[id='a "double quoted" value']" + +// setPropertyAndEscape lets you do anything you want. Even things that are a bad idea and illegal. +attr.setPropertyAndEscape('value', 'xxxx', 'the password is 42'); +attr.value; // => "xxxx" +attr.toString(); // => "[id=the password is 42]" + +// Pass a value directly through to the css output without escaping it. +attr.setPropertyWithoutEscape('value', '$REPLACEMENT$'); +attr.value; // => "$REPLACEMENT$" +attr.toString(); // => "[id=$REPLACEMENT$]" +``` + +# 3.1.2 + +* Fix: Removed dot-prop dependency since it's no longer written in es5. + +# 3.1.1 + +* Fix: typescript definitions weren't in the published package. + +# 3.1.0 + +* Fixed numerous bugs in attribute nodes relating to the handling of comments + and whitespace. There's significant changes to `attrNode.spaces` and `attrNode.raws` since the `3.0.0` release. +* Added `Attribute#offsetOf(part)` to get the offset location of + attribute parts like `"operator"` and `"value"`. This is most + often added to `Attribute#sourceIndex` for error reporting. + +# 3.0.0 + +## Breaking changes + +* Some tweaks to the tokenizer/attribute selector parsing mean that whitespace + locations might be slightly different to the 2.x code. +* Better attribute selector parsing with more validation; postcss-selector-parser + no longer uses regular expressions to parse attribute selectors. +* Added an async API (thanks to @jacobp100); the default `process` API is now + async, and the sync API is now accessed through `processSync` instead. +* `process()` and `processSync()` now return a string instead of the Processor + instance. +* Tweaks handling of Less interpolation (thanks to @jwilsson). +* Removes support for Node 0.12. + +## Other changes + +* `ast()` and `astSync()` methods have been added to the `Processor`. These + return the `Root` node of the selectors after processing them. +* `transform()` and `transformSync()` methods have been added to the + `Processor`. These return the value returned by the processor callback + after processing the selectors. +* Set the parent when inserting a node (thanks to @chriseppstein). +* Correctly adjust indices when using insertBefore/insertAfter (thanks to @tivac). +* Fixes handling of namespaces with qualified tag selectors. +* `process`, `ast` and `transform` (and their sync variants) now accept a + `postcss` rule node. When provided, better errors are generated and selector + processing is automatically set back to the rule selector (unless the `updateSelector` option is set to `false`.) +* Now more memory efficient when tokenizing selectors. + +### Upgrade hints + +The pattern of: + +`rule.selector = processor.process(rule.selector).result.toString();` + +is now: + +`processor.processSync(rule)` + +# 2.2.3 + +* Resolves an issue where the parser would not reduce multiple spaces between an + ampersand and another simple selector in lossy mode (thanks to @adam-26). + +# 2.2.2 + +* No longer hangs on an unescaped semicolon; instead the parser will throw + an exception for these cases. + +# 2.2.1 + +* Allows a consumer to specify whitespace tokens when creating a new Node + (thanks to @Semigradsky). + +# 2.2.0 + +* Added a new option to normalize whitespace when parsing the selector string + (thanks to @adam-26). + +# 2.1.1 + +* Better unquoted value handling within attribute selectors + (thanks to @evilebottnawi). + +# 2.1.0 + +* Added: Use string constants for all node types & expose them on the main + parser instance (thanks to @Aweary). + +# 2.0.0 + +This release contains the following breaking changes: + +* Renamed all `eachInside` iterators to `walk`. For example, `eachTag` is now + `walkTags`, and `eachInside` is now `walk`. +* Renamed `Node#removeSelf()` to `Node#remove()`. +* Renamed `Container#remove()` to `Container#removeChild()`. +* Renamed `Node#raw` to `Node#raws` (thanks to @davidtheclark). +* Now parses `&` as the *nesting* selector, rather than a *tag* selector. +* Fixes misinterpretation of Sass interpolation (e.g. `#{foo}`) as an + id selector (thanks to @davidtheclark). + +and; + +* Fixes parsing of attribute selectors with equals signs in them + (e.g. `[data-attr="foo=bar"]`) (thanks to @montmanu). +* Adds `quoted` and `raw.unquoted` properties to attribute nodes + (thanks to @davidtheclark). + +# 1.3.3 + +* Fixes an infinite loop on `)` and `]` tokens when they had no opening pairs. + Now postcss-selector-parser will throw when it encounters these lone tokens. + +# 1.3.2 + +* Now uses plain integers rather than `str.charCodeAt(0)` for compiled builds. + +# 1.3.1 + +* Update flatten to v1.x (thanks to @shinnn). + +# 1.3.0 + +* Adds a new node type, `String`, to fix a crash on selectors such as + `foo:bar("test")`. + +# 1.2.1 + +* Fixes a crash when the parser encountered a trailing combinator. + +# 1.2.0 + +* A more descriptive error is thrown when the parser expects to find a + pseudo-class/pseudo-element (thanks to @ashelley). +* Adds support for line/column locations for selector nodes, as well as a + `Node#sourceIndex` method (thanks to @davidtheclark). + +# 1.1.4 + +* Fixes a crash when a selector started with a `>` combinator. The module will + now no longer throw if a selector has a leading/trailing combinator node. + +# 1.1.3 + +* Fixes a crash on `@` tokens. + +# 1.1.2 + +* Fixes an infinite loop caused by using parentheses in a non-pseudo element + context. + +# 1.1.1 + +* Fixes a crash when a backslash ended a selector string. + +# 1.1.0 + +* Adds support for replacing multiple nodes at once with `replaceWith` + (thanks to @jonathantneal). +* Parser no longer throws on sequential IDs and trailing commas, to support + parsing of selector hacks. + +# 1.0.1 + +* Fixes using `insertAfter` and `insertBefore` during iteration. + +# 1.0.0 + +* Adds `clone` and `replaceWith` methods to nodes. +* Adds `insertBefore` and `insertAfter` to containers. +* Stabilises API. + +# 0.0.5 + +* Fixes crash on extra whitespace inside a pseudo selector's parentheses. +* Adds sort function to the container class. +* Enables the parser to pass its input through without transforming. +* Iteration-safe `each` and `eachInside`. + +# 0.0.4 + +* Tidy up redundant duplication. +* Fixes a bug where the parser would loop infinitely on universal selectors + inside pseudo selectors. +* Adds `length` getter and `eachInside`, `map`, `reduce` to the container class. +* When a selector has been removed from the tree, the root node will no longer + cast it to a string. +* Adds node type iterators to the container class (e.g. `eachComment`). +* Adds filter function to the container class. +* Adds split function to the container class. +* Create new node types by doing `parser.id(opts)` etc. +* Adds support for pseudo classes anywhere in the selector. + +# 0.0.3 + +* Adds `next` and `prev` to the node class. +* Adds `first` and `last` getters to the container class. +* Adds `every` and `some` iterators to the container class. +* Add `empty` alias for `removeAll`. +* Combinators are now types of node. +* Fixes the at method so that it is not an alias for `index`. +* Tidy up creation of new nodes in the parser. +* Refactors how namespaces are handled for consistency & less redundant code. +* Refactors AST to use `nodes` exclusively, and eliminates excessive nesting. +* Fixes nested pseudo parsing. +* Fixes whitespace parsing. + +# 0.0.2 + +* Adds support for namespace selectors. +* Adds support for selectors joined by escaped spaces - such as `.\31\ 0`. + +# 0.0.1 + +* Initial release. diff --git a/node_modules/postcss-selector-parser/LICENSE-MIT b/node_modules/postcss-selector-parser/LICENSE-MIT new file mode 100644 index 0000000..fd0e863 --- /dev/null +++ b/node_modules/postcss-selector-parser/LICENSE-MIT @@ -0,0 +1,22 @@ +Copyright (c) Ben Briggs (http://beneb.info) + +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-selector-parser/README.md b/node_modules/postcss-selector-parser/README.md new file mode 100644 index 0000000..28e44f2 --- /dev/null +++ b/node_modules/postcss-selector-parser/README.md @@ -0,0 +1,49 @@ +# postcss-selector-parser [![test](https://github.com/postcss/postcss-selector-parser/actions/workflows/test.yml/badge.svg)](https://github.com/postcss/postcss-selector-parser/actions/workflows/test.yml) + +> Selector parser with built in methods for working with selector strings. + +## Install + +With [npm](https://npmjs.com/package/postcss-selector-parser) do: + +``` +npm install postcss-selector-parser +``` + +## Quick Start + +```js +const parser = require('postcss-selector-parser'); +const transform = selectors => { + selectors.walk(selector => { + // do something with the selector + console.log(String(selector)) + }); +}; + +const transformed = parser(transform).processSync('h1, h2, h3'); +``` + +To normalize selector whitespace: + +```js +const parser = require('postcss-selector-parser'); +const normalized = parser().processSync('h1, h2, h3', {lossless: false}); +// -> h1,h2,h3 +``` + +Async support is provided through `parser.process` and will resolve a Promise +with the resulting selector string. + +## API + +Please see [API.md](API.md). + +## Credits + +* Huge thanks to Andrey Sitnik (@ai) for work on PostCSS which helped + accelerate this module's development. + +## License + +MIT diff --git a/node_modules/postcss-selector-parser/dist/index.js b/node_modules/postcss-selector-parser/dist/index.js new file mode 100644 index 0000000..995741a --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/index.js @@ -0,0 +1,17 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +var _processor = _interopRequireDefault(require("./processor")); +var selectors = _interopRequireWildcard(require("./selectors")); +function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } +function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var parser = function parser(processor) { + return new _processor["default"](processor); +}; +Object.assign(parser, selectors); +delete parser.__esModule; +var _default = parser; +exports["default"] = _default; +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/parser.js b/node_modules/postcss-selector-parser/dist/parser.js new file mode 100644 index 0000000..ada6158 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/parser.js @@ -0,0 +1,1015 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +var _root = _interopRequireDefault(require("./selectors/root")); +var _selector = _interopRequireDefault(require("./selectors/selector")); +var _className = _interopRequireDefault(require("./selectors/className")); +var _comment = _interopRequireDefault(require("./selectors/comment")); +var _id = _interopRequireDefault(require("./selectors/id")); +var _tag = _interopRequireDefault(require("./selectors/tag")); +var _string = _interopRequireDefault(require("./selectors/string")); +var _pseudo = _interopRequireDefault(require("./selectors/pseudo")); +var _attribute = _interopRequireWildcard(require("./selectors/attribute")); +var _universal = _interopRequireDefault(require("./selectors/universal")); +var _combinator = _interopRequireDefault(require("./selectors/combinator")); +var _nesting = _interopRequireDefault(require("./selectors/nesting")); +var _sortAscending = _interopRequireDefault(require("./sortAscending")); +var _tokenize = _interopRequireWildcard(require("./tokenize")); +var tokens = _interopRequireWildcard(require("./tokenTypes")); +var types = _interopRequireWildcard(require("./selectors/types")); +var _util = require("./util"); +var _WHITESPACE_TOKENS, _Object$assign; +function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } +function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": 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, 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; } +var WHITESPACE_TOKENS = (_WHITESPACE_TOKENS = {}, _WHITESPACE_TOKENS[tokens.space] = true, _WHITESPACE_TOKENS[tokens.cr] = true, _WHITESPACE_TOKENS[tokens.feed] = true, _WHITESPACE_TOKENS[tokens.newline] = true, _WHITESPACE_TOKENS[tokens.tab] = true, _WHITESPACE_TOKENS); +var WHITESPACE_EQUIV_TOKENS = Object.assign({}, WHITESPACE_TOKENS, (_Object$assign = {}, _Object$assign[tokens.comment] = true, _Object$assign)); +function tokenStart(token) { + return { + line: token[_tokenize.FIELDS.START_LINE], + column: token[_tokenize.FIELDS.START_COL] + }; +} +function tokenEnd(token) { + return { + line: token[_tokenize.FIELDS.END_LINE], + column: token[_tokenize.FIELDS.END_COL] + }; +} +function getSource(startLine, startColumn, endLine, endColumn) { + return { + start: { + line: startLine, + column: startColumn + }, + end: { + line: endLine, + column: endColumn + } + }; +} +function getTokenSource(token) { + return getSource(token[_tokenize.FIELDS.START_LINE], token[_tokenize.FIELDS.START_COL], token[_tokenize.FIELDS.END_LINE], token[_tokenize.FIELDS.END_COL]); +} +function getTokenSourceSpan(startToken, endToken) { + if (!startToken) { + return undefined; + } + return getSource(startToken[_tokenize.FIELDS.START_LINE], startToken[_tokenize.FIELDS.START_COL], endToken[_tokenize.FIELDS.END_LINE], endToken[_tokenize.FIELDS.END_COL]); +} +function unescapeProp(node, prop) { + var value = node[prop]; + if (typeof value !== "string") { + return; + } + if (value.indexOf("\\") !== -1) { + (0, _util.ensureObject)(node, 'raws'); + node[prop] = (0, _util.unesc)(value); + if (node.raws[prop] === undefined) { + node.raws[prop] = value; + } + } + return node; +} +function indexesOf(array, item) { + var i = -1; + var indexes = []; + while ((i = array.indexOf(item, i + 1)) !== -1) { + indexes.push(i); + } + return indexes; +} +function uniqs() { + var list = Array.prototype.concat.apply([], arguments); + return list.filter(function (item, i) { + return i === list.indexOf(item); + }); +} +var Parser = /*#__PURE__*/function () { + function Parser(rule, options) { + if (options === void 0) { + options = {}; + } + this.rule = rule; + this.options = Object.assign({ + lossy: false, + safe: false + }, options); + this.position = 0; + this.css = typeof this.rule === 'string' ? this.rule : this.rule.selector; + this.tokens = (0, _tokenize["default"])({ + css: this.css, + error: this._errorGenerator(), + safe: this.options.safe + }); + var rootSource = getTokenSourceSpan(this.tokens[0], this.tokens[this.tokens.length - 1]); + this.root = new _root["default"]({ + source: rootSource + }); + this.root.errorGenerator = this._errorGenerator(); + var selector = new _selector["default"]({ + source: { + start: { + line: 1, + column: 1 + } + }, + sourceIndex: 0 + }); + this.root.append(selector); + this.current = selector; + this.loop(); + } + var _proto = Parser.prototype; + _proto._errorGenerator = function _errorGenerator() { + var _this = this; + return function (message, errorOptions) { + if (typeof _this.rule === 'string') { + return new Error(message); + } + return _this.rule.error(message, errorOptions); + }; + }; + _proto.attribute = function attribute() { + var attr = []; + var startingToken = this.currToken; + this.position++; + while (this.position < this.tokens.length && this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) { + attr.push(this.currToken); + this.position++; + } + if (this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) { + return this.expected('closing square bracket', this.currToken[_tokenize.FIELDS.START_POS]); + } + var len = attr.length; + var node = { + source: getSource(startingToken[1], startingToken[2], this.currToken[3], this.currToken[4]), + sourceIndex: startingToken[_tokenize.FIELDS.START_POS] + }; + if (len === 1 && !~[tokens.word].indexOf(attr[0][_tokenize.FIELDS.TYPE])) { + return this.expected('attribute', attr[0][_tokenize.FIELDS.START_POS]); + } + var pos = 0; + var spaceBefore = ''; + var commentBefore = ''; + var lastAdded = null; + var spaceAfterMeaningfulToken = false; + while (pos < len) { + var token = attr[pos]; + var content = this.content(token); + var next = attr[pos + 1]; + switch (token[_tokenize.FIELDS.TYPE]) { + case tokens.space: + // if ( + // len === 1 || + // pos === 0 && this.content(next) === '|' + // ) { + // return this.expected('attribute', token[TOKEN.START_POS], content); + // } + spaceAfterMeaningfulToken = true; + if (this.options.lossy) { + break; + } + if (lastAdded) { + (0, _util.ensureObject)(node, 'spaces', lastAdded); + var prevContent = node.spaces[lastAdded].after || ''; + node.spaces[lastAdded].after = prevContent + content; + var existingComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || null; + if (existingComment) { + node.raws.spaces[lastAdded].after = existingComment + content; + } + } else { + spaceBefore = spaceBefore + content; + commentBefore = commentBefore + content; + } + break; + case tokens.asterisk: + if (next[_tokenize.FIELDS.TYPE] === tokens.equals) { + node.operator = content; + lastAdded = 'operator'; + } else if ((!node.namespace || lastAdded === "namespace" && !spaceAfterMeaningfulToken) && next) { + if (spaceBefore) { + (0, _util.ensureObject)(node, 'spaces', 'attribute'); + node.spaces.attribute.before = spaceBefore; + spaceBefore = ''; + } + if (commentBefore) { + (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute'); + node.raws.spaces.attribute.before = spaceBefore; + commentBefore = ''; + } + node.namespace = (node.namespace || "") + content; + var rawValue = (0, _util.getProp)(node, 'raws', 'namespace') || null; + if (rawValue) { + node.raws.namespace += content; + } + lastAdded = 'namespace'; + } + spaceAfterMeaningfulToken = false; + break; + case tokens.dollar: + if (lastAdded === "value") { + var oldRawValue = (0, _util.getProp)(node, 'raws', 'value'); + node.value += "$"; + if (oldRawValue) { + node.raws.value = oldRawValue + "$"; + } + break; + } + // Falls through + case tokens.caret: + if (next[_tokenize.FIELDS.TYPE] === tokens.equals) { + node.operator = content; + lastAdded = 'operator'; + } + spaceAfterMeaningfulToken = false; + break; + case tokens.combinator: + if (content === '~' && next[_tokenize.FIELDS.TYPE] === tokens.equals) { + node.operator = content; + lastAdded = 'operator'; + } + if (content !== '|') { + spaceAfterMeaningfulToken = false; + break; + } + if (next[_tokenize.FIELDS.TYPE] === tokens.equals) { + node.operator = content; + lastAdded = 'operator'; + } else if (!node.namespace && !node.attribute) { + node.namespace = true; + } + spaceAfterMeaningfulToken = false; + break; + case tokens.word: + if (next && this.content(next) === '|' && attr[pos + 2] && attr[pos + 2][_tokenize.FIELDS.TYPE] !== tokens.equals && + // this look-ahead probably fails with comment nodes involved. + !node.operator && !node.namespace) { + node.namespace = content; + lastAdded = 'namespace'; + } else if (!node.attribute || lastAdded === "attribute" && !spaceAfterMeaningfulToken) { + if (spaceBefore) { + (0, _util.ensureObject)(node, 'spaces', 'attribute'); + node.spaces.attribute.before = spaceBefore; + spaceBefore = ''; + } + if (commentBefore) { + (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute'); + node.raws.spaces.attribute.before = commentBefore; + commentBefore = ''; + } + node.attribute = (node.attribute || "") + content; + var _rawValue = (0, _util.getProp)(node, 'raws', 'attribute') || null; + if (_rawValue) { + node.raws.attribute += content; + } + lastAdded = 'attribute'; + } else if (!node.value && node.value !== "" || lastAdded === "value" && !(spaceAfterMeaningfulToken || node.quoteMark)) { + var _unescaped = (0, _util.unesc)(content); + var _oldRawValue = (0, _util.getProp)(node, 'raws', 'value') || ''; + var oldValue = node.value || ''; + node.value = oldValue + _unescaped; + node.quoteMark = null; + if (_unescaped !== content || _oldRawValue) { + (0, _util.ensureObject)(node, 'raws'); + node.raws.value = (_oldRawValue || oldValue) + content; + } + lastAdded = 'value'; + } else { + var insensitive = content === 'i' || content === "I"; + if ((node.value || node.value === '') && (node.quoteMark || spaceAfterMeaningfulToken)) { + node.insensitive = insensitive; + if (!insensitive || content === "I") { + (0, _util.ensureObject)(node, 'raws'); + node.raws.insensitiveFlag = content; + } + lastAdded = 'insensitive'; + if (spaceBefore) { + (0, _util.ensureObject)(node, 'spaces', 'insensitive'); + node.spaces.insensitive.before = spaceBefore; + spaceBefore = ''; + } + if (commentBefore) { + (0, _util.ensureObject)(node, 'raws', 'spaces', 'insensitive'); + node.raws.spaces.insensitive.before = commentBefore; + commentBefore = ''; + } + } else if (node.value || node.value === '') { + lastAdded = 'value'; + node.value += content; + if (node.raws.value) { + node.raws.value += content; + } + } + } + spaceAfterMeaningfulToken = false; + break; + case tokens.str: + if (!node.attribute || !node.operator) { + return this.error("Expected an attribute followed by an operator preceding the string.", { + index: token[_tokenize.FIELDS.START_POS] + }); + } + var _unescapeValue = (0, _attribute.unescapeValue)(content), + unescaped = _unescapeValue.unescaped, + quoteMark = _unescapeValue.quoteMark; + node.value = unescaped; + node.quoteMark = quoteMark; + lastAdded = 'value'; + (0, _util.ensureObject)(node, 'raws'); + node.raws.value = content; + spaceAfterMeaningfulToken = false; + break; + case tokens.equals: + if (!node.attribute) { + return this.expected('attribute', token[_tokenize.FIELDS.START_POS], content); + } + if (node.value) { + return this.error('Unexpected "=" found; an operator was already defined.', { + index: token[_tokenize.FIELDS.START_POS] + }); + } + node.operator = node.operator ? node.operator + content : content; + lastAdded = 'operator'; + spaceAfterMeaningfulToken = false; + break; + case tokens.comment: + if (lastAdded) { + if (spaceAfterMeaningfulToken || next && next[_tokenize.FIELDS.TYPE] === tokens.space || lastAdded === 'insensitive') { + var lastComment = (0, _util.getProp)(node, 'spaces', lastAdded, 'after') || ''; + var rawLastComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || lastComment; + (0, _util.ensureObject)(node, 'raws', 'spaces', lastAdded); + node.raws.spaces[lastAdded].after = rawLastComment + content; + } else { + var lastValue = node[lastAdded] || ''; + var rawLastValue = (0, _util.getProp)(node, 'raws', lastAdded) || lastValue; + (0, _util.ensureObject)(node, 'raws'); + node.raws[lastAdded] = rawLastValue + content; + } + } else { + commentBefore = commentBefore + content; + } + break; + default: + return this.error("Unexpected \"" + content + "\" found.", { + index: token[_tokenize.FIELDS.START_POS] + }); + } + pos++; + } + unescapeProp(node, "attribute"); + unescapeProp(node, "namespace"); + this.newNode(new _attribute["default"](node)); + this.position++; + } + + /** + * return a node containing meaningless garbage up to (but not including) the specified token position. + * if the token position is negative, all remaining tokens are consumed. + * + * This returns an array containing a single string node if all whitespace, + * otherwise an array of comment nodes with space before and after. + * + * These tokens are not added to the current selector, the caller can add them or use them to amend + * a previous node's space metadata. + * + * In lossy mode, this returns only comments. + */; + _proto.parseWhitespaceEquivalentTokens = function parseWhitespaceEquivalentTokens(stopPosition) { + if (stopPosition < 0) { + stopPosition = this.tokens.length; + } + var startPosition = this.position; + var nodes = []; + var space = ""; + var lastComment = undefined; + do { + if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) { + if (!this.options.lossy) { + space += this.content(); + } + } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.comment) { + var spaces = {}; + if (space) { + spaces.before = space; + space = ""; + } + lastComment = new _comment["default"]({ + value: this.content(), + source: getTokenSource(this.currToken), + sourceIndex: this.currToken[_tokenize.FIELDS.START_POS], + spaces: spaces + }); + nodes.push(lastComment); + } + } while (++this.position < stopPosition); + if (space) { + if (lastComment) { + lastComment.spaces.after = space; + } else if (!this.options.lossy) { + var firstToken = this.tokens[startPosition]; + var lastToken = this.tokens[this.position - 1]; + nodes.push(new _string["default"]({ + value: '', + source: getSource(firstToken[_tokenize.FIELDS.START_LINE], firstToken[_tokenize.FIELDS.START_COL], lastToken[_tokenize.FIELDS.END_LINE], lastToken[_tokenize.FIELDS.END_COL]), + sourceIndex: firstToken[_tokenize.FIELDS.START_POS], + spaces: { + before: space, + after: '' + } + })); + } + } + return nodes; + } + + /** + * + * @param {*} nodes + */; + _proto.convertWhitespaceNodesToSpace = function convertWhitespaceNodesToSpace(nodes, requiredSpace) { + var _this2 = this; + if (requiredSpace === void 0) { + requiredSpace = false; + } + var space = ""; + var rawSpace = ""; + nodes.forEach(function (n) { + var spaceBefore = _this2.lossySpace(n.spaces.before, requiredSpace); + var rawSpaceBefore = _this2.lossySpace(n.rawSpaceBefore, requiredSpace); + space += spaceBefore + _this2.lossySpace(n.spaces.after, requiredSpace && spaceBefore.length === 0); + rawSpace += spaceBefore + n.value + _this2.lossySpace(n.rawSpaceAfter, requiredSpace && rawSpaceBefore.length === 0); + }); + if (rawSpace === space) { + rawSpace = undefined; + } + var result = { + space: space, + rawSpace: rawSpace + }; + return result; + }; + _proto.isNamedCombinator = function isNamedCombinator(position) { + if (position === void 0) { + position = this.position; + } + return this.tokens[position + 0] && this.tokens[position + 0][_tokenize.FIELDS.TYPE] === tokens.slash && this.tokens[position + 1] && this.tokens[position + 1][_tokenize.FIELDS.TYPE] === tokens.word && this.tokens[position + 2] && this.tokens[position + 2][_tokenize.FIELDS.TYPE] === tokens.slash; + }; + _proto.namedCombinator = function namedCombinator() { + if (this.isNamedCombinator()) { + var nameRaw = this.content(this.tokens[this.position + 1]); + var name = (0, _util.unesc)(nameRaw).toLowerCase(); + var raws = {}; + if (name !== nameRaw) { + raws.value = "/" + nameRaw + "/"; + } + var node = new _combinator["default"]({ + value: "/" + name + "/", + source: getSource(this.currToken[_tokenize.FIELDS.START_LINE], this.currToken[_tokenize.FIELDS.START_COL], this.tokens[this.position + 2][_tokenize.FIELDS.END_LINE], this.tokens[this.position + 2][_tokenize.FIELDS.END_COL]), + sourceIndex: this.currToken[_tokenize.FIELDS.START_POS], + raws: raws + }); + this.position = this.position + 3; + return node; + } else { + this.unexpected(); + } + }; + _proto.combinator = function combinator() { + var _this3 = this; + if (this.content() === '|') { + return this.namespace(); + } + // We need to decide between a space that's a descendant combinator and meaningless whitespace at the end of a selector. + var nextSigTokenPos = this.locateNextMeaningfulToken(this.position); + if (nextSigTokenPos < 0 || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.comma || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) { + var nodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos); + if (nodes.length > 0) { + var last = this.current.last; + if (last) { + var _this$convertWhitespa = this.convertWhitespaceNodesToSpace(nodes), + space = _this$convertWhitespa.space, + rawSpace = _this$convertWhitespa.rawSpace; + if (rawSpace !== undefined) { + last.rawSpaceAfter += rawSpace; + } + last.spaces.after += space; + } else { + nodes.forEach(function (n) { + return _this3.newNode(n); + }); + } + } + return; + } + var firstToken = this.currToken; + var spaceOrDescendantSelectorNodes = undefined; + if (nextSigTokenPos > this.position) { + spaceOrDescendantSelectorNodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos); + } + var node; + if (this.isNamedCombinator()) { + node = this.namedCombinator(); + } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.combinator) { + node = new _combinator["default"]({ + value: this.content(), + source: getTokenSource(this.currToken), + sourceIndex: this.currToken[_tokenize.FIELDS.START_POS] + }); + this.position++; + } else if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) { + // pass + } else if (!spaceOrDescendantSelectorNodes) { + this.unexpected(); + } + if (node) { + if (spaceOrDescendantSelectorNodes) { + var _this$convertWhitespa2 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes), + _space = _this$convertWhitespa2.space, + _rawSpace = _this$convertWhitespa2.rawSpace; + node.spaces.before = _space; + node.rawSpaceBefore = _rawSpace; + } + } else { + // descendant combinator + var _this$convertWhitespa3 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes, true), + _space2 = _this$convertWhitespa3.space, + _rawSpace2 = _this$convertWhitespa3.rawSpace; + if (!_rawSpace2) { + _rawSpace2 = _space2; + } + var spaces = {}; + var raws = { + spaces: {} + }; + if (_space2.endsWith(' ') && _rawSpace2.endsWith(' ')) { + spaces.before = _space2.slice(0, _space2.length - 1); + raws.spaces.before = _rawSpace2.slice(0, _rawSpace2.length - 1); + } else if (_space2.startsWith(' ') && _rawSpace2.startsWith(' ')) { + spaces.after = _space2.slice(1); + raws.spaces.after = _rawSpace2.slice(1); + } else { + raws.value = _rawSpace2; + } + node = new _combinator["default"]({ + value: ' ', + source: getTokenSourceSpan(firstToken, this.tokens[this.position - 1]), + sourceIndex: firstToken[_tokenize.FIELDS.START_POS], + spaces: spaces, + raws: raws + }); + } + if (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.space) { + node.spaces.after = this.optionalSpace(this.content()); + this.position++; + } + return this.newNode(node); + }; + _proto.comma = function comma() { + if (this.position === this.tokens.length - 1) { + this.root.trailingComma = true; + this.position++; + return; + } + this.current._inferEndPosition(); + var selector = new _selector["default"]({ + source: { + start: tokenStart(this.tokens[this.position + 1]) + }, + sourceIndex: this.tokens[this.position + 1][_tokenize.FIELDS.START_POS] + }); + this.current.parent.append(selector); + this.current = selector; + this.position++; + }; + _proto.comment = function comment() { + var current = this.currToken; + this.newNode(new _comment["default"]({ + value: this.content(), + source: getTokenSource(current), + sourceIndex: current[_tokenize.FIELDS.START_POS] + })); + this.position++; + }; + _proto.error = function error(message, opts) { + throw this.root.error(message, opts); + }; + _proto.missingBackslash = function missingBackslash() { + return this.error('Expected a backslash preceding the semicolon.', { + index: this.currToken[_tokenize.FIELDS.START_POS] + }); + }; + _proto.missingParenthesis = function missingParenthesis() { + return this.expected('opening parenthesis', this.currToken[_tokenize.FIELDS.START_POS]); + }; + _proto.missingSquareBracket = function missingSquareBracket() { + return this.expected('opening square bracket', this.currToken[_tokenize.FIELDS.START_POS]); + }; + _proto.unexpected = function unexpected() { + return this.error("Unexpected '" + this.content() + "'. Escaping special characters with \\ may help.", this.currToken[_tokenize.FIELDS.START_POS]); + }; + _proto.unexpectedPipe = function unexpectedPipe() { + return this.error("Unexpected '|'.", this.currToken[_tokenize.FIELDS.START_POS]); + }; + _proto.namespace = function namespace() { + var before = this.prevToken && this.content(this.prevToken) || true; + if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.word) { + this.position++; + return this.word(before); + } else if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.asterisk) { + this.position++; + return this.universal(before); + } + this.unexpectedPipe(); + }; + _proto.nesting = function nesting() { + if (this.nextToken) { + var nextContent = this.content(this.nextToken); + if (nextContent === "|") { + this.position++; + return; + } + } + var current = this.currToken; + this.newNode(new _nesting["default"]({ + value: this.content(), + source: getTokenSource(current), + sourceIndex: current[_tokenize.FIELDS.START_POS] + })); + this.position++; + }; + _proto.parentheses = function parentheses() { + var last = this.current.last; + var unbalanced = 1; + this.position++; + if (last && last.type === types.PSEUDO) { + var selector = new _selector["default"]({ + source: { + start: tokenStart(this.tokens[this.position]) + }, + sourceIndex: this.tokens[this.position][_tokenize.FIELDS.START_POS] + }); + var cache = this.current; + last.append(selector); + this.current = selector; + while (this.position < this.tokens.length && unbalanced) { + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) { + unbalanced++; + } + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) { + unbalanced--; + } + if (unbalanced) { + this.parse(); + } else { + this.current.source.end = tokenEnd(this.currToken); + this.current.parent.source.end = tokenEnd(this.currToken); + this.position++; + } + } + this.current = cache; + } else { + // I think this case should be an error. It's used to implement a basic parse of media queries + // but I don't think it's a good idea. + var parenStart = this.currToken; + var parenValue = "("; + var parenEnd; + while (this.position < this.tokens.length && unbalanced) { + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) { + unbalanced++; + } + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) { + unbalanced--; + } + parenEnd = this.currToken; + parenValue += this.parseParenthesisToken(this.currToken); + this.position++; + } + if (last) { + last.appendToPropertyAndEscape("value", parenValue, parenValue); + } else { + this.newNode(new _string["default"]({ + value: parenValue, + source: getSource(parenStart[_tokenize.FIELDS.START_LINE], parenStart[_tokenize.FIELDS.START_COL], parenEnd[_tokenize.FIELDS.END_LINE], parenEnd[_tokenize.FIELDS.END_COL]), + sourceIndex: parenStart[_tokenize.FIELDS.START_POS] + })); + } + } + if (unbalanced) { + return this.expected('closing parenthesis', this.currToken[_tokenize.FIELDS.START_POS]); + } + }; + _proto.pseudo = function pseudo() { + var _this4 = this; + var pseudoStr = ''; + var startingToken = this.currToken; + while (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.colon) { + pseudoStr += this.content(); + this.position++; + } + if (!this.currToken) { + return this.expected(['pseudo-class', 'pseudo-element'], this.position - 1); + } + if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.word) { + this.splitWord(false, function (first, length) { + pseudoStr += first; + _this4.newNode(new _pseudo["default"]({ + value: pseudoStr, + source: getTokenSourceSpan(startingToken, _this4.currToken), + sourceIndex: startingToken[_tokenize.FIELDS.START_POS] + })); + if (length > 1 && _this4.nextToken && _this4.nextToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) { + _this4.error('Misplaced parenthesis.', { + index: _this4.nextToken[_tokenize.FIELDS.START_POS] + }); + } + }); + } else { + return this.expected(['pseudo-class', 'pseudo-element'], this.currToken[_tokenize.FIELDS.START_POS]); + } + }; + _proto.space = function space() { + var content = this.content(); + // Handle space before and after the selector + if (this.position === 0 || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis || this.current.nodes.every(function (node) { + return node.type === 'comment'; + })) { + this.spaces = this.optionalSpace(content); + this.position++; + } else if (this.position === this.tokens.length - 1 || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) { + this.current.last.spaces.after = this.optionalSpace(content); + this.position++; + } else { + this.combinator(); + } + }; + _proto.string = function string() { + var current = this.currToken; + this.newNode(new _string["default"]({ + value: this.content(), + source: getTokenSource(current), + sourceIndex: current[_tokenize.FIELDS.START_POS] + })); + this.position++; + }; + _proto.universal = function universal(namespace) { + var nextToken = this.nextToken; + if (nextToken && this.content(nextToken) === '|') { + this.position++; + return this.namespace(); + } + var current = this.currToken; + this.newNode(new _universal["default"]({ + value: this.content(), + source: getTokenSource(current), + sourceIndex: current[_tokenize.FIELDS.START_POS] + }), namespace); + this.position++; + }; + _proto.splitWord = function splitWord(namespace, firstCallback) { + var _this5 = this; + var nextToken = this.nextToken; + var word = this.content(); + while (nextToken && ~[tokens.dollar, tokens.caret, tokens.equals, tokens.word].indexOf(nextToken[_tokenize.FIELDS.TYPE])) { + this.position++; + var current = this.content(); + word += current; + if (current.lastIndexOf('\\') === current.length - 1) { + var next = this.nextToken; + if (next && next[_tokenize.FIELDS.TYPE] === tokens.space) { + word += this.requiredSpace(this.content(next)); + this.position++; + } + } + nextToken = this.nextToken; + } + var hasClass = indexesOf(word, '.').filter(function (i) { + // Allow escaped dot within class name + var escapedDot = word[i - 1] === '\\'; + // Allow decimal numbers percent in @keyframes + var isKeyframesPercent = /^\d+\.\d+%$/.test(word); + return !escapedDot && !isKeyframesPercent; + }); + var hasId = indexesOf(word, '#').filter(function (i) { + return word[i - 1] !== '\\'; + }); + // Eliminate Sass interpolations from the list of id indexes + var interpolations = indexesOf(word, '#{'); + if (interpolations.length) { + hasId = hasId.filter(function (hashIndex) { + return !~interpolations.indexOf(hashIndex); + }); + } + var indices = (0, _sortAscending["default"])(uniqs([0].concat(hasClass, hasId))); + indices.forEach(function (ind, i) { + var index = indices[i + 1] || word.length; + var value = word.slice(ind, index); + if (i === 0 && firstCallback) { + return firstCallback.call(_this5, value, indices.length); + } + var node; + var current = _this5.currToken; + var sourceIndex = current[_tokenize.FIELDS.START_POS] + indices[i]; + var source = getSource(current[1], current[2] + ind, current[3], current[2] + (index - 1)); + if (~hasClass.indexOf(ind)) { + var classNameOpts = { + value: value.slice(1), + source: source, + sourceIndex: sourceIndex + }; + node = new _className["default"](unescapeProp(classNameOpts, "value")); + } else if (~hasId.indexOf(ind)) { + var idOpts = { + value: value.slice(1), + source: source, + sourceIndex: sourceIndex + }; + node = new _id["default"](unescapeProp(idOpts, "value")); + } else { + var tagOpts = { + value: value, + source: source, + sourceIndex: sourceIndex + }; + unescapeProp(tagOpts, "value"); + node = new _tag["default"](tagOpts); + } + _this5.newNode(node, namespace); + // Ensure that the namespace is used only once + namespace = null; + }); + this.position++; + }; + _proto.word = function word(namespace) { + var nextToken = this.nextToken; + if (nextToken && this.content(nextToken) === '|') { + this.position++; + return this.namespace(); + } + return this.splitWord(namespace); + }; + _proto.loop = function loop() { + while (this.position < this.tokens.length) { + this.parse(true); + } + this.current._inferEndPosition(); + return this.root; + }; + _proto.parse = function parse(throwOnParenthesis) { + switch (this.currToken[_tokenize.FIELDS.TYPE]) { + case tokens.space: + this.space(); + break; + case tokens.comment: + this.comment(); + break; + case tokens.openParenthesis: + this.parentheses(); + break; + case tokens.closeParenthesis: + if (throwOnParenthesis) { + this.missingParenthesis(); + } + break; + case tokens.openSquare: + this.attribute(); + break; + case tokens.dollar: + case tokens.caret: + case tokens.equals: + case tokens.word: + this.word(); + break; + case tokens.colon: + this.pseudo(); + break; + case tokens.comma: + this.comma(); + break; + case tokens.asterisk: + this.universal(); + break; + case tokens.ampersand: + this.nesting(); + break; + case tokens.slash: + case tokens.combinator: + this.combinator(); + break; + case tokens.str: + this.string(); + break; + // These cases throw; no break needed. + case tokens.closeSquare: + this.missingSquareBracket(); + case tokens.semicolon: + this.missingBackslash(); + default: + this.unexpected(); + } + } + + /** + * Helpers + */; + _proto.expected = function expected(description, index, found) { + if (Array.isArray(description)) { + var last = description.pop(); + description = description.join(', ') + " or " + last; + } + var an = /^[aeiou]/.test(description[0]) ? 'an' : 'a'; + if (!found) { + return this.error("Expected " + an + " " + description + ".", { + index: index + }); + } + return this.error("Expected " + an + " " + description + ", found \"" + found + "\" instead.", { + index: index + }); + }; + _proto.requiredSpace = function requiredSpace(space) { + return this.options.lossy ? ' ' : space; + }; + _proto.optionalSpace = function optionalSpace(space) { + return this.options.lossy ? '' : space; + }; + _proto.lossySpace = function lossySpace(space, required) { + if (this.options.lossy) { + return required ? ' ' : ''; + } else { + return space; + } + }; + _proto.parseParenthesisToken = function parseParenthesisToken(token) { + var content = this.content(token); + if (token[_tokenize.FIELDS.TYPE] === tokens.space) { + return this.requiredSpace(content); + } else { + return content; + } + }; + _proto.newNode = function newNode(node, namespace) { + if (namespace) { + if (/^ +$/.test(namespace)) { + if (!this.options.lossy) { + this.spaces = (this.spaces || '') + namespace; + } + namespace = true; + } + node.namespace = namespace; + unescapeProp(node, "namespace"); + } + if (this.spaces) { + node.spaces.before = this.spaces; + this.spaces = ''; + } + return this.current.append(node); + }; + _proto.content = function content(token) { + if (token === void 0) { + token = this.currToken; + } + return this.css.slice(token[_tokenize.FIELDS.START_POS], token[_tokenize.FIELDS.END_POS]); + }; + /** + * returns the index of the next non-whitespace, non-comment token. + * returns -1 if no meaningful token is found. + */ + _proto.locateNextMeaningfulToken = function locateNextMeaningfulToken(startPosition) { + if (startPosition === void 0) { + startPosition = this.position + 1; + } + var searchPosition = startPosition; + while (searchPosition < this.tokens.length) { + if (WHITESPACE_EQUIV_TOKENS[this.tokens[searchPosition][_tokenize.FIELDS.TYPE]]) { + searchPosition++; + continue; + } else { + return searchPosition; + } + } + return -1; + }; + _createClass(Parser, [{ + key: "currToken", + get: function get() { + return this.tokens[this.position]; + } + }, { + key: "nextToken", + get: function get() { + return this.tokens[this.position + 1]; + } + }, { + key: "prevToken", + get: function get() { + return this.tokens[this.position - 1]; + } + }]); + return Parser; +}(); +exports["default"] = Parser; +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/processor.js b/node_modules/postcss-selector-parser/dist/processor.js new file mode 100644 index 0000000..dbfa091 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/processor.js @@ -0,0 +1,170 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +var _parser = _interopRequireDefault(require("./parser")); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var Processor = /*#__PURE__*/function () { + function Processor(func, options) { + this.func = func || function noop() {}; + this.funcRes = null; + this.options = options; + } + var _proto = Processor.prototype; + _proto._shouldUpdateSelector = function _shouldUpdateSelector(rule, options) { + if (options === void 0) { + options = {}; + } + var merged = Object.assign({}, this.options, options); + if (merged.updateSelector === false) { + return false; + } else { + return typeof rule !== "string"; + } + }; + _proto._isLossy = function _isLossy(options) { + if (options === void 0) { + options = {}; + } + var merged = Object.assign({}, this.options, options); + if (merged.lossless === false) { + return true; + } else { + return false; + } + }; + _proto._root = function _root(rule, options) { + if (options === void 0) { + options = {}; + } + var parser = new _parser["default"](rule, this._parseOptions(options)); + return parser.root; + }; + _proto._parseOptions = function _parseOptions(options) { + return { + lossy: this._isLossy(options) + }; + }; + _proto._run = function _run(rule, options) { + var _this = this; + if (options === void 0) { + options = {}; + } + return new Promise(function (resolve, reject) { + try { + var root = _this._root(rule, options); + Promise.resolve(_this.func(root)).then(function (transform) { + var string = undefined; + if (_this._shouldUpdateSelector(rule, options)) { + string = root.toString(); + rule.selector = string; + } + return { + transform: transform, + root: root, + string: string + }; + }).then(resolve, reject); + } catch (e) { + reject(e); + return; + } + }); + }; + _proto._runSync = function _runSync(rule, options) { + if (options === void 0) { + options = {}; + } + var root = this._root(rule, options); + var transform = this.func(root); + if (transform && typeof transform.then === "function") { + throw new Error("Selector processor returned a promise to a synchronous call."); + } + var string = undefined; + if (options.updateSelector && typeof rule !== "string") { + string = root.toString(); + rule.selector = string; + } + return { + transform: transform, + root: root, + string: string + }; + } + + /** + * Process rule into a selector AST. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {Promise} The AST of the selector after processing it. + */; + _proto.ast = function ast(rule, options) { + return this._run(rule, options).then(function (result) { + return result.root; + }); + } + + /** + * Process rule into a selector AST synchronously. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {parser.Root} The AST of the selector after processing it. + */; + _proto.astSync = function astSync(rule, options) { + return this._runSync(rule, options).root; + } + + /** + * Process a selector into a transformed value asynchronously + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {Promise} The value returned by the processor. + */; + _proto.transform = function transform(rule, options) { + return this._run(rule, options).then(function (result) { + return result.transform; + }); + } + + /** + * Process a selector into a transformed value synchronously. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {any} The value returned by the processor. + */; + _proto.transformSync = function transformSync(rule, options) { + return this._runSync(rule, options).transform; + } + + /** + * Process a selector into a new selector string asynchronously. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {string} the selector after processing. + */; + _proto.process = function process(rule, options) { + return this._run(rule, options).then(function (result) { + return result.string || result.root.toString(); + }); + } + + /** + * Process a selector into a new selector string synchronously. + * + * @param rule {postcss.Rule | string} The css selector to be processed + * @param options The options for processing + * @returns {string} the selector after processing. + */; + _proto.processSync = function processSync(rule, options) { + var result = this._runSync(rule, options); + return result.string || result.root.toString(); + }; + return Processor; +}(); +exports["default"] = Processor; +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/attribute.js b/node_modules/postcss-selector-parser/dist/selectors/attribute.js new file mode 100644 index 0000000..0351a22 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/attribute.js @@ -0,0 +1,448 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +exports.unescapeValue = unescapeValue; +var _cssesc = _interopRequireDefault(require("cssesc")); +var _unesc = _interopRequireDefault(require("../util/unesc")); +var _namespace = _interopRequireDefault(require("./namespace")); +var _types = require("./types"); +var _CSSESC_QUOTE_OPTIONS; +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": 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, 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 _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var deprecate = require("util-deprecate"); +var WRAPPED_IN_QUOTES = /^('|")([^]*)\1$/; +var warnOfDeprecatedValueAssignment = deprecate(function () {}, "Assigning an attribute a value containing characters that might need to be escaped is deprecated. " + "Call attribute.setValue() instead."); +var warnOfDeprecatedQuotedAssignment = deprecate(function () {}, "Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead."); +var warnOfDeprecatedConstructor = deprecate(function () {}, "Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now."); +function unescapeValue(value) { + var deprecatedUsage = false; + var quoteMark = null; + var unescaped = value; + var m = unescaped.match(WRAPPED_IN_QUOTES); + if (m) { + quoteMark = m[1]; + unescaped = m[2]; + } + unescaped = (0, _unesc["default"])(unescaped); + if (unescaped !== value) { + deprecatedUsage = true; + } + return { + deprecatedUsage: deprecatedUsage, + unescaped: unescaped, + quoteMark: quoteMark + }; +} +function handleDeprecatedContructorOpts(opts) { + if (opts.quoteMark !== undefined) { + return opts; + } + if (opts.value === undefined) { + return opts; + } + warnOfDeprecatedConstructor(); + var _unescapeValue = unescapeValue(opts.value), + quoteMark = _unescapeValue.quoteMark, + unescaped = _unescapeValue.unescaped; + if (!opts.raws) { + opts.raws = {}; + } + if (opts.raws.value === undefined) { + opts.raws.value = opts.value; + } + opts.value = unescaped; + opts.quoteMark = quoteMark; + return opts; +} +var Attribute = /*#__PURE__*/function (_Namespace) { + _inheritsLoose(Attribute, _Namespace); + function Attribute(opts) { + var _this; + if (opts === void 0) { + opts = {}; + } + _this = _Namespace.call(this, handleDeprecatedContructorOpts(opts)) || this; + _this.type = _types.ATTRIBUTE; + _this.raws = _this.raws || {}; + Object.defineProperty(_this.raws, 'unquoted', { + get: deprecate(function () { + return _this.value; + }, "attr.raws.unquoted is deprecated. Call attr.value instead."), + set: deprecate(function () { + return _this.value; + }, "Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.") + }); + _this._constructed = true; + return _this; + } + + /** + * Returns the Attribute's value quoted such that it would be legal to use + * in the value of a css file. The original value's quotation setting + * used for stringification is left unchanged. See `setValue(value, options)` + * if you want to control the quote settings of a new value for the attribute. + * + * You can also change the quotation used for the current value by setting quoteMark. + * + * Options: + * * quoteMark {'"' | "'" | null} - Use this value to quote the value. If this + * option is not set, the original value for quoteMark will be used. If + * indeterminate, a double quote is used. The legal values are: + * * `null` - the value will be unquoted and characters will be escaped as necessary. + * * `'` - the value will be quoted with a single quote and single quotes are escaped. + * * `"` - the value will be quoted with a double quote and double quotes are escaped. + * * preferCurrentQuoteMark {boolean} - if true, prefer the source quote mark + * over the quoteMark option value. + * * smart {boolean} - if true, will select a quote mark based on the value + * and the other options specified here. See the `smartQuoteMark()` + * method. + **/ + var _proto = Attribute.prototype; + _proto.getQuotedValue = function getQuotedValue(options) { + if (options === void 0) { + options = {}; + } + var quoteMark = this._determineQuoteMark(options); + var cssescopts = CSSESC_QUOTE_OPTIONS[quoteMark]; + var escaped = (0, _cssesc["default"])(this._value, cssescopts); + return escaped; + }; + _proto._determineQuoteMark = function _determineQuoteMark(options) { + return options.smart ? this.smartQuoteMark(options) : this.preferredQuoteMark(options); + } + + /** + * Set the unescaped value with the specified quotation options. The value + * provided must not include any wrapping quote marks -- those quotes will + * be interpreted as part of the value and escaped accordingly. + */; + _proto.setValue = function setValue(value, options) { + if (options === void 0) { + options = {}; + } + this._value = value; + this._quoteMark = this._determineQuoteMark(options); + this._syncRawValue(); + } + + /** + * Intelligently select a quoteMark value based on the value's contents. If + * the value is a legal CSS ident, it will not be quoted. Otherwise a quote + * mark will be picked that minimizes the number of escapes. + * + * If there's no clear winner, the quote mark from these options is used, + * then the source quote mark (this is inverted if `preferCurrentQuoteMark` is + * true). If the quoteMark is unspecified, a double quote is used. + * + * @param options This takes the quoteMark and preferCurrentQuoteMark options + * from the quoteValue method. + */; + _proto.smartQuoteMark = function smartQuoteMark(options) { + var v = this.value; + var numSingleQuotes = v.replace(/[^']/g, '').length; + var numDoubleQuotes = v.replace(/[^"]/g, '').length; + if (numSingleQuotes + numDoubleQuotes === 0) { + var escaped = (0, _cssesc["default"])(v, { + isIdentifier: true + }); + if (escaped === v) { + return Attribute.NO_QUOTE; + } else { + var pref = this.preferredQuoteMark(options); + if (pref === Attribute.NO_QUOTE) { + // pick a quote mark that isn't none and see if it's smaller + var quote = this.quoteMark || options.quoteMark || Attribute.DOUBLE_QUOTE; + var opts = CSSESC_QUOTE_OPTIONS[quote]; + var quoteValue = (0, _cssesc["default"])(v, opts); + if (quoteValue.length < escaped.length) { + return quote; + } + } + return pref; + } + } else if (numDoubleQuotes === numSingleQuotes) { + return this.preferredQuoteMark(options); + } else if (numDoubleQuotes < numSingleQuotes) { + return Attribute.DOUBLE_QUOTE; + } else { + return Attribute.SINGLE_QUOTE; + } + } + + /** + * Selects the preferred quote mark based on the options and the current quote mark value. + * If you want the quote mark to depend on the attribute value, call `smartQuoteMark(opts)` + * instead. + */; + _proto.preferredQuoteMark = function preferredQuoteMark(options) { + var quoteMark = options.preferCurrentQuoteMark ? this.quoteMark : options.quoteMark; + if (quoteMark === undefined) { + quoteMark = options.preferCurrentQuoteMark ? options.quoteMark : this.quoteMark; + } + if (quoteMark === undefined) { + quoteMark = Attribute.DOUBLE_QUOTE; + } + return quoteMark; + }; + _proto._syncRawValue = function _syncRawValue() { + var rawValue = (0, _cssesc["default"])(this._value, CSSESC_QUOTE_OPTIONS[this.quoteMark]); + if (rawValue === this._value) { + if (this.raws) { + delete this.raws.value; + } + } else { + this.raws.value = rawValue; + } + }; + _proto._handleEscapes = function _handleEscapes(prop, value) { + if (this._constructed) { + var escaped = (0, _cssesc["default"])(value, { + isIdentifier: true + }); + if (escaped !== value) { + this.raws[prop] = escaped; + } else { + delete this.raws[prop]; + } + } + }; + _proto._spacesFor = function _spacesFor(name) { + var attrSpaces = { + before: '', + after: '' + }; + var spaces = this.spaces[name] || {}; + var rawSpaces = this.raws.spaces && this.raws.spaces[name] || {}; + return Object.assign(attrSpaces, spaces, rawSpaces); + }; + _proto._stringFor = function _stringFor(name, spaceName, concat) { + if (spaceName === void 0) { + spaceName = name; + } + if (concat === void 0) { + concat = defaultAttrConcat; + } + var attrSpaces = this._spacesFor(spaceName); + return concat(this.stringifyProperty(name), attrSpaces); + } + + /** + * returns the offset of the attribute part specified relative to the + * start of the node of the output string. + * + * * "ns" - alias for "namespace" + * * "namespace" - the namespace if it exists. + * * "attribute" - the attribute name + * * "attributeNS" - the start of the attribute or its namespace + * * "operator" - the match operator of the attribute + * * "value" - The value (string or identifier) + * * "insensitive" - the case insensitivity flag; + * @param part One of the possible values inside an attribute. + * @returns -1 if the name is invalid or the value doesn't exist in this attribute. + */; + _proto.offsetOf = function offsetOf(name) { + var count = 1; + var attributeSpaces = this._spacesFor("attribute"); + count += attributeSpaces.before.length; + if (name === "namespace" || name === "ns") { + return this.namespace ? count : -1; + } + if (name === "attributeNS") { + return count; + } + count += this.namespaceString.length; + if (this.namespace) { + count += 1; + } + if (name === "attribute") { + return count; + } + count += this.stringifyProperty("attribute").length; + count += attributeSpaces.after.length; + var operatorSpaces = this._spacesFor("operator"); + count += operatorSpaces.before.length; + var operator = this.stringifyProperty("operator"); + if (name === "operator") { + return operator ? count : -1; + } + count += operator.length; + count += operatorSpaces.after.length; + var valueSpaces = this._spacesFor("value"); + count += valueSpaces.before.length; + var value = this.stringifyProperty("value"); + if (name === "value") { + return value ? count : -1; + } + count += value.length; + count += valueSpaces.after.length; + var insensitiveSpaces = this._spacesFor("insensitive"); + count += insensitiveSpaces.before.length; + if (name === "insensitive") { + return this.insensitive ? count : -1; + } + return -1; + }; + _proto.toString = function toString() { + var _this2 = this; + var selector = [this.rawSpaceBefore, '[']; + selector.push(this._stringFor('qualifiedAttribute', 'attribute')); + if (this.operator && (this.value || this.value === '')) { + selector.push(this._stringFor('operator')); + selector.push(this._stringFor('value')); + selector.push(this._stringFor('insensitiveFlag', 'insensitive', function (attrValue, attrSpaces) { + if (attrValue.length > 0 && !_this2.quoted && attrSpaces.before.length === 0 && !(_this2.spaces.value && _this2.spaces.value.after)) { + attrSpaces.before = " "; + } + return defaultAttrConcat(attrValue, attrSpaces); + })); + } + selector.push(']'); + selector.push(this.rawSpaceAfter); + return selector.join(''); + }; + _createClass(Attribute, [{ + key: "quoted", + get: function get() { + var qm = this.quoteMark; + return qm === "'" || qm === '"'; + }, + set: function set(value) { + warnOfDeprecatedQuotedAssignment(); + } + + /** + * returns a single (`'`) or double (`"`) quote character if the value is quoted. + * returns `null` if the value is not quoted. + * returns `undefined` if the quotation state is unknown (this can happen when + * the attribute is constructed without specifying a quote mark.) + */ + }, { + key: "quoteMark", + get: function get() { + return this._quoteMark; + } + + /** + * Set the quote mark to be used by this attribute's value. + * If the quote mark changes, the raw (escaped) value at `attr.raws.value` of the attribute + * value is updated accordingly. + * + * @param {"'" | '"' | null} quoteMark The quote mark or `null` if the value should be unquoted. + */, + set: function set(quoteMark) { + if (!this._constructed) { + this._quoteMark = quoteMark; + return; + } + if (this._quoteMark !== quoteMark) { + this._quoteMark = quoteMark; + this._syncRawValue(); + } + } + }, { + key: "qualifiedAttribute", + get: function get() { + return this.qualifiedName(this.raws.attribute || this.attribute); + } + }, { + key: "insensitiveFlag", + get: function get() { + return this.insensitive ? 'i' : ''; + } + }, { + key: "value", + get: function get() { + return this._value; + }, + set: + /** + * Before 3.0, the value had to be set to an escaped value including any wrapped + * quote marks. In 3.0, the semantics of `Attribute.value` changed so that the value + * is unescaped during parsing and any quote marks are removed. + * + * Because the ambiguity of this semantic change, if you set `attr.value = newValue`, + * a deprecation warning is raised when the new value contains any characters that would + * require escaping (including if it contains wrapped quotes). + * + * Instead, you should call `attr.setValue(newValue, opts)` and pass options that describe + * how the new value is quoted. + */ + function set(v) { + if (this._constructed) { + var _unescapeValue2 = unescapeValue(v), + deprecatedUsage = _unescapeValue2.deprecatedUsage, + unescaped = _unescapeValue2.unescaped, + quoteMark = _unescapeValue2.quoteMark; + if (deprecatedUsage) { + warnOfDeprecatedValueAssignment(); + } + if (unescaped === this._value && quoteMark === this._quoteMark) { + return; + } + this._value = unescaped; + this._quoteMark = quoteMark; + this._syncRawValue(); + } else { + this._value = v; + } + } + }, { + key: "insensitive", + get: function get() { + return this._insensitive; + } + + /** + * Set the case insensitive flag. + * If the case insensitive flag changes, the raw (escaped) value at `attr.raws.insensitiveFlag` + * of the attribute is updated accordingly. + * + * @param {true | false} insensitive true if the attribute should match case-insensitively. + */, + set: function set(insensitive) { + if (!insensitive) { + this._insensitive = false; + + // "i" and "I" can be used in "this.raws.insensitiveFlag" to store the original notation. + // When setting `attr.insensitive = false` both should be erased to ensure correct serialization. + if (this.raws && (this.raws.insensitiveFlag === 'I' || this.raws.insensitiveFlag === 'i')) { + this.raws.insensitiveFlag = undefined; + } + } + this._insensitive = insensitive; + } + }, { + key: "attribute", + get: function get() { + return this._attribute; + }, + set: function set(name) { + this._handleEscapes("attribute", name); + this._attribute = name; + } + }]); + return Attribute; +}(_namespace["default"]); +exports["default"] = Attribute; +Attribute.NO_QUOTE = null; +Attribute.SINGLE_QUOTE = "'"; +Attribute.DOUBLE_QUOTE = '"'; +var CSSESC_QUOTE_OPTIONS = (_CSSESC_QUOTE_OPTIONS = { + "'": { + quotes: 'single', + wrap: true + }, + '"': { + quotes: 'double', + wrap: true + } +}, _CSSESC_QUOTE_OPTIONS[null] = { + isIdentifier: true +}, _CSSESC_QUOTE_OPTIONS); +function defaultAttrConcat(attrValue, attrSpaces) { + return "" + attrSpaces.before + attrValue + attrSpaces.after; +} \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/className.js b/node_modules/postcss-selector-parser/dist/selectors/className.js new file mode 100644 index 0000000..af32597 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/className.js @@ -0,0 +1,50 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +var _cssesc = _interopRequireDefault(require("cssesc")); +var _util = require("../util"); +var _node = _interopRequireDefault(require("./node")); +var _types = require("./types"); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": 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, 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 _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var ClassName = /*#__PURE__*/function (_Node) { + _inheritsLoose(ClassName, _Node); + function ClassName(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.CLASS; + _this._constructed = true; + return _this; + } + var _proto = ClassName.prototype; + _proto.valueToString = function valueToString() { + return '.' + _Node.prototype.valueToString.call(this); + }; + _createClass(ClassName, [{ + key: "value", + get: function get() { + return this._value; + }, + set: function set(v) { + if (this._constructed) { + var escaped = (0, _cssesc["default"])(v, { + isIdentifier: true + }); + if (escaped !== v) { + (0, _util.ensureObject)(this, "raws"); + this.raws.value = escaped; + } else if (this.raws) { + delete this.raws.value; + } + } + this._value = v; + } + }]); + return ClassName; +}(_node["default"]); +exports["default"] = ClassName; +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/combinator.js b/node_modules/postcss-selector-parser/dist/selectors/combinator.js new file mode 100644 index 0000000..c6449f4 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/combinator.js @@ -0,0 +1,21 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +var _node = _interopRequireDefault(require("./node")); +var _types = require("./types"); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var Combinator = /*#__PURE__*/function (_Node) { + _inheritsLoose(Combinator, _Node); + function Combinator(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.COMBINATOR; + return _this; + } + return Combinator; +}(_node["default"]); +exports["default"] = Combinator; +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/comment.js b/node_modules/postcss-selector-parser/dist/selectors/comment.js new file mode 100644 index 0000000..1709d5b --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/comment.js @@ -0,0 +1,21 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +var _node = _interopRequireDefault(require("./node")); +var _types = require("./types"); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var Comment = /*#__PURE__*/function (_Node) { + _inheritsLoose(Comment, _Node); + function Comment(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.COMMENT; + return _this; + } + return Comment; +}(_node["default"]); +exports["default"] = Comment; +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/constructors.js b/node_modules/postcss-selector-parser/dist/selectors/constructors.js new file mode 100644 index 0000000..6882593 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/constructors.js @@ -0,0 +1,65 @@ +"use strict"; + +exports.__esModule = true; +exports.universal = exports.tag = exports.string = exports.selector = exports.root = exports.pseudo = exports.nesting = exports.id = exports.comment = exports.combinator = exports.className = exports.attribute = void 0; +var _attribute = _interopRequireDefault(require("./attribute")); +var _className = _interopRequireDefault(require("./className")); +var _combinator = _interopRequireDefault(require("./combinator")); +var _comment = _interopRequireDefault(require("./comment")); +var _id = _interopRequireDefault(require("./id")); +var _nesting = _interopRequireDefault(require("./nesting")); +var _pseudo = _interopRequireDefault(require("./pseudo")); +var _root = _interopRequireDefault(require("./root")); +var _selector = _interopRequireDefault(require("./selector")); +var _string = _interopRequireDefault(require("./string")); +var _tag = _interopRequireDefault(require("./tag")); +var _universal = _interopRequireDefault(require("./universal")); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var attribute = function attribute(opts) { + return new _attribute["default"](opts); +}; +exports.attribute = attribute; +var className = function className(opts) { + return new _className["default"](opts); +}; +exports.className = className; +var combinator = function combinator(opts) { + return new _combinator["default"](opts); +}; +exports.combinator = combinator; +var comment = function comment(opts) { + return new _comment["default"](opts); +}; +exports.comment = comment; +var id = function id(opts) { + return new _id["default"](opts); +}; +exports.id = id; +var nesting = function nesting(opts) { + return new _nesting["default"](opts); +}; +exports.nesting = nesting; +var pseudo = function pseudo(opts) { + return new _pseudo["default"](opts); +}; +exports.pseudo = pseudo; +var root = function root(opts) { + return new _root["default"](opts); +}; +exports.root = root; +var selector = function selector(opts) { + return new _selector["default"](opts); +}; +exports.selector = selector; +var string = function string(opts) { + return new _string["default"](opts); +}; +exports.string = string; +var tag = function tag(opts) { + return new _tag["default"](opts); +}; +exports.tag = tag; +var universal = function universal(opts) { + return new _universal["default"](opts); +}; +exports.universal = universal; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/container.js b/node_modules/postcss-selector-parser/dist/selectors/container.js new file mode 100644 index 0000000..8600c54 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/container.js @@ -0,0 +1,308 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +var _node = _interopRequireDefault(require("./node")); +var types = _interopRequireWildcard(require("./types")); +function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } +function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +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 _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); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var Container = /*#__PURE__*/function (_Node) { + _inheritsLoose(Container, _Node); + function Container(opts) { + var _this; + _this = _Node.call(this, opts) || this; + if (!_this.nodes) { + _this.nodes = []; + } + return _this; + } + var _proto = Container.prototype; + _proto.append = function append(selector) { + selector.parent = this; + this.nodes.push(selector); + return this; + }; + _proto.prepend = function prepend(selector) { + selector.parent = this; + this.nodes.unshift(selector); + return this; + }; + _proto.at = function at(index) { + return this.nodes[index]; + }; + _proto.index = function index(child) { + if (typeof child === 'number') { + return child; + } + return this.nodes.indexOf(child); + }; + _proto.removeChild = function removeChild(child) { + child = this.index(child); + this.at(child).parent = undefined; + this.nodes.splice(child, 1); + var index; + for (var id in this.indexes) { + index = this.indexes[id]; + if (index >= child) { + this.indexes[id] = index - 1; + } + } + return this; + }; + _proto.removeAll = function removeAll() { + for (var _iterator = _createForOfIteratorHelperLoose(this.nodes), _step; !(_step = _iterator()).done;) { + var node = _step.value; + node.parent = undefined; + } + this.nodes = []; + return this; + }; + _proto.empty = function empty() { + return this.removeAll(); + }; + _proto.insertAfter = function insertAfter(oldNode, newNode) { + newNode.parent = this; + var oldIndex = this.index(oldNode); + this.nodes.splice(oldIndex + 1, 0, newNode); + newNode.parent = this; + var index; + for (var id in this.indexes) { + index = this.indexes[id]; + if (oldIndex <= index) { + this.indexes[id] = index + 1; + } + } + return this; + }; + _proto.insertBefore = function insertBefore(oldNode, newNode) { + newNode.parent = this; + var oldIndex = this.index(oldNode); + this.nodes.splice(oldIndex, 0, newNode); + newNode.parent = this; + var index; + for (var id in this.indexes) { + index = this.indexes[id]; + if (index <= oldIndex) { + this.indexes[id] = index + 1; + } + } + return this; + }; + _proto._findChildAtPosition = function _findChildAtPosition(line, col) { + var found = undefined; + this.each(function (node) { + if (node.atPosition) { + var foundChild = node.atPosition(line, col); + if (foundChild) { + found = foundChild; + return false; + } + } else if (node.isAtPosition(line, col)) { + found = node; + return false; + } + }); + return found; + } + + /** + * Return the most specific node at the line and column number given. + * The source location is based on the original parsed location, locations aren't + * updated as selector nodes are mutated. + * + * Note that this location is relative to the location of the first character + * of the selector, and not the location of the selector in the overall document + * when used in conjunction with postcss. + * + * If not found, returns undefined. + * @param {number} line The line number of the node to find. (1-based index) + * @param {number} col The column number of the node to find. (1-based index) + */; + _proto.atPosition = function atPosition(line, col) { + if (this.isAtPosition(line, col)) { + return this._findChildAtPosition(line, col) || this; + } else { + return undefined; + } + }; + _proto._inferEndPosition = function _inferEndPosition() { + if (this.last && this.last.source && this.last.source.end) { + this.source = this.source || {}; + this.source.end = this.source.end || {}; + Object.assign(this.source.end, this.last.source.end); + } + }; + _proto.each = function each(callback) { + if (!this.lastEach) { + this.lastEach = 0; + } + if (!this.indexes) { + this.indexes = {}; + } + this.lastEach++; + var id = this.lastEach; + this.indexes[id] = 0; + if (!this.length) { + return undefined; + } + var index, result; + while (this.indexes[id] < this.length) { + index = this.indexes[id]; + result = callback(this.at(index), index); + if (result === false) { + break; + } + this.indexes[id] += 1; + } + delete this.indexes[id]; + if (result === false) { + return false; + } + }; + _proto.walk = function walk(callback) { + return this.each(function (node, i) { + var result = callback(node, i); + if (result !== false && node.length) { + result = node.walk(callback); + } + if (result === false) { + return false; + } + }); + }; + _proto.walkAttributes = function walkAttributes(callback) { + var _this2 = this; + return this.walk(function (selector) { + if (selector.type === types.ATTRIBUTE) { + return callback.call(_this2, selector); + } + }); + }; + _proto.walkClasses = function walkClasses(callback) { + var _this3 = this; + return this.walk(function (selector) { + if (selector.type === types.CLASS) { + return callback.call(_this3, selector); + } + }); + }; + _proto.walkCombinators = function walkCombinators(callback) { + var _this4 = this; + return this.walk(function (selector) { + if (selector.type === types.COMBINATOR) { + return callback.call(_this4, selector); + } + }); + }; + _proto.walkComments = function walkComments(callback) { + var _this5 = this; + return this.walk(function (selector) { + if (selector.type === types.COMMENT) { + return callback.call(_this5, selector); + } + }); + }; + _proto.walkIds = function walkIds(callback) { + var _this6 = this; + return this.walk(function (selector) { + if (selector.type === types.ID) { + return callback.call(_this6, selector); + } + }); + }; + _proto.walkNesting = function walkNesting(callback) { + var _this7 = this; + return this.walk(function (selector) { + if (selector.type === types.NESTING) { + return callback.call(_this7, selector); + } + }); + }; + _proto.walkPseudos = function walkPseudos(callback) { + var _this8 = this; + return this.walk(function (selector) { + if (selector.type === types.PSEUDO) { + return callback.call(_this8, selector); + } + }); + }; + _proto.walkTags = function walkTags(callback) { + var _this9 = this; + return this.walk(function (selector) { + if (selector.type === types.TAG) { + return callback.call(_this9, selector); + } + }); + }; + _proto.walkUniversals = function walkUniversals(callback) { + var _this10 = this; + return this.walk(function (selector) { + if (selector.type === types.UNIVERSAL) { + return callback.call(_this10, selector); + } + }); + }; + _proto.split = function split(callback) { + var _this11 = this; + var current = []; + return this.reduce(function (memo, node, index) { + var split = callback.call(_this11, node); + current.push(node); + if (split) { + memo.push(current); + current = []; + } else if (index === _this11.length - 1) { + memo.push(current); + } + return memo; + }, []); + }; + _proto.map = function map(callback) { + return this.nodes.map(callback); + }; + _proto.reduce = function reduce(callback, memo) { + return this.nodes.reduce(callback, memo); + }; + _proto.every = function every(callback) { + return this.nodes.every(callback); + }; + _proto.some = function some(callback) { + return this.nodes.some(callback); + }; + _proto.filter = function filter(callback) { + return this.nodes.filter(callback); + }; + _proto.sort = function sort(callback) { + return this.nodes.sort(callback); + }; + _proto.toString = function toString() { + return this.map(String).join(''); + }; + _createClass(Container, [{ + key: "first", + get: function get() { + return this.at(0); + } + }, { + key: "last", + get: function get() { + return this.at(this.length - 1); + } + }, { + key: "length", + get: function get() { + return this.nodes.length; + } + }]); + return Container; +}(_node["default"]); +exports["default"] = Container; +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/guards.js b/node_modules/postcss-selector-parser/dist/selectors/guards.js new file mode 100644 index 0000000..f06161e --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/guards.js @@ -0,0 +1,58 @@ +"use strict"; + +exports.__esModule = true; +exports.isComment = exports.isCombinator = exports.isClassName = exports.isAttribute = void 0; +exports.isContainer = isContainer; +exports.isIdentifier = void 0; +exports.isNamespace = isNamespace; +exports.isNesting = void 0; +exports.isNode = isNode; +exports.isPseudo = void 0; +exports.isPseudoClass = isPseudoClass; +exports.isPseudoElement = isPseudoElement; +exports.isUniversal = exports.isTag = exports.isString = exports.isSelector = exports.isRoot = void 0; +var _types = require("./types"); +var _IS_TYPE; +var IS_TYPE = (_IS_TYPE = {}, _IS_TYPE[_types.ATTRIBUTE] = true, _IS_TYPE[_types.CLASS] = true, _IS_TYPE[_types.COMBINATOR] = true, _IS_TYPE[_types.COMMENT] = true, _IS_TYPE[_types.ID] = true, _IS_TYPE[_types.NESTING] = true, _IS_TYPE[_types.PSEUDO] = true, _IS_TYPE[_types.ROOT] = true, _IS_TYPE[_types.SELECTOR] = true, _IS_TYPE[_types.STRING] = true, _IS_TYPE[_types.TAG] = true, _IS_TYPE[_types.UNIVERSAL] = true, _IS_TYPE); +function isNode(node) { + return typeof node === "object" && IS_TYPE[node.type]; +} +function isNodeType(type, node) { + return isNode(node) && node.type === type; +} +var isAttribute = isNodeType.bind(null, _types.ATTRIBUTE); +exports.isAttribute = isAttribute; +var isClassName = isNodeType.bind(null, _types.CLASS); +exports.isClassName = isClassName; +var isCombinator = isNodeType.bind(null, _types.COMBINATOR); +exports.isCombinator = isCombinator; +var isComment = isNodeType.bind(null, _types.COMMENT); +exports.isComment = isComment; +var isIdentifier = isNodeType.bind(null, _types.ID); +exports.isIdentifier = isIdentifier; +var isNesting = isNodeType.bind(null, _types.NESTING); +exports.isNesting = isNesting; +var isPseudo = isNodeType.bind(null, _types.PSEUDO); +exports.isPseudo = isPseudo; +var isRoot = isNodeType.bind(null, _types.ROOT); +exports.isRoot = isRoot; +var isSelector = isNodeType.bind(null, _types.SELECTOR); +exports.isSelector = isSelector; +var isString = isNodeType.bind(null, _types.STRING); +exports.isString = isString; +var isTag = isNodeType.bind(null, _types.TAG); +exports.isTag = isTag; +var isUniversal = isNodeType.bind(null, _types.UNIVERSAL); +exports.isUniversal = isUniversal; +function isPseudoElement(node) { + return isPseudo(node) && node.value && (node.value.startsWith("::") || node.value.toLowerCase() === ":before" || node.value.toLowerCase() === ":after" || node.value.toLowerCase() === ":first-letter" || node.value.toLowerCase() === ":first-line"); +} +function isPseudoClass(node) { + return isPseudo(node) && !isPseudoElement(node); +} +function isContainer(node) { + return !!(isNode(node) && node.walk); +} +function isNamespace(node) { + return isAttribute(node) || isTag(node); +} \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/id.js b/node_modules/postcss-selector-parser/dist/selectors/id.js new file mode 100644 index 0000000..8baef72 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/id.js @@ -0,0 +1,25 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +var _node = _interopRequireDefault(require("./node")); +var _types = require("./types"); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var ID = /*#__PURE__*/function (_Node) { + _inheritsLoose(ID, _Node); + function ID(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.ID; + return _this; + } + var _proto = ID.prototype; + _proto.valueToString = function valueToString() { + return '#' + _Node.prototype.valueToString.call(this); + }; + return ID; +}(_node["default"]); +exports["default"] = ID; +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/index.js b/node_modules/postcss-selector-parser/dist/selectors/index.js new file mode 100644 index 0000000..f1f6b7f --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/index.js @@ -0,0 +1,21 @@ +"use strict"; + +exports.__esModule = true; +var _types = require("./types"); +Object.keys(_types).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _types[key]) return; + exports[key] = _types[key]; +}); +var _constructors = require("./constructors"); +Object.keys(_constructors).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _constructors[key]) return; + exports[key] = _constructors[key]; +}); +var _guards = require("./guards"); +Object.keys(_guards).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _guards[key]) return; + exports[key] = _guards[key]; +}); \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/namespace.js b/node_modules/postcss-selector-parser/dist/selectors/namespace.js new file mode 100644 index 0000000..cc97647 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/namespace.js @@ -0,0 +1,80 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +var _cssesc = _interopRequireDefault(require("cssesc")); +var _util = require("../util"); +var _node = _interopRequireDefault(require("./node")); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": 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, 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 _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var Namespace = /*#__PURE__*/function (_Node) { + _inheritsLoose(Namespace, _Node); + function Namespace() { + return _Node.apply(this, arguments) || this; + } + var _proto = Namespace.prototype; + _proto.qualifiedName = function qualifiedName(value) { + if (this.namespace) { + return this.namespaceString + "|" + value; + } else { + return value; + } + }; + _proto.valueToString = function valueToString() { + return this.qualifiedName(_Node.prototype.valueToString.call(this)); + }; + _createClass(Namespace, [{ + key: "namespace", + get: function get() { + return this._namespace; + }, + set: function set(namespace) { + if (namespace === true || namespace === "*" || namespace === "&") { + this._namespace = namespace; + if (this.raws) { + delete this.raws.namespace; + } + return; + } + var escaped = (0, _cssesc["default"])(namespace, { + isIdentifier: true + }); + this._namespace = namespace; + if (escaped !== namespace) { + (0, _util.ensureObject)(this, "raws"); + this.raws.namespace = escaped; + } else if (this.raws) { + delete this.raws.namespace; + } + } + }, { + key: "ns", + get: function get() { + return this._namespace; + }, + set: function set(namespace) { + this.namespace = namespace; + } + }, { + key: "namespaceString", + get: function get() { + if (this.namespace) { + var ns = this.stringifyProperty("namespace"); + if (ns === true) { + return ''; + } else { + return ns; + } + } else { + return ''; + } + } + }]); + return Namespace; +}(_node["default"]); +exports["default"] = Namespace; +; +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/nesting.js b/node_modules/postcss-selector-parser/dist/selectors/nesting.js new file mode 100644 index 0000000..2189928 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/nesting.js @@ -0,0 +1,22 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +var _node = _interopRequireDefault(require("./node")); +var _types = require("./types"); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var Nesting = /*#__PURE__*/function (_Node) { + _inheritsLoose(Nesting, _Node); + function Nesting(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.NESTING; + _this.value = '&'; + return _this; + } + return Nesting; +}(_node["default"]); +exports["default"] = Nesting; +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/node.js b/node_modules/postcss-selector-parser/dist/selectors/node.js new file mode 100644 index 0000000..9a82951 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/node.js @@ -0,0 +1,192 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +var _util = require("../util"); +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); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +var cloneNode = function cloneNode(obj, parent) { + if (typeof obj !== 'object' || obj === null) { + return obj; + } + var cloned = new obj.constructor(); + for (var i in obj) { + if (!obj.hasOwnProperty(i)) { + continue; + } + var value = obj[i]; + var type = typeof value; + if (i === 'parent' && type === 'object') { + if (parent) { + cloned[i] = parent; + } + } else if (value instanceof Array) { + cloned[i] = value.map(function (j) { + return cloneNode(j, cloned); + }); + } else { + cloned[i] = cloneNode(value, cloned); + } + } + return cloned; +}; +var Node = /*#__PURE__*/function () { + function Node(opts) { + if (opts === void 0) { + opts = {}; + } + Object.assign(this, opts); + this.spaces = this.spaces || {}; + this.spaces.before = this.spaces.before || ''; + this.spaces.after = this.spaces.after || ''; + } + var _proto = Node.prototype; + _proto.remove = function remove() { + if (this.parent) { + this.parent.removeChild(this); + } + this.parent = undefined; + return this; + }; + _proto.replaceWith = function replaceWith() { + if (this.parent) { + for (var index in arguments) { + this.parent.insertBefore(this, arguments[index]); + } + this.remove(); + } + return this; + }; + _proto.next = function next() { + return this.parent.at(this.parent.index(this) + 1); + }; + _proto.prev = function prev() { + return this.parent.at(this.parent.index(this) - 1); + }; + _proto.clone = function clone(overrides) { + if (overrides === void 0) { + overrides = {}; + } + var cloned = cloneNode(this); + for (var name in overrides) { + cloned[name] = overrides[name]; + } + return cloned; + } + + /** + * Some non-standard syntax doesn't follow normal escaping rules for css. + * This allows non standard syntax to be appended to an existing property + * by specifying the escaped value. By specifying the escaped value, + * illegal characters are allowed to be directly inserted into css output. + * @param {string} name the property to set + * @param {any} value the unescaped value of the property + * @param {string} valueEscaped optional. the escaped value of the property. + */; + _proto.appendToPropertyAndEscape = function appendToPropertyAndEscape(name, value, valueEscaped) { + if (!this.raws) { + this.raws = {}; + } + var originalValue = this[name]; + var originalEscaped = this.raws[name]; + this[name] = originalValue + value; // this may trigger a setter that updates raws, so it has to be set first. + if (originalEscaped || valueEscaped !== value) { + this.raws[name] = (originalEscaped || originalValue) + valueEscaped; + } else { + delete this.raws[name]; // delete any escaped value that was created by the setter. + } + } + + /** + * Some non-standard syntax doesn't follow normal escaping rules for css. + * This allows the escaped value to be specified directly, allowing illegal + * characters to be directly inserted into css output. + * @param {string} name the property to set + * @param {any} value the unescaped value of the property + * @param {string} valueEscaped the escaped value of the property. + */; + _proto.setPropertyAndEscape = function setPropertyAndEscape(name, value, valueEscaped) { + if (!this.raws) { + this.raws = {}; + } + this[name] = value; // this may trigger a setter that updates raws, so it has to be set first. + this.raws[name] = valueEscaped; + } + + /** + * When you want a value to passed through to CSS directly. This method + * deletes the corresponding raw value causing the stringifier to fallback + * to the unescaped value. + * @param {string} name the property to set. + * @param {any} value The value that is both escaped and unescaped. + */; + _proto.setPropertyWithoutEscape = function setPropertyWithoutEscape(name, value) { + this[name] = value; // this may trigger a setter that updates raws, so it has to be set first. + if (this.raws) { + delete this.raws[name]; + } + } + + /** + * + * @param {number} line The number (starting with 1) + * @param {number} column The column number (starting with 1) + */; + _proto.isAtPosition = function isAtPosition(line, column) { + if (this.source && this.source.start && this.source.end) { + if (this.source.start.line > line) { + return false; + } + if (this.source.end.line < line) { + return false; + } + if (this.source.start.line === line && this.source.start.column > column) { + return false; + } + if (this.source.end.line === line && this.source.end.column < column) { + return false; + } + return true; + } + return undefined; + }; + _proto.stringifyProperty = function stringifyProperty(name) { + return this.raws && this.raws[name] || this[name]; + }; + _proto.valueToString = function valueToString() { + return String(this.stringifyProperty("value")); + }; + _proto.toString = function toString() { + return [this.rawSpaceBefore, this.valueToString(), this.rawSpaceAfter].join(''); + }; + _createClass(Node, [{ + key: "rawSpaceBefore", + get: function get() { + var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.before; + if (rawSpace === undefined) { + rawSpace = this.spaces && this.spaces.before; + } + return rawSpace || ""; + }, + set: function set(raw) { + (0, _util.ensureObject)(this, "raws", "spaces"); + this.raws.spaces.before = raw; + } + }, { + key: "rawSpaceAfter", + get: function get() { + var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.after; + if (rawSpace === undefined) { + rawSpace = this.spaces.after; + } + return rawSpace || ""; + }, + set: function set(raw) { + (0, _util.ensureObject)(this, "raws", "spaces"); + this.raws.spaces.after = raw; + } + }]); + return Node; +}(); +exports["default"] = Node; +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/pseudo.js b/node_modules/postcss-selector-parser/dist/selectors/pseudo.js new file mode 100644 index 0000000..4371e59 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/pseudo.js @@ -0,0 +1,26 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +var _container = _interopRequireDefault(require("./container")); +var _types = require("./types"); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var Pseudo = /*#__PURE__*/function (_Container) { + _inheritsLoose(Pseudo, _Container); + function Pseudo(opts) { + var _this; + _this = _Container.call(this, opts) || this; + _this.type = _types.PSEUDO; + return _this; + } + var _proto = Pseudo.prototype; + _proto.toString = function toString() { + var params = this.length ? '(' + this.map(String).join(',') + ')' : ''; + return [this.rawSpaceBefore, this.stringifyProperty("value"), params, this.rawSpaceAfter].join(''); + }; + return Pseudo; +}(_container["default"]); +exports["default"] = Pseudo; +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/root.js b/node_modules/postcss-selector-parser/dist/selectors/root.js new file mode 100644 index 0000000..8c599d1 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/root.js @@ -0,0 +1,44 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +var _container = _interopRequireDefault(require("./container")); +var _types = require("./types"); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": 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, 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 _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var Root = /*#__PURE__*/function (_Container) { + _inheritsLoose(Root, _Container); + function Root(opts) { + var _this; + _this = _Container.call(this, opts) || this; + _this.type = _types.ROOT; + return _this; + } + var _proto = Root.prototype; + _proto.toString = function toString() { + var str = this.reduce(function (memo, selector) { + memo.push(String(selector)); + return memo; + }, []).join(','); + return this.trailingComma ? str + ',' : str; + }; + _proto.error = function error(message, options) { + if (this._error) { + return this._error(message, options); + } else { + return new Error(message); + } + }; + _createClass(Root, [{ + key: "errorGenerator", + set: function set(handler) { + this._error = handler; + } + }]); + return Root; +}(_container["default"]); +exports["default"] = Root; +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/selector.js b/node_modules/postcss-selector-parser/dist/selectors/selector.js new file mode 100644 index 0000000..8cc4bc1 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/selector.js @@ -0,0 +1,21 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +var _container = _interopRequireDefault(require("./container")); +var _types = require("./types"); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var Selector = /*#__PURE__*/function (_Container) { + _inheritsLoose(Selector, _Container); + function Selector(opts) { + var _this; + _this = _Container.call(this, opts) || this; + _this.type = _types.SELECTOR; + return _this; + } + return Selector; +}(_container["default"]); +exports["default"] = Selector; +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/string.js b/node_modules/postcss-selector-parser/dist/selectors/string.js new file mode 100644 index 0000000..4749791 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/string.js @@ -0,0 +1,21 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +var _node = _interopRequireDefault(require("./node")); +var _types = require("./types"); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var String = /*#__PURE__*/function (_Node) { + _inheritsLoose(String, _Node); + function String(opts) { + var _this; + _this = _Node.call(this, opts) || this; + _this.type = _types.STRING; + return _this; + } + return String; +}(_node["default"]); +exports["default"] = String; +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/tag.js b/node_modules/postcss-selector-parser/dist/selectors/tag.js new file mode 100644 index 0000000..224e74d --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/tag.js @@ -0,0 +1,21 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +var _namespace = _interopRequireDefault(require("./namespace")); +var _types = require("./types"); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var Tag = /*#__PURE__*/function (_Namespace) { + _inheritsLoose(Tag, _Namespace); + function Tag(opts) { + var _this; + _this = _Namespace.call(this, opts) || this; + _this.type = _types.TAG; + return _this; + } + return Tag; +}(_namespace["default"]); +exports["default"] = Tag; +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/types.js b/node_modules/postcss-selector-parser/dist/selectors/types.js new file mode 100644 index 0000000..824cc0c --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/types.js @@ -0,0 +1,28 @@ +"use strict"; + +exports.__esModule = true; +exports.UNIVERSAL = exports.TAG = exports.STRING = exports.SELECTOR = exports.ROOT = exports.PSEUDO = exports.NESTING = exports.ID = exports.COMMENT = exports.COMBINATOR = exports.CLASS = exports.ATTRIBUTE = void 0; +var TAG = 'tag'; +exports.TAG = TAG; +var STRING = 'string'; +exports.STRING = STRING; +var SELECTOR = 'selector'; +exports.SELECTOR = SELECTOR; +var ROOT = 'root'; +exports.ROOT = ROOT; +var PSEUDO = 'pseudo'; +exports.PSEUDO = PSEUDO; +var NESTING = 'nesting'; +exports.NESTING = NESTING; +var ID = 'id'; +exports.ID = ID; +var COMMENT = 'comment'; +exports.COMMENT = COMMENT; +var COMBINATOR = 'combinator'; +exports.COMBINATOR = COMBINATOR; +var CLASS = 'class'; +exports.CLASS = CLASS; +var ATTRIBUTE = 'attribute'; +exports.ATTRIBUTE = ATTRIBUTE; +var UNIVERSAL = 'universal'; +exports.UNIVERSAL = UNIVERSAL; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/selectors/universal.js b/node_modules/postcss-selector-parser/dist/selectors/universal.js new file mode 100644 index 0000000..5b58743 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/selectors/universal.js @@ -0,0 +1,22 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +var _namespace = _interopRequireDefault(require("./namespace")); +var _types = require("./types"); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var Universal = /*#__PURE__*/function (_Namespace) { + _inheritsLoose(Universal, _Namespace); + function Universal(opts) { + var _this; + _this = _Namespace.call(this, opts) || this; + _this.type = _types.UNIVERSAL; + _this.value = '*'; + return _this; + } + return Universal; +}(_namespace["default"]); +exports["default"] = Universal; +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/sortAscending.js b/node_modules/postcss-selector-parser/dist/sortAscending.js new file mode 100644 index 0000000..5666d5d --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/sortAscending.js @@ -0,0 +1,11 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = sortAscending; +function sortAscending(list) { + return list.sort(function (a, b) { + return a - b; + }); +} +; +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/tokenTypes.js b/node_modules/postcss-selector-parser/dist/tokenTypes.js new file mode 100644 index 0000000..59d8e6c --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/tokenTypes.js @@ -0,0 +1,70 @@ +"use strict"; + +exports.__esModule = true; +exports.word = exports.tilde = exports.tab = exports.str = exports.space = exports.slash = exports.singleQuote = exports.semicolon = exports.plus = exports.pipe = exports.openSquare = exports.openParenthesis = exports.newline = exports.greaterThan = exports.feed = exports.equals = exports.doubleQuote = exports.dollar = exports.cr = exports.comment = exports.comma = exports.combinator = exports.colon = exports.closeSquare = exports.closeParenthesis = exports.caret = exports.bang = exports.backslash = exports.at = exports.asterisk = exports.ampersand = void 0; +var ampersand = 38; // `&`.charCodeAt(0); +exports.ampersand = ampersand; +var asterisk = 42; // `*`.charCodeAt(0); +exports.asterisk = asterisk; +var at = 64; // `@`.charCodeAt(0); +exports.at = at; +var comma = 44; // `,`.charCodeAt(0); +exports.comma = comma; +var colon = 58; // `:`.charCodeAt(0); +exports.colon = colon; +var semicolon = 59; // `;`.charCodeAt(0); +exports.semicolon = semicolon; +var openParenthesis = 40; // `(`.charCodeAt(0); +exports.openParenthesis = openParenthesis; +var closeParenthesis = 41; // `)`.charCodeAt(0); +exports.closeParenthesis = closeParenthesis; +var openSquare = 91; // `[`.charCodeAt(0); +exports.openSquare = openSquare; +var closeSquare = 93; // `]`.charCodeAt(0); +exports.closeSquare = closeSquare; +var dollar = 36; // `$`.charCodeAt(0); +exports.dollar = dollar; +var tilde = 126; // `~`.charCodeAt(0); +exports.tilde = tilde; +var caret = 94; // `^`.charCodeAt(0); +exports.caret = caret; +var plus = 43; // `+`.charCodeAt(0); +exports.plus = plus; +var equals = 61; // `=`.charCodeAt(0); +exports.equals = equals; +var pipe = 124; // `|`.charCodeAt(0); +exports.pipe = pipe; +var greaterThan = 62; // `>`.charCodeAt(0); +exports.greaterThan = greaterThan; +var space = 32; // ` `.charCodeAt(0); +exports.space = space; +var singleQuote = 39; // `'`.charCodeAt(0); +exports.singleQuote = singleQuote; +var doubleQuote = 34; // `"`.charCodeAt(0); +exports.doubleQuote = doubleQuote; +var slash = 47; // `/`.charCodeAt(0); +exports.slash = slash; +var bang = 33; // `!`.charCodeAt(0); +exports.bang = bang; +var backslash = 92; // '\\'.charCodeAt(0); +exports.backslash = backslash; +var cr = 13; // '\r'.charCodeAt(0); +exports.cr = cr; +var feed = 12; // '\f'.charCodeAt(0); +exports.feed = feed; +var newline = 10; // '\n'.charCodeAt(0); +exports.newline = newline; +var tab = 9; // '\t'.charCodeAt(0); + +// Expose aliases primarily for readability. +exports.tab = tab; +var str = singleQuote; + +// No good single character representation! +exports.str = str; +var comment = -1; +exports.comment = comment; +var word = -2; +exports.word = word; +var combinator = -3; +exports.combinator = combinator; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/tokenize.js b/node_modules/postcss-selector-parser/dist/tokenize.js new file mode 100644 index 0000000..bf61d26 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/tokenize.js @@ -0,0 +1,239 @@ +"use strict"; + +exports.__esModule = true; +exports.FIELDS = void 0; +exports["default"] = tokenize; +var t = _interopRequireWildcard(require("./tokenTypes")); +var _unescapable, _wordDelimiters; +function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } +function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } +var unescapable = (_unescapable = {}, _unescapable[t.tab] = true, _unescapable[t.newline] = true, _unescapable[t.cr] = true, _unescapable[t.feed] = true, _unescapable); +var wordDelimiters = (_wordDelimiters = {}, _wordDelimiters[t.space] = true, _wordDelimiters[t.tab] = true, _wordDelimiters[t.newline] = true, _wordDelimiters[t.cr] = true, _wordDelimiters[t.feed] = true, _wordDelimiters[t.ampersand] = true, _wordDelimiters[t.asterisk] = true, _wordDelimiters[t.bang] = true, _wordDelimiters[t.comma] = true, _wordDelimiters[t.colon] = true, _wordDelimiters[t.semicolon] = true, _wordDelimiters[t.openParenthesis] = true, _wordDelimiters[t.closeParenthesis] = true, _wordDelimiters[t.openSquare] = true, _wordDelimiters[t.closeSquare] = true, _wordDelimiters[t.singleQuote] = true, _wordDelimiters[t.doubleQuote] = true, _wordDelimiters[t.plus] = true, _wordDelimiters[t.pipe] = true, _wordDelimiters[t.tilde] = true, _wordDelimiters[t.greaterThan] = true, _wordDelimiters[t.equals] = true, _wordDelimiters[t.dollar] = true, _wordDelimiters[t.caret] = true, _wordDelimiters[t.slash] = true, _wordDelimiters); +var hex = {}; +var hexChars = "0123456789abcdefABCDEF"; +for (var i = 0; i < hexChars.length; i++) { + hex[hexChars.charCodeAt(i)] = true; +} + +/** + * Returns the last index of the bar css word + * @param {string} css The string in which the word begins + * @param {number} start The index into the string where word's first letter occurs + */ +function consumeWord(css, start) { + var next = start; + var code; + do { + code = css.charCodeAt(next); + if (wordDelimiters[code]) { + return next - 1; + } else if (code === t.backslash) { + next = consumeEscape(css, next) + 1; + } else { + // All other characters are part of the word + next++; + } + } while (next < css.length); + return next - 1; +} + +/** + * Returns the last index of the escape sequence + * @param {string} css The string in which the sequence begins + * @param {number} start The index into the string where escape character (`\`) occurs. + */ +function consumeEscape(css, start) { + var next = start; + var code = css.charCodeAt(next + 1); + if (unescapable[code]) { + // just consume the escape char + } else if (hex[code]) { + var hexDigits = 0; + // consume up to 6 hex chars + do { + next++; + hexDigits++; + code = css.charCodeAt(next + 1); + } while (hex[code] && hexDigits < 6); + // if fewer than 6 hex chars, a trailing space ends the escape + if (hexDigits < 6 && code === t.space) { + next++; + } + } else { + // the next char is part of the current word + next++; + } + return next; +} +var FIELDS = { + TYPE: 0, + START_LINE: 1, + START_COL: 2, + END_LINE: 3, + END_COL: 4, + START_POS: 5, + END_POS: 6 +}; +exports.FIELDS = FIELDS; +function tokenize(input) { + var tokens = []; + var css = input.css.valueOf(); + var _css = css, + length = _css.length; + var offset = -1; + var line = 1; + var start = 0; + var end = 0; + var code, content, endColumn, endLine, escaped, escapePos, last, lines, next, nextLine, nextOffset, quote, tokenType; + function unclosed(what, fix) { + if (input.safe) { + // fyi: this is never set to true. + css += fix; + next = css.length - 1; + } else { + throw input.error('Unclosed ' + what, line, start - offset, start); + } + } + while (start < length) { + code = css.charCodeAt(start); + if (code === t.newline) { + offset = start; + line += 1; + } + switch (code) { + case t.space: + case t.tab: + case t.newline: + case t.cr: + case t.feed: + next = start; + do { + next += 1; + code = css.charCodeAt(next); + if (code === t.newline) { + offset = next; + line += 1; + } + } while (code === t.space || code === t.newline || code === t.tab || code === t.cr || code === t.feed); + tokenType = t.space; + endLine = line; + endColumn = next - offset - 1; + end = next; + break; + case t.plus: + case t.greaterThan: + case t.tilde: + case t.pipe: + next = start; + do { + next += 1; + code = css.charCodeAt(next); + } while (code === t.plus || code === t.greaterThan || code === t.tilde || code === t.pipe); + tokenType = t.combinator; + endLine = line; + endColumn = start - offset; + end = next; + break; + + // Consume these characters as single tokens. + case t.asterisk: + case t.ampersand: + case t.bang: + case t.comma: + case t.equals: + case t.dollar: + case t.caret: + case t.openSquare: + case t.closeSquare: + case t.colon: + case t.semicolon: + case t.openParenthesis: + case t.closeParenthesis: + next = start; + tokenType = code; + endLine = line; + endColumn = start - offset; + end = next + 1; + break; + case t.singleQuote: + case t.doubleQuote: + quote = code === t.singleQuote ? "'" : '"'; + next = start; + do { + escaped = false; + next = css.indexOf(quote, next + 1); + if (next === -1) { + unclosed('quote', quote); + } + escapePos = next; + while (css.charCodeAt(escapePos - 1) === t.backslash) { + escapePos -= 1; + escaped = !escaped; + } + } while (escaped); + tokenType = t.str; + endLine = line; + endColumn = start - offset; + end = next + 1; + break; + default: + if (code === t.slash && css.charCodeAt(start + 1) === t.asterisk) { + next = css.indexOf('*/', start + 2) + 1; + if (next === 0) { + unclosed('comment', '*/'); + } + content = css.slice(start, next + 1); + lines = content.split('\n'); + last = lines.length - 1; + if (last > 0) { + nextLine = line + last; + nextOffset = next - lines[last].length; + } else { + nextLine = line; + nextOffset = offset; + } + tokenType = t.comment; + line = nextLine; + endLine = nextLine; + endColumn = next - nextOffset; + } else if (code === t.slash) { + next = start; + tokenType = code; + endLine = line; + endColumn = start - offset; + end = next + 1; + } else { + next = consumeWord(css, start); + tokenType = t.word; + endLine = line; + endColumn = next - offset; + } + end = next + 1; + break; + } + + // Ensure that the token structure remains consistent + tokens.push([tokenType, + // [0] Token type + line, + // [1] Starting line + start - offset, + // [2] Starting column + endLine, + // [3] Ending line + endColumn, + // [4] Ending column + start, + // [5] Start position / Source index + end // [6] End position + ]); + + // Reset offset for the next token + if (nextOffset) { + offset = nextOffset; + nextOffset = null; + } + start = end; + } + return tokens; +} \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/util/ensureObject.js b/node_modules/postcss-selector-parser/dist/util/ensureObject.js new file mode 100644 index 0000000..494941a --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/util/ensureObject.js @@ -0,0 +1,17 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = ensureObject; +function ensureObject(obj) { + for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + props[_key - 1] = arguments[_key]; + } + while (props.length > 0) { + var prop = props.shift(); + if (!obj[prop]) { + obj[prop] = {}; + } + obj = obj[prop]; + } +} +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/util/getProp.js b/node_modules/postcss-selector-parser/dist/util/getProp.js new file mode 100644 index 0000000..a2b7a07 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/util/getProp.js @@ -0,0 +1,18 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = getProp; +function getProp(obj) { + for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + props[_key - 1] = arguments[_key]; + } + while (props.length > 0) { + var prop = props.shift(); + if (!obj[prop]) { + return undefined; + } + obj = obj[prop]; + } + return obj; +} +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/util/index.js b/node_modules/postcss-selector-parser/dist/util/index.js new file mode 100644 index 0000000..f96ec11 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/util/index.js @@ -0,0 +1,13 @@ +"use strict"; + +exports.__esModule = true; +exports.unesc = exports.stripComments = exports.getProp = exports.ensureObject = void 0; +var _unesc = _interopRequireDefault(require("./unesc")); +exports.unesc = _unesc["default"]; +var _getProp = _interopRequireDefault(require("./getProp")); +exports.getProp = _getProp["default"]; +var _ensureObject = _interopRequireDefault(require("./ensureObject")); +exports.ensureObject = _ensureObject["default"]; +var _stripComments = _interopRequireDefault(require("./stripComments")); +exports.stripComments = _stripComments["default"]; +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/util/stripComments.js b/node_modules/postcss-selector-parser/dist/util/stripComments.js new file mode 100644 index 0000000..0baa0e0 --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/util/stripComments.js @@ -0,0 +1,21 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = stripComments; +function stripComments(str) { + var s = ""; + var commentStart = str.indexOf("/*"); + var lastEnd = 0; + while (commentStart >= 0) { + s = s + str.slice(lastEnd, commentStart); + var commentEnd = str.indexOf("*/", commentStart + 2); + if (commentEnd < 0) { + return s; + } + lastEnd = commentEnd + 2; + commentStart = str.indexOf("/*", lastEnd); + } + s = s + str.slice(lastEnd); + return s; +} +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/dist/util/unesc.js b/node_modules/postcss-selector-parser/dist/util/unesc.js new file mode 100644 index 0000000..87396be --- /dev/null +++ b/node_modules/postcss-selector-parser/dist/util/unesc.js @@ -0,0 +1,76 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = unesc; +// Many thanks for this post which made this migration much easier. +// https://mathiasbynens.be/notes/css-escapes + +/** + * + * @param {string} str + * @returns {[string, number]|undefined} + */ +function gobbleHex(str) { + var lower = str.toLowerCase(); + var hex = ''; + var spaceTerminated = false; + for (var i = 0; i < 6 && lower[i] !== undefined; i++) { + var code = lower.charCodeAt(i); + // check to see if we are dealing with a valid hex char [a-f|0-9] + var valid = code >= 97 && code <= 102 || code >= 48 && code <= 57; + // https://drafts.csswg.org/css-syntax/#consume-escaped-code-point + spaceTerminated = code === 32; + if (!valid) { + break; + } + hex += lower[i]; + } + if (hex.length === 0) { + return undefined; + } + var codePoint = parseInt(hex, 16); + var isSurrogate = codePoint >= 0xD800 && codePoint <= 0xDFFF; + // Add special case for + // "If this number is zero, or is for a surrogate, or is greater than the maximum allowed code point" + // https://drafts.csswg.org/css-syntax/#maximum-allowed-code-point + if (isSurrogate || codePoint === 0x0000 || codePoint > 0x10FFFF) { + return ["\uFFFD", hex.length + (spaceTerminated ? 1 : 0)]; + } + return [String.fromCodePoint(codePoint), hex.length + (spaceTerminated ? 1 : 0)]; +} +var CONTAINS_ESCAPE = /\\/; +function unesc(str) { + var needToProcess = CONTAINS_ESCAPE.test(str); + if (!needToProcess) { + return str; + } + var ret = ""; + for (var i = 0; i < str.length; i++) { + if (str[i] === "\\") { + var gobbled = gobbleHex(str.slice(i + 1, i + 7)); + if (gobbled !== undefined) { + ret += gobbled[0]; + i += gobbled[1]; + continue; + } + + // Retain a pair of \\ if double escaped `\\\\` + // https://github.com/postcss/postcss-selector-parser/commit/268c9a7656fb53f543dc620aa5b73a30ec3ff20e + if (str[i + 1] === "\\") { + ret += "\\"; + i++; + continue; + } + + // if \\ is at the end of the string retain it + // https://github.com/postcss/postcss-selector-parser/commit/01a6b346e3612ce1ab20219acc26abdc259ccefb + if (str.length === i + 1) { + ret += str[i]; + } + continue; + } + ret += str[i]; + } + return ret; +} +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/postcss-selector-parser/package.json b/node_modules/postcss-selector-parser/package.json new file mode 100644 index 0000000..0b074d0 --- /dev/null +++ b/node_modules/postcss-selector-parser/package.json @@ -0,0 +1,80 @@ +{ + "name": "postcss-selector-parser", + "version": "6.1.2", + "devDependencies": { + "@babel/cli": "^7.11.6", + "@babel/core": "^7.11.6", + "@babel/eslint-parser": "^7.11.5", + "@babel/eslint-plugin": "^7.11.5", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/preset-env": "^7.11.5", + "@babel/register": "^7.11.5", + "ava": "^5.1.0", + "babel-plugin-add-module-exports": "^1.0.4", + "coveralls": "^3.1.0", + "del-cli": "^5.0.0", + "eslint": "^8.28.0", + "eslint-plugin-import": "^2.26.0", + "glob": "^8.0.3", + "minimist": "^1.2.5", + "nyc": "^15.1.0", + "postcss": "^8.4.31", + "semver": "^7.3.2", + "typescript": "^4.0.3" + }, + "main": "dist/index.js", + "types": "postcss-selector-parser.d.ts", + "files": [ + "API.md", + "CHANGELOG.md", + "LICENSE-MIT", + "dist", + "postcss-selector-parser.d.ts", + "!**/__tests__" + ], + "scripts": { + "typecheck": "tsc --noEmit --strict postcss-selector-parser.d.ts postcss-selector-parser.test.ts", + "pretest": "eslint src && npm run typecheck", + "prepare": "del-cli dist && BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/", + "lintfix": "eslint --fix src", + "report": "nyc report --reporter=html", + "test": "nyc ava src/__tests__/*.mjs", + "testone": "ava" + }, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "license": "MIT", + "engines": { + "node": ">=4" + }, + "homepage": "https://github.com/postcss/postcss-selector-parser", + "contributors": [ + { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com", + "url": "http://beneb.info" + }, + { + "name": "Chris Eppstein", + "email": "chris@eppsteins.net", + "url": "http://twitter.com/chriseppstein" + } + ], + "repository": "postcss/postcss-selector-parser", + "ava": { + "require": [ + "@babel/register" + ], + "concurrency": 5, + "timeout": "25s", + "nodeArguments": [] + }, + "nyc": { + "exclude": [ + "node_modules", + "**/__tests__" + ] + } +} diff --git a/node_modules/postcss-selector-parser/postcss-selector-parser.d.ts b/node_modules/postcss-selector-parser/postcss-selector-parser.d.ts new file mode 100644 index 0000000..af609e6 --- /dev/null +++ b/node_modules/postcss-selector-parser/postcss-selector-parser.d.ts @@ -0,0 +1,555 @@ +// Type definitions for postcss-selector-parser 2.2.3 +// Definitions by: Chris Eppstein + +/*~ Note that ES6 modules cannot directly export callable functions. + *~ This file should be imported using the CommonJS-style: + *~ import x = require('someLibrary'); + *~ + *~ Refer to the documentation to understand common + *~ workarounds for this limitation of ES6 modules. + */ + +/*~ This declaration specifies that the function + *~ is the exported object from the file + */ +export = parser; + +// A type that's T but not U. +type Diff = T extends U ? never : T; + +// TODO: Conditional types in TS 1.8 will really clean this up. +declare function parser(): parser.Processor; +declare function parser(processor: parser.AsyncProcessor): parser.Processor; +declare function parser(processor: parser.AsyncProcessor): parser.Processor; +declare function parser(processor: parser.SyncProcessor): parser.Processor; +declare function parser(processor: parser.SyncProcessor): parser.Processor; +declare function parser(processor?: parser.SyncProcessor | parser.AsyncProcessor): parser.Processor; + +/*~ If you want to expose types from your module as well, you can + *~ place them in this block. Often you will want to describe the + *~ shape of the return type of the function; that type should + *~ be declared in here, as this example shows. + */ +declare namespace parser { + /* copied from postcss -- so we don't need to add a dependency */ + type ErrorOptions = { + plugin?: string; + word?: string; + index?: number + }; + /* the bits we use of postcss.Rule, copied from postcss -- so we don't need to add a dependency */ + type PostCSSRuleNode = { + selector: string + /** + * @returns postcss.CssSyntaxError but it's a complex object, caller + * should cast to it if they have a dependency on postcss. + */ + error(message: string, options?: ErrorOptions): Error; + }; + /** Accepts a string */ + type Selectors = string | PostCSSRuleNode + type ProcessorFn = (root: parser.Root) => ReturnType; + type SyncProcessor = ProcessorFn; + type AsyncProcessor = ProcessorFn>; + + const TAG: "tag"; + const STRING: "string"; + const SELECTOR: "selector"; + const ROOT: "root"; + const PSEUDO: "pseudo"; + const NESTING: "nesting"; + const ID: "id"; + const COMMENT: "comment"; + const COMBINATOR: "combinator"; + const CLASS: "class"; + const ATTRIBUTE: "attribute"; + const UNIVERSAL: "universal"; + + interface NodeTypes { + tag: Tag, + string: String, + selector: Selector, + root: Root, + pseudo: Pseudo, + nesting: Nesting, + id: Identifier, + comment: Comment, + combinator: Combinator, + class: ClassName, + attribute: Attribute, + universal: Universal + } + + type Node = NodeTypes[keyof NodeTypes]; + + function isNode(node: any): node is Node; + + interface Options { + /** + * Preserve whitespace when true. Default: false; + */ + lossless: boolean; + /** + * When true and a postcss.Rule is passed, set the result of + * processing back onto the rule when done. Default: false. + */ + updateSelector: boolean; + } + class Processor< + TransformType = never, + SyncSelectorsType extends Selectors | never = Selectors + > { + res: Root; + readonly result: String; + ast(selectors: Selectors, options?: Partial): Promise; + astSync(selectors: SyncSelectorsType, options?: Partial): Root; + transform(selectors: Selectors, options?: Partial): Promise; + transformSync(selectors: SyncSelectorsType, options?: Partial): TransformType; + process(selectors: Selectors, options?: Partial): Promise; + processSync(selectors: SyncSelectorsType, options?: Partial): string; + } + interface ParserOptions { + css: string; + error: (message: string, options: ErrorOptions) => Error; + options: Options; + } + class Parser { + input: ParserOptions; + lossy: boolean; + position: number; + root: Root; + selectors: string; + current: Selector; + constructor(input: ParserOptions); + /** + * Raises an error, if the processor is invoked on + * a postcss Rule node, a better error message is raised. + */ + error(message: string, options?: ErrorOptions): void; + } + interface NodeSource { + start?: { + line: number, + column: number + }, + end?: { + line: number, + column: number + } + } + interface SpaceAround { + before: string; + after: string; + } + interface Spaces extends SpaceAround { + [spaceType: string]: string | Partial | undefined; + } + interface NodeOptions { + value: Value; + spaces?: Partial; + source?: NodeSource; + sourceIndex?: number; + } + interface Base< + Value extends string | undefined = string, + ParentType extends Container | undefined = Container | undefined + > { + type: keyof NodeTypes; + parent: ParentType; + value: Value; + spaces: Spaces; + source?: NodeSource; + sourceIndex: number; + rawSpaceBefore: string; + rawSpaceAfter: string; + remove(): Node; + replaceWith(...nodes: Node[]): Node; + next(): Node | undefined; + prev(): Node | undefined; + clone(opts?: {[override: string]:any}): this; + /** + * Return whether this node includes the character at the position of the given line and column. + * Returns undefined if the nodes lack sufficient source metadata to determine the position. + * @param line 1-index based line number relative to the start of the selector. + * @param column 1-index based column number relative to the start of the selector. + */ + isAtPosition(line: number, column: number): boolean | undefined; + /** + * Some non-standard syntax doesn't follow normal escaping rules for css, + * this allows the escaped value to be specified directly, allowing illegal characters to be + * directly inserted into css output. + * @param name the property to set + * @param value the unescaped value of the property + * @param valueEscaped optional. the escaped value of the property. + */ + setPropertyAndEscape(name: string, value: any, valueEscaped: string): void; + /** + * When you want a value to passed through to CSS directly. This method + * deletes the corresponding raw value causing the stringifier to fallback + * to the unescaped value. + * @param name the property to set. + * @param value The value that is both escaped and unescaped. + */ + setPropertyWithoutEscape(name: string, value: any): void; + /** + * Some non-standard syntax doesn't follow normal escaping rules for css. + * This allows non standard syntax to be appended to an existing property + * by specifying the escaped value. By specifying the escaped value, + * illegal characters are allowed to be directly inserted into css output. + * @param {string} name the property to set + * @param {any} value the unescaped value of the property + * @param {string} valueEscaped optional. the escaped value of the property. + */ + appendToPropertyAndEscape(name: string, value: any, valueEscaped: string): void; + toString(): string; + } + interface ContainerOptions extends NodeOptions { + nodes?: Array; + } + interface Container< + Value extends string | undefined = string, + Child extends Node = Node + > extends Base { + nodes: Array; + append(selector: Child): this; + prepend(selector: Child): this; + at(index: number): Child; + /** + * Return the most specific node at the line and column number given. + * The source location is based on the original parsed location, locations aren't + * updated as selector nodes are mutated. + * + * Note that this location is relative to the location of the first character + * of the selector, and not the location of the selector in the overall document + * when used in conjunction with postcss. + * + * If not found, returns undefined. + * @param line The line number of the node to find. (1-based index) + * @param col The column number of the node to find. (1-based index) + */ + atPosition(line: number, column: number): Child; + index(child: Child): number; + readonly first: Child; + readonly last: Child; + readonly length: number; + removeChild(child: Child): this; + removeAll(): this; + empty(): this; + insertAfter(oldNode: Child, newNode: Child): this; + insertBefore(oldNode: Child, newNode: Child): this; + each(callback: (node: Child, index: number) => boolean | void): boolean | undefined; + walk( + callback: (node: Node, index: number) => boolean | void + ): boolean | undefined; + walkAttributes( + callback: (node: Attribute) => boolean | void + ): boolean | undefined; + walkClasses( + callback: (node: ClassName) => boolean | void + ): boolean | undefined; + walkCombinators( + callback: (node: Combinator) => boolean | void + ): boolean | undefined; + walkComments( + callback: (node: Comment) => boolean | void + ): boolean | undefined; + walkIds( + callback: (node: Identifier) => boolean | void + ): boolean | undefined; + walkNesting( + callback: (node: Nesting) => boolean | void + ): boolean | undefined; + walkPseudos( + callback: (node: Pseudo) => boolean | void + ): boolean | undefined; + walkTags(callback: (node: Tag) => boolean | void): boolean | undefined; + split(callback: (node: Child) => boolean): [Child[], Child[]]; + map(callback: (node: Child) => T): T[]; + reduce( + callback: ( + previousValue: Child, + currentValue: Child, + currentIndex: number, + array: readonly Child[] + ) => Child + ): Child; + reduce( + callback: ( + previousValue: Child, + currentValue: Child, + currentIndex: number, + array: readonly Child[] + ) => Child, + initialValue: Child + ): Child; + reduce( + callback: ( + previousValue: T, + currentValue: Child, + currentIndex: number, + array: readonly Child[] + ) => T, + initialValue: T + ): T; + every(callback: (node: Child) => boolean): boolean; + some(callback: (node: Child) => boolean): boolean; + filter(callback: (node: Child) => boolean): Child[]; + sort(callback: (nodeA: Child, nodeB: Child) => number): Child[]; + toString(): string; + } + function isContainer(node: any): node is Root | Selector | Pseudo; + + interface NamespaceOptions extends NodeOptions { + namespace?: string | true; + } + interface Namespace extends Base { + /** alias for namespace */ + ns: string | true; + /** + * namespace prefix. + */ + namespace: string | true; + /** + * If a namespace exists, prefix the value provided with it, separated by |. + */ + qualifiedName(value: string): string; + /** + * A string representing the namespace suitable for output. + */ + readonly namespaceString: string; + } + function isNamespace(node: any): node is Attribute | Tag; + + interface Root extends Container { + type: "root"; + /** + * Raises an error, if the processor is invoked on + * a postcss Rule node, a better error message is raised. + */ + error(message: string, options?: ErrorOptions): Error; + nodeAt(line: number, column: number): Node + } + function root(opts: ContainerOptions): Root; + function isRoot(node: any): node is Root; + + interface _Selector extends Container> { + type: "selector"; + } + type Selector = _Selector; + function selector(opts: ContainerOptions): Selector; + function isSelector(node: any): node is Selector; + + interface CombinatorRaws { + value?: string; + spaces?: { + before?: string; + after?: string; + }; + } + interface Combinator extends Base { + type: "combinator"; + raws?: CombinatorRaws; + } + function combinator(opts: NodeOptions): Combinator; + function isCombinator(node: any): node is Combinator; + + interface ClassName extends Base { + type: "class"; + } + function className(opts: NamespaceOptions): ClassName; + function isClassName(node: any): node is ClassName; + + type AttributeOperator = "=" | "~=" | "|=" | "^=" | "$=" | "*="; + type QuoteMark = '"' | "'" | null; + interface PreferredQuoteMarkOptions { + quoteMark?: QuoteMark; + preferCurrentQuoteMark?: boolean; + } + interface SmartQuoteMarkOptions extends PreferredQuoteMarkOptions { + smart?: boolean; + } + interface AttributeOptions extends NamespaceOptions { + attribute: string; + operator?: AttributeOperator; + insensitive?: boolean; + quoteMark?: QuoteMark; + /** @deprecated Use quoteMark instead. */ + quoted?: boolean; + spaces?: { + before?: string; + after?: string; + attribute?: Partial; + operator?: Partial; + value?: Partial; + insensitive?: Partial; + } + raws: { + unquoted?: string; + attribute?: string; + operator?: string; + value?: string; + insensitive?: string; + spaces?: { + attribute?: Partial; + operator?: Partial; + value?: Partial; + insensitive?: Partial; + } + }; + } + interface Attribute extends Namespace { + type: "attribute"; + attribute: string; + operator?: AttributeOperator; + insensitive?: boolean; + quoteMark: QuoteMark; + quoted?: boolean; + spaces: { + before: string; + after: string; + attribute?: Partial; + operator?: Partial; + value?: Partial; + insensitive?: Partial; + } + raws: { + /** @deprecated The attribute value is unquoted, use that instead.. */ + unquoted?: string; + attribute?: string; + operator?: string; + /** The value of the attribute with quotes and escapes. */ + value?: string; + insensitive?: string; + spaces?: { + attribute?: Partial; + operator?: Partial; + value?: Partial; + insensitive?: Partial; + } + }; + /** + * The attribute name after having been qualified with a namespace. + */ + readonly qualifiedAttribute: string; + + /** + * The case insensitivity flag or an empty string depending on whether this + * attribute is case insensitive. + */ + readonly insensitiveFlag : 'i' | ''; + + /** + * Returns the attribute's value quoted such that it would be legal to use + * in the value of a css file. The original value's quotation setting + * used for stringification is left unchanged. See `setValue(value, options)` + * if you want to control the quote settings of a new value for the attribute or + * `set quoteMark(mark)` if you want to change the quote settings of the current + * value. + * + * You can also change the quotation used for the current value by setting quoteMark. + **/ + getQuotedValue(options?: SmartQuoteMarkOptions): string; + + /** + * Set the unescaped value with the specified quotation options. The value + * provided must not include any wrapping quote marks -- those quotes will + * be interpreted as part of the value and escaped accordingly. + * @param value + */ + setValue(value: string, options?: SmartQuoteMarkOptions): void; + + /** + * Intelligently select a quoteMark value based on the value's contents. If + * the value is a legal CSS ident, it will not be quoted. Otherwise a quote + * mark will be picked that minimizes the number of escapes. + * + * If there's no clear winner, the quote mark from these options is used, + * then the source quote mark (this is inverted if `preferCurrentQuoteMark` is + * true). If the quoteMark is unspecified, a double quote is used. + **/ + smartQuoteMark(options: PreferredQuoteMarkOptions): QuoteMark; + + /** + * Selects the preferred quote mark based on the options and the current quote mark value. + * If you want the quote mark to depend on the attribute value, call `smartQuoteMark(opts)` + * instead. + */ + preferredQuoteMark(options: PreferredQuoteMarkOptions): QuoteMark + + /** + * returns the offset of the attribute part specified relative to the + * start of the node of the output string. + * + * * "ns" - alias for "namespace" + * * "namespace" - the namespace if it exists. + * * "attribute" - the attribute name + * * "attributeNS" - the start of the attribute or its namespace + * * "operator" - the match operator of the attribute + * * "value" - The value (string or identifier) + * * "insensitive" - the case insensitivity flag; + * @param part One of the possible values inside an attribute. + * @returns -1 if the name is invalid or the value doesn't exist in this attribute. + */ + offsetOf(part: "ns" | "namespace" | "attribute" | "attributeNS" | "operator" | "value" | "insensitive"): number; + } + function attribute(opts: AttributeOptions): Attribute; + function isAttribute(node: any): node is Attribute; + + interface Pseudo extends Container { + type: "pseudo"; + } + function pseudo(opts: ContainerOptions): Pseudo; + /** + * Checks whether the node is the Pseudo subtype of node. + */ + function isPseudo(node: any): node is Pseudo; + + /** + * Checks whether the node is, specifically, a pseudo element instead of + * pseudo class. + */ + function isPseudoElement(node: any): node is Pseudo; + + /** + * Checks whether the node is, specifically, a pseudo class instead of + * pseudo element. + */ + function isPseudoClass(node: any): node is Pseudo; + + + interface Tag extends Namespace { + type: "tag"; + } + function tag(opts: NamespaceOptions): Tag; + function isTag(node: any): node is Tag; + + interface Comment extends Base { + type: "comment"; + } + function comment(opts: NodeOptions): Comment; + function isComment(node: any): node is Comment; + + interface Identifier extends Base { + type: "id"; + } + function id(opts: any): Identifier; + function isIdentifier(node: any): node is Identifier; + + interface Nesting extends Base { + type: "nesting"; + } + function nesting(opts?: any): Nesting; + function isNesting(node: any): node is Nesting; + + interface String extends Base { + type: "string"; + } + function string(opts: NodeOptions): String; + function isString(node: any): node is String; + + interface Universal extends Base { + type: "universal"; + } + function universal(opts?: NamespaceOptions): Universal; + function isUniversal(node: any): node is Universal; +} 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..939a802 --- /dev/null +++ b/node_modules/postcss/README.md @@ -0,0 +1,28 @@ +# PostCSS + +Philosopher’s stone, logo of 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] and [Stylelint] PostCSS plugins is one of the most popular CSS tools. + +--- + +  Made at Evil Martians, product consulting for developer tools. + +--- + +[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 +[Stylelint]: https://stylelint.io/ +[plugins]: https://github.com/postcss/postcss#plugins + + +## 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..b2a0e0f --- /dev/null +++ b/node_modules/postcss/lib/at-rule.d.ts @@ -0,0 +1,140 @@ +import Container, { + ContainerProps, + ContainerWithChildren +} from './container.js' + +declare namespace AtRule { + export interface AtRuleRaws extends Record { + /** + * 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 space symbols before the node. It also stores `*` + * and `_` symbols before the declaration (IE hack). + */ + before?: string + + /** + * The symbols between the last parameter and `{` for rules. + */ + between?: string + + /** + * The rule’s selector with comments. + */ + params?: { + raw: string + value: string + } + + /** + * Contains `true` if the last child has an (optional) semicolon. + */ + semicolon?: boolean + } + + export interface AtRuleProps extends ContainerProps { + /** Name of the at-rule. */ + name: string + /** Parameters following the name of the at-rule. */ + params?: number | string + /** 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 { + /** + * An array containing the layer’s children. + * + * ```js + * const root = postcss.parse('@layer example { a { color: black } }') + * const layer = root.first + * layer.nodes.length //=> 1 + * layer.nodes[0].selector //=> 'a' + * ``` + * + * Can be `undefinded` if the at-rule has no body. + * + * ```js + * const root = postcss.parse('@layer a, b, c;') + * const layer = root.first + * layer.nodes //=> undefined + * ``` + */ + nodes: Container['nodes'] + parent: ContainerWithChildren | undefined + + raws: AtRule.AtRuleRaws + type: 'atrule' + constructor(defaults?: AtRule.AtRuleProps) + assign(overrides: AtRule.AtRuleProps | object): this + + clone(overrides?: Partial): this + + cloneAfter(overrides?: Partial): this + + cloneBefore(overrides?: Partial): this + /** + * The at-rule’s name immediately follows the `@`. + * + * ```js + * const root = postcss.parse('@media print {}') + * const media = root.first + * media.name //=> 'media' + * ``` + */ + get name(): string + set name(value: 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' + * ``` + */ + get params(): string + set params(value: string) +} + +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..2b1a156 --- /dev/null +++ b/node_modules/postcss/lib/comment.d.ts @@ -0,0 +1,68 @@ +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 { + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ + raws?: CommentRaws + /** Content of the comment. */ + text: string + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Comment_ as default } +} + +/** + * It represents a class that handles + * [CSS comments](https://developer.mozilla.org/en-US/docs/Web/CSS/Comments) + * + * ```js + * Once (root, { Comment }) { + * const note = new Comment({ text: 'Note: …' }) + * root.append(note) + * } + * ``` + * + * Remember that CSS comments inside selectors, at-rule parameters, + * or declaration values will be stored in the `raws` properties + * explained above. + */ +declare class Comment_ extends Node { + parent: Container | undefined + raws: Comment.CommentRaws + type: 'comment' + constructor(defaults?: Comment.CommentProps) + + assign(overrides: Comment.CommentProps | object): this + + clone(overrides?: Partial): this + cloneAfter(overrides?: Partial): this + cloneBefore(overrides?: Partial): this + /** + * The comment's text. + */ + get text(): string + set text(value: string) +} + +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..dfe55f2 --- /dev/null +++ b/node_modules/postcss/lib/container.d.ts @@ -0,0 +1,490 @@ +import AtRule from './at-rule.js' +import Comment from './comment.js' +import Declaration from './declaration.js' +import Node, { ChildNode, ChildProps, NodeProps } from './node.js' +import Rule from './rule.js' + +declare namespace Container { + export class ContainerWithChildren< + Child extends Node = ChildNode + > extends Container_ { + nodes: Child[] + } + + export interface ValueOptions { + /** + * String that’s used to narrow down values and speed up the regexp search. + */ + fast?: string + + /** + * An array of property names. + */ + props?: string[] + } + + export interface ContainerProps extends NodeProps { + nodes?: (Node | 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_ 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[] | 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: ( + | ChildProps + | ChildProps[] + | Node + | Node[] + | string + | string[] + | undefined + )[] + ): this + + assign(overrides: Container.ContainerProps | object): this + clone(overrides?: Partial): this + cloneAfter(overrides?: Partial): this + cloneBefore(overrides?: Partial): this + + /** + * 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 + + /** + * 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 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 + + /** + * 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: + | Node + | Node[] + | ChildProps + | ChildProps[] + | string + | string[] + | undefined + ): 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: + | Node + | Node[] + | ChildProps + | ChildProps[] + | string + | string[] + | undefined + ): this + + /** + * 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. + */ + + /** + * 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: ( + | ChildProps + | ChildProps[] + | Node + | Node[] + | string + | string[] + | undefined + )[] + ): 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 + + /** + * 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 + + /** + * 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 + + replaceValues( + pattern: RegExp | string, + replaced: { (substring: string, ...args: any[]): string } | string + ): 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: RegExp | string, + options: Container.ValueOptions, + replaced: { (substring: string, ...args: any[]): string } | string + ): this + + /** + * 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 + + /** + * 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 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: RegExp | string, + callback: (atRule: AtRule, index: number) => false | void + ): false | undefined + + walkAtRules( + callback: (atRule: AtRule, index: number) => false | void + ): false | undefined + walkComments( + callback: (comment: Comment, indexed: number) => false | void + ): false | undefined + + walkComments( + callback: (comment: Comment, indexed: 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: RegExp | string, + 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: RegExp | string, + callback: (rule: Rule, index: number) => false | void + ): false | undefined + walkRules( + callback: (rule: Rule, index: number) => false | void + ): false | undefined + /** + * 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 +} + +declare class Container< + Child extends Node = ChildNode +> 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..8a18207 --- /dev/null +++ b/node_modules/postcss/lib/container.js @@ -0,0 +1,445 @@ +'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 markTreeDirty(node) { + node[isClean] = false + if (node.proxyOf.nodes) { + for (let i of node.proxyOf.nodes) { + markTreeDirty(i) + } + } +} + +class Container extends Node { + 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 + } + + cleanRaws(keepBetween) { + super.cleanRaws(keepBetween) + if (this.nodes) { + for (let node of this.nodes) node.cleanRaws(keepBetween) + } + } + + 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 + } + + every(condition) { + return this.nodes.every(condition) + } + + 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 + } + + getProxyProcessor() { + return { + 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] + } + }, + + set(node, prop, value) { + if (node[prop] === value) return true + node[prop] = value + if (prop === 'name' || prop === 'params' || prop === 'selector') { + node.markDirty() + } + return true + } + } + } + + index(child) { + if (typeof child === 'number') return child + if (child.proxyOf) child = child.proxyOf + return this.proxyOf.nodes.indexOf(child) + } + + 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 + } + + 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 + } + + normalize(nodes, sample) { + if (typeof nodes === 'string') { + nodes = cleanSource(parse(nodes).nodes) + } else if (typeof nodes === 'undefined') { + 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.selectors) { + 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]) markTreeDirty(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 + } + + 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 + } + + push(child) { + child.parent = this + this.proxyOf.nodes.push(child) + return this + } + + removeAll() { + for (let node of this.proxyOf.nodes) node.parent = undefined + this.proxyOf.nodes = [] + + 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 + } + + 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 + } + + some(condition) { + return this.nodes.some(condition) + } + + 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 + }) + } + + 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) + } + }) + } + + 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) + } + }) + } + + 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] + } +} + +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..e540d84 --- /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 column number in the input. + */ + column: number + + /** + * The line number in the input. + */ + line: 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_ extends Error { + /** + * 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 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 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 + + /** + * 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 + + /** + * 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 + + /** + * 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 + + /** + * 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 + + /** + * 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' + + /** + * Plugin name, if error came from plugin. + * + * ```js + * error.plugin //=> 'postcss-vars' + * ``` + */ + plugin?: string + + /** + * Error message. + * + * ```js + * error.message //=> 'Unclosed block' + * ``` + */ + reason: string + + /** + * Source code of the broken file. + * + * ```js + * error.source //=> 'a { b {} }' + * error.input.source //=> 'a b { }' + * ``` + */ + source?: string + + stack: string + + /** + * 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?: CssSyntaxError.RangePosition | number, + columnOrEndPos?: CssSyntaxError.RangePosition | number, + source?: string, + file?: string, + plugin?: 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 + + /** + * 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 +} + +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..1693033 --- /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, gray, red } = 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..e707ad6 --- /dev/null +++ b/node_modules/postcss/lib/declaration.d.ts @@ -0,0 +1,151 @@ +import { ContainerWithChildren } 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?: { + raw: string + value: string + } + } + + export interface DeclarationProps { + /** Whether the declaration has an `!important` annotation. */ + important?: boolean + /** Name of the declaration. */ + prop: string + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ + raws?: DeclarationRaws + /** Value of the declaration. */ + value: string + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Declaration_ as default } +} + +/** + * It represents a class that handles + * [CSS declarations](https://developer.mozilla.org/en-US/docs/Web/CSS/Syntax#css_declarations) + * + * ```js + * Once (root, { Declaration }) { + * const 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 { + parent: ContainerWithChildren | undefined + raws: Declaration.DeclarationRaws + + type: 'decl' + + constructor(defaults?: Declaration.DeclarationProps) + assign(overrides: Declaration.DeclarationProps | object): this + + clone(overrides?: Partial): this + + cloneAfter(overrides?: Partial): this + + cloneBefore(overrides?: Partial): this + /** + * It represents a specificity of the declaration. + * + * If true, the CSS declaration will have an + * [important](https://developer.mozilla.org/en-US/docs/Web/CSS/important) + * specifier. + * + * ```js + * const root = postcss.parse('a { color: black !important; color: red }') + * + * root.first.first.important //=> true + * root.first.last.important //=> undefined + * ``` + */ + get important(): boolean + + set important(value: boolean) + /** + * The property name for a CSS declaration. + * + * ```js + * const root = postcss.parse('a { color: black }') + * const decl = root.first.first + * + * decl.prop //=> 'color' + * ``` + */ + get prop(): string + + set prop(value: string) + /** + * The property value for a CSS declaration. + * + * Any CSS comments inside the value string will be filtered out. + * CSS comments present in the source value will be available in + * the `raws` property. + * + * Assigning new `value` would ignore the comments in `raws` + * property while compiling node to string. + * + * ```js + * const root = postcss.parse('a { color: black }') + * const decl = root.first.first + * + * decl.value //=> 'black' + * ``` + */ + get value(): string + set value(value: string) + /** + * It represents a getter that returns `true` if a declaration starts with + * `--` or `$`, which are used to declare variables in CSS and SASS/SCSS. + * + * ```js + * const root = postcss.parse(':root { --one: 1 }') + * const one = root.first.first + * + * one.variable //=> true + * ``` + * + * ```js + * const root = postcss.parse('$one: 1') + * const one = root.first + * + * one.variable //=> true + * ``` + */ + get variable(): boolean +} + +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..79f948a --- /dev/null +++ b/node_modules/postcss/lib/document.d.ts @@ -0,0 +1,69 @@ +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 { + nodes: Root[] + parent: undefined + type: 'document' + + constructor(defaults?: Document.DocumentProps) + + assign(overrides: Document.DocumentProps | object): this + clone(overrides?: Partial): this + cloneAfter(overrides?: Partial): this + cloneBefore(overrides?: Partial): this + + /** + * 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..ce8e463 --- /dev/null +++ b/node_modules/postcss/lib/input.d.ts @@ -0,0 +1,197 @@ +import { CssSyntaxError, ProcessOptions } from './postcss.js' +import PreviousMap from './previous-map.js' + +declare namespace Input { + export interface FilePosition { + /** + * Column of inclusive start position in source file. + */ + column: number + + /** + * Column of exclusive end position in source file. + */ + endColumn?: number + + /** + * Line of exclusive end position in source file. + */ + endLine?: number + + /** + * Absolute path to the source file. + */ + file?: string + + /** + * Line of inclusive start position in source file. + */ + line: number + + /** + * Source code. + */ + source?: string + + /** + * URL for the source file. + */ + url: 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 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 flag to indicate whether or not the source code has Unicode BOM. + */ + hasBOM: boolean + + /** + * 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 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 + + /** + * @param css Input CSS source. + * @param opts Process options. + */ + constructor(css: string, opts?: ProcessOptions) + + error( + message: string, + start: + | { + column: number + line: number + } + | { + offset: number + }, + end: + | { + column: number + line: number + } + | { + offset: number + }, + opts?: { plugin?: CssSyntaxError['plugin'] } + ): CssSyntaxError + + /** + * 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 + + /** + * Converts source offset to line and column. + * + * @param offset Source offset. + */ + fromOffset(offset: number): { col: number; line: number } | null + /** + * 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 + ): false | Input.FilePosition + /** + * 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 + + /** Converts this to a JSON-friendly object representation. */ + toJSON(): object +} + +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..4b5ee5e --- /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 { isAbsolute, resolve } = 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 + } + + 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 + : { column: origin.column, line: origin.line }, + origin.endLine === undefined + ? origin.column + : { column: origin.endColumn, line: origin.endLine }, + origin.source, + origin.file, + opts.plugin + ) + } else { + result = new CssSyntaxError( + message, + endLine === undefined ? line : { column, line }, + endLine === undefined ? column : { column: endColumn, line: endLine }, + this.css, + this.file, + opts.plugin + ) + } + + result.input = { column, endColumn, endLine, line, source: this.css } + if (this.file) { + if (pathToFileURL) { + result.input.url = pathToFileURL(this.file).toString() + } + result.input.file = this.file + } + + return result + } + + 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 { + col: offset - lineToIndex[min] + 1, + line: min + 1 + } + } + + mapResolve(file) { + if (/^\w+:\/\//.test(file)) { + return file + } + return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file) + } + + origin(line, column, endLine, endColumn) { + if (!this.map) return false + let consumer = this.map.consumer() + + let from = consumer.originalPositionFor({ column, line }) + if (!from.source) return false + + let to + if (typeof endLine === 'number') { + to = consumer.originalPositionFor({ column: endColumn, line: endLine }) + } + + 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 = { + column: from.column, + endColumn: to && to.column, + endLine: to && to.line, + line: from.line, + url: fromUrl.toString() + } + + 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 + } + + 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 + } + + get from() { + return this.file || this.id + } +} + +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..dd291aa --- /dev/null +++ b/node_modules/postcss/lib/lazy-result.d.ts @@ -0,0 +1,190 @@ +import Document from './document.js' +import { SourceMap } from './postcss.js' +import Processor from './processor.js' +import Result, { Message, ResultOptions } from './result.js' +import Root from './root.js' +import Warning from './warning.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 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'] + + /** + * 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'] + + /** + * @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) + + /** + * Run plugin in async way and return `Result`. + * + * @return Result with output content. + */ + async(): Promise> + + /** + * Run plugin in sync way and return `Result`. + * + * @return Result with output content. + */ + sync(): Result + + /** + * Alias for the `LazyResult#css` property. + * + * ```js + * lazy + '' === lazy.css + * ``` + * + * @return Output CSS. + */ + toString(): string + + /** + * Processes input CSS through synchronous plugins + * and calls `Result#warnings`. + * + * @return Warnings from plugins. + */ + warnings(): Warning[] + + /** + * 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, 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 + + /** + * 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#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[] + + /** + * Options from the `Processor#process` call. + */ + get opts(): ResultOptions + + /** + * Returns a `Processor` instance, which will be used + * for CSS transformations. + */ + get processor(): Processor + + /** + * 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(): RootNode + + /** + * Returns the default string description of an object. + * Required to implement the Promise interface. + */ + get [Symbol.toStringTag](): string +} + +declare class LazyResult< + RootNode = Document | Root +> 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..126f40c --- /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 = { + atrule: 'AtRule', + comment: 'Comment', + decl: 'Declaration', + document: 'Document', + root: 'Root', + rule: 'Rule' +} + +const PLUGIN_PROPS = { + AtRule: true, + AtRuleExit: true, + Comment: true, + CommentExit: true, + Declaration: true, + DeclarationExit: true, + Document: true, + DocumentExit: true, + Once: true, + OnceExit: true, + postcssPlugin: true, + prepare: true, + Root: true, + RootExit: true, + Rule: true, + RuleExit: true +} + +const NOT_VISITORS = { + Once: true, + postcssPlugin: true, + prepare: 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 { + eventIndex: 0, + events, + iterator: 0, + node, + visitorIndex: 0, + visitors: [] + } +} + +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, postcss, result: this.result } + this.plugins = this.processor.plugins.map(plugin => { + if (typeof plugin === 'object' && plugin.prepare) { + return { ...plugin, ...plugin.prepare(this.result) } + } else { + return plugin + } + }) + } + + 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 + } + + catch(onRejected) { + return this.async().catch(onRejected) + } + + finally(onFinally) { + return this.async().then(onFinally, onFinally) + } + + 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 + } + + 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 + } + + 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() + } + + 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) + } + } + + 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 + } + + 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 + } + + 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) + } + + toString() { + return this.css + } + + 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() + } + } + } + + 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() + } + + 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 + } + } + } + } + + warnings() { + return this.sync().warnings() + } + + get content() { + return this.stringify().content + } + + get css() { + return this.stringify().css + } + + get map() { + return this.stringify().map + } + + get messages() { + return this.sync().messages + } + + get opts() { + return this.result.opts + } + + get processor() { + return this.result.processor + } + + get root() { + return this.sync().root + } + + get [Symbol.toStringTag]() { + return 'LazyResult' + } +} + +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..d77e181 --- /dev/null +++ b/node_modules/postcss/lib/list.d.ts @@ -0,0 +1,56 @@ +declare namespace list { + type List = { + /** + * 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[] + + default: List + + /** + * 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 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[] + } +} + +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..1b31f98 --- /dev/null +++ b/node_modules/postcss/lib/list.js @@ -0,0 +1,58 @@ +'use strict' + +let list = { + comma(string) { + return list.split(string, [','], true) + }, + + space(string) { + let spaces = [' ', '\n', '\t'] + return list.split(string, spaces) + }, + + 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 + } +} + +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..fd93b06 --- /dev/null +++ b/node_modules/postcss/lib/map-generator.js @@ -0,0 +1,368 @@ +'use strict' + +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') +let { dirname, relative, resolve, 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.originalCSS = cssString + this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute + + this.memoizedFileURLs = new Map() + this.memoizedPaths = new Map() + this.memoizedURLs = new Map() + } + + 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 + ' */' + } + + 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 = null + } + } else { + map = prev.consumer() + } + + this.map.applySourceMap(map, from, this.toUrl(this.path(root))) + } + } + + 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, '') + } + } + + generate() { + this.clearAnnotation() + if (pathAvailable && sourceMapAvailable && this.isMap()) { + return this.generateMap() + } else { + let result = '' + this.stringify(this.root, i => { + result += i + }) + return [result] + } + } + + 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, { + ignoreInvalidMapping: true + }) + } else { + this.map = new SourceMapGenerator({ + file: this.outputFile(), + ignoreInvalidMapping: true + }) + this.map.addMapping({ + generated: { column: 0, line: 1 }, + original: { column: 0, line: 1 }, + source: this.opts.from + ? this.toUrl(this.path(this.opts.from)) + : '' + }) + } + + 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] + } + } + + generateString() { + this.css = '' + this.map = new SourceMapGenerator({ + file: this.outputFile(), + ignoreInvalidMapping: true + }) + + let line = 1 + let column = 1 + + let noSource = '' + let mapping = { + generated: { column: 0, line: 0 }, + original: { column: 0, line: 0 }, + source: '' + } + + 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) + } + } + } + }) + } + + 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 + } + + 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 + } + + isMap() { + if (typeof this.opts.map !== 'undefined') { + return !!this.opts.map + } + return this.previous().length > 0 + } + + isSourcesContent() { + if (typeof this.mapOpts.sourcesContent !== 'undefined') { + return this.mapOpts.sourcesContent + } + if (this.previous().length) { + return this.previous().some(i => i.withContent()) + } + return true + } + + 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' + } + } + + path(file) { + if (this.mapOpts.absolute) return file + if (file.charCodeAt(0) === 60 /* `<` */) return file + if (/^\w+:\/\//.test(file)) return file + let cached = this.memoizedPaths.get(file) + if (cached) return cached + + let from = this.opts.to ? dirname(this.opts.to) : '.' + + if (typeof this.mapOpts.annotation === 'string') { + from = dirname(resolve(from, this.mapOpts.annotation)) + } + + let path = relative(from, file) + this.memoizedPaths.set(file, path) + + return path + } + + 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.originalCSS, this.opts) + if (input.map) this.previousMaps.push(input.map) + } + } + + return this.previousMaps + } + + 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) + } + } + + 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)) + } + } + + toBase64(str) { + if (Buffer) { + return Buffer.from(str).toString('base64') + } else { + return window.btoa(unescape(encodeURIComponent(str))) + } + } + + toFileUrl(path) { + let cached = this.memoizedFileURLs.get(path) + if (cached) return cached + + if (pathToFileURL) { + let fileURL = pathToFileURL(path).toString() + this.memoizedFileURLs.set(path, fileURL) + + return fileURL + } else { + throw new Error( + '`map.absolute` option is not available in this PostCSS build' + ) + } + } + + toUrl(path) { + let cached = this.memoizedURLs.get(path) + if (cached) return cached + + if (sep === '\\') { + path = path.replace(/\\/g, '/') + } + + let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent) + this.memoizedURLs.set(path, url) + + return url + } +} + +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..8039076 --- /dev/null +++ b/node_modules/postcss/lib/no-work-result.d.ts @@ -0,0 +1,46 @@ +import LazyResult from './lazy-result.js' +import { SourceMap } from './postcss.js' +import Processor from './processor.js' +import Result, { Message, ResultOptions } from './result.js' +import Root from './root.js' +import Warning from './warning.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 { + catch: Promise>['catch'] + finally: Promise>['finally'] + then: Promise>['then'] + constructor(processor: Processor, css: string, opts: ResultOptions) + async(): Promise> + sync(): Result + toString(): string + warnings(): Warning[] + get content(): string + get css(): string + get map(): SourceMap + get messages(): Message[] + get opts(): ResultOptions + get processor(): Processor + get root(): Root + get [Symbol.toStringTag](): string +} + +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..05821b7 --- /dev/null +++ b/node_modules/postcss/lib/no-work-result.js @@ -0,0 +1,138 @@ +'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 + } + } else { + map.clearAnnotation() + this.result.css = map.css + } + } + + async() { + if (this.error) return Promise.reject(this.error) + return Promise.resolve(this.result) + } + + catch(onRejected) { + return this.async().catch(onRejected) + } + + finally(onFinally) { + return this.async().then(onFinally, onFinally) + } + + sync() { + if (this.error) throw this.error + return this.result + } + + 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) + } + + toString() { + return this._css + } + + warnings() { + return [] + } + + get content() { + return this.result.css + } + + get css() { + return this.result.css + } + + get map() { + return this.result.map + } + + get messages() { + return [] + } + + get opts() { + return this.result.opts + } + + get processor() { + return this.result.processor + } + + 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 [Symbol.toStringTag]() { + return 'NoWorkResult' + } +} + +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..8cc3cdb --- /dev/null +++ b/node_modules/postcss/lib/node.d.ts @@ -0,0 +1,536 @@ +import AtRule = require('./at-rule.js') + +import { AtRuleProps } from './at-rule.js' +import Comment, { CommentProps } from './comment.js' +import Container from './container.js' +import CssSyntaxError from './css-syntax-error.js' +import Declaration, { DeclarationProps } from './declaration.js' +import Document from './document.js' +import Input from './input.js' +import { Stringifier, Syntax } from './postcss.js' +import Result from './result.js' +import Root from './root.js' +import Rule, { RuleProps } from './rule.js' +import Warning, { WarningOptions } from './warning.js' + +declare namespace Node { + export type ChildNode = AtRule.default | Comment | Declaration | Rule + + export type AnyNode = + | AtRule.default + | Comment + | Declaration + | Document + | Root + | Rule + + export type ChildProps = + | AtRuleProps + | CommentProps + | DeclarationProps + | RuleProps + + export interface Position { + /** + * Source line in file. In contrast to `offset` it starts from 1. + */ + column: number + + /** + * Source column in file. + */ + line: number + + /** + * Source offset in file. It starts from 0. + */ + offset: number + } + + export interface Range { + /** + * End position, exclusive. + */ + end: Position + + /** + * Start position, inclusive. + */ + start: Position + } + + /** + * Source represents an interface for the {@link Node.source} property. + */ + export interface Source { + /** + * The inclusive ending position for the source + * code of a node. + */ + end?: Position + + /** + * The source file from where a node has originated. + */ + input: Input + + /** + * The inclusive starting position for the source + * code of a node. + */ + start?: Position + } + + /** + * Interface represents an interface for an object received + * as parameter by Node class constructor. + */ + export interface NodeProps { + source?: Source + } + + export interface NodeErrorOptions { + /** + * An ending index inside a node's string that should be highlighted as + * source of error. + */ + endIndex?: number + /** + * An index inside a node's string that should be highlighted as source + * of error. + */ + index?: number + /** + * 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 + } + + // eslint-disable-next-line @typescript-eslint/no-shadow + class Node extends Node_ {} + export { Node as default } +} + +/** + * It represents an abstract class that handles common + * methods for other CSS abstract syntax tree nodes. + * + * Any node that represents CSS selector or value should + * not extend the `Node` class. + */ +declare abstract class Node_ { + /** + * It represents parent of the current node. + * + * ```js + * root.nodes[0].parent === root //=> true + * ``` + */ + parent: Container | Document | undefined + + /** + * It represents unnecessary whitespace and characters present + * in the css source code. + * + * Information to generate byte-to-byte equal node string as it was + * in the origin input. + * + * The properties of the raws object are decided by parser, + * the default parser uses the following properties: + * + * * `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 filters out the comments inside selectors, declaration values + * and at-rule parameters but it stores the origin content in raws. + * + * ```js + * const root = postcss.parse('a {\n color:black\n}') + * root.first.first.raws //=> { before: '\n ', between: ':' } + * ``` + */ + raws: any + + /** + * It represents information related to origin of a node and is required + * for generating source maps. + * + * The nodes that are created manually using the public APIs + * provided by PostCSS will have `source` undefined and + * will be absent in the source map. + * + * For this reason, the plugin developer should consider + * duplicating nodes as the duplicate node will have the + * same source as the original node by default or assign + * source to a node created manually. + * + * ```js + * decl.source.input.from //=> '/home/ai/source.css' + * decl.source.start //=> { line: 10, column: 2 } + * decl.source.end //=> { line: 10, column: 12 } + * ``` + * + * ```js + * // Incorrect method, source not specified! + * const prefixed = postcss.decl({ + * prop: '-moz-' + decl.prop, + * value: decl.value + * }) + * + * // Correct method, source is inherited when duplicating. + * 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 + + /** + * It represents type of a node in + * an abstract syntax tree. + * + * A type of node helps in identification of a node + * and perform operation based on it's type. + * + * ```js + * const declaration = new Declaration({ + * prop: 'color', + * value: 'black' + * }) + * + * declaration.type //=> 'decl' + * ``` + */ + type: string + + constructor(defaults?: object) + + /** + * 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 | Node[] | string | undefined): this + + /** + * It assigns properties to an existing node instance. + * + * ```js + * decl.assign({ prop: 'word-wrap', value: 'break-word' }) + * ``` + * + * @param overrides New properties to override the node. + * + * @return `this` for method chaining. + */ + assign(overrides: object): this + + /** + * 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 | Node[] | string | undefined): this + + /** + * 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 + + /** + * It creates clone of an existing node, which includes all the properties + * and their values, that includes `raws` but not `type`. + * + * ```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 Duplicate of the node instance. + */ + clone(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 + + /** + * 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 + + /** + * It creates an instance of the class `CssSyntaxError` and parameters passed + * to this method are assigned to the error instance. + * + * The error instance will have description for the + * error, original position of the node in the + * source, showing line and column number. + * + * If any previous map is present, it would be used + * to get original position of the source. + * + * The Previous Map here is referred to the source map + * generated by previous compilation, example: Less, + * Stylus and Sass. + * + * This method returns the error instance instead of + * throwing it. + * + * ```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 Description for the error instance. + * @param options Options for the error instance. + * + * @return Error instance is returned. + */ + error(message: string, options?: Node.NodeErrorOptions): CssSyntaxError + + /** + * 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 + + /** + * Get the position for a word or an index inside the node. + * + * @param opts Options. + * @return Position. + */ + positionBy(opts?: Pick): Node.Position + + /** + * 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 + + /** + * 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 + + /** + * 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 + + /** + * Returns a `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 + + /** + * It removes the node from its parent and deletes its parent property. + * + * ```js + * if (decl.prop.match(/^-webkit-/)) { + * decl.remove() + * } + * ``` + * + * @return `this` for method chaining. + */ + remove(): 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 + | Node[] + | Node.ChildProps + | Node.ChildProps[] + )[] + ): this + + /** + * Finds the Root instance of the node’s tree. + * + * ```js + * root.nodes[0].nodes[0].root() === root + * ``` + * + * @return Root parent. + */ + root(): Root + + /** + * Fix circular links on `JSON.stringify()`. + * + * @return Cleaned object. + */ + toJSON(): object + + /** + * It compiles the node to browser readable cascading style sheets string + * depending on it's type. + * + * ```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 + + /** + * It is a wrapper for {@link Result#warn}, providing convenient + * way of generating warnings. + * + * ```js + * Declaration: { + * bad: (decl, { result }) => { + * decl.warn(result, 'Deprecated property: bad') + * } + * } + * ``` + * + * @param result The `Result` instance that will receive the warning. + * @param message Description for the warning. + * @param options Options for the warning. + * + * @return `Warning` instance is returned + */ + warn(result: Result, message: string, options?: WarningOptions): Warning +} + +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..9e747ca --- /dev/null +++ b/node_modules/postcss/lib/node.js @@ -0,0 +1,381 @@ +'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] + } + } + } + + 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 + } + + after(add) { + this.parent.insertAfter(this, add) + return this + } + + assign(overrides = {}) { + for (let name in overrides) { + this[name] = overrides[name] + } + return this + } + + before(add) { + this.parent.insertBefore(this, add) + return this + } + + cleanRaws(keepBetween) { + delete this.raws.before + delete this.raws.after + if (!keepBetween) delete this.raws.between + } + + clone(overrides = {}) { + let cloned = cloneNode(this) + for (let name in overrides) { + cloned[name] = overrides[name] + } + return cloned + } + + cloneAfter(overrides = {}) { + let cloned = this.clone(overrides) + this.parent.insertAfter(this, cloned) + return cloned + } + + cloneBefore(overrides = {}) { + let cloned = this.clone(overrides) + this.parent.insertBefore(this, cloned) + return cloned + } + + error(message, opts = {}) { + if (this.source) { + let { end, start } = this.rangeBy(opts) + return this.source.input.error( + message, + { column: start.column, line: start.line }, + { column: end.column, line: end.line }, + opts + ) + } + return new CssSyntaxError(message) + } + + getProxyProcessor() { + return { + get(node, prop) { + if (prop === 'proxyOf') { + return node + } else if (prop === 'root') { + return () => node.root().toProxy() + } else { + return node[prop] + } + }, + + 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 + } + } + } + + markDirty() { + if (this[isClean]) { + this[isClean] = false + let next = this + while ((next = next.parent)) { + next[isClean] = false + } + } + } + + next() { + if (!this.parent) return undefined + let index = this.parent.index(this) + return this.parent.nodes[index + 1] + } + + positionBy(opts, stringRepresentation) { + let pos = this.source.start + if (opts.index) { + pos = this.positionInside(opts.index, stringRepresentation) + } else if (opts.word) { + stringRepresentation = this.toString() + let index = stringRepresentation.indexOf(opts.word) + if (index !== -1) pos = this.positionInside(index, stringRepresentation) + } + return pos + } + + positionInside(index, stringRepresentation) { + let string = stringRepresentation || 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 { column, line } + } + + prev() { + if (!this.parent) return undefined + let index = this.parent.index(this) + return this.parent.nodes[index - 1] + } + + rangeBy(opts) { + let start = { + column: this.source.start.column, + line: this.source.start.line + } + let end = this.source.end + ? { + column: this.source.end.column + 1, + line: this.source.end.line + } + : { + column: start.column + 1, + line: start.line + } + + if (opts.word) { + let stringRepresentation = this.toString() + let index = stringRepresentation.indexOf(opts.word) + if (index !== -1) { + start = this.positionInside(index, stringRepresentation) + end = this.positionInside(index + opts.word.length, stringRepresentation) + } + } else { + if (opts.start) { + start = { + column: opts.start.column, + line: opts.start.line + } + } else if (opts.index) { + start = this.positionInside(opts.index) + } + + if (opts.end) { + end = { + column: opts.end.column, + line: opts.end.line + } + } else if (typeof opts.endIndex === 'number') { + 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 = { column: start.column + 1, line: start.line } + } + + return { end, start } + } + + raw(prop, defaultType) { + let str = new Stringifier() + return str.raw(this, prop, defaultType) + } + + remove() { + if (this.parent) { + this.parent.removeChild(this) + } + this.parent = undefined + return this + } + + 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 + } + + root() { + let result = this + while (result.parent && result.parent.type !== 'document') { + result = result.parent + } + return result + } + + 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] = { + end: value.end, + inputId, + start: value.start + } + } else { + fixed[name] = value + } + } + + if (emitInputs) { + fixed.inputs = [...inputs.keys()].map(input => input.toJSON()) + } + + return fixed + } + + toProxy() { + if (!this.proxyCache) { + this.proxyCache = new Proxy(this, this.getProxyProcessor()) + } + return this.proxyCache + } + + toString(stringifier = stringify) { + if (stringifier.stringify) stringifier = stringifier.stringify + let result = '' + stringifier(this, i => { + result += i + }) + return result + } + + warn(result, text, opts) { + let data = { node: this } + for (let i in opts) data[i] = opts[i] + return result.warn(text, data) + } + + 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..bc761de --- /dev/null +++ b/node_modules/postcss/lib/parser.js @@ -0,0 +1,609 @@ +'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.createTokenizer() + this.root.source = { input, start: { column: 1, line: 1, offset: 0 } } + } + + 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]) + node.source.end.offset++ + 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]) + node.source.end.offset++ + } + } + 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]) + node.source.end.offset++ + this.spaces = node.raws.between + node.raws.between = '' + } + } else { + node.raws.afterName = '' + node.params = '' + } + + if (open) { + node.nodes = [] + this.current = node + } + } + + 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] + ) + } + + 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 + } + + comment(token) { + let node = new Comment() + this.init(node, token[2]) + node.source.end = this.getPosition(token[3] || token[2]) + node.source.end.offset++ + + 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] + } + } + + createTokenizer() { + this.tokenizer = tokenizer(this.input) + } + + 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) + ) + node.source.end.offset++ + + 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) + } + } + + doubleColon(token) { + throw this.input.error( + 'Double colon', + { offset: token[2] }, + { offset: token[2] + token[1].length } + ) + } + + emptyRule(token) { + let node = new Rule() + this.init(node, token[2]) + node.selector = '' + node.raws.between = '' + 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.source.end.offset++ + 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 + this.root.source.end = this.getPosition(this.tokenizer.position()) + } + + 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 { + column: pos.col, + line: pos.line, + offset + } + } + + init(node, offset) { + this.current.push(node) + node.source = { + input: this.input, + start: this.getPosition(offset) + } + node.raws.before = this.spaces + this.spaces = '' + if (node.type !== 'comment') this.semicolon = false + } + + 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) + } + } + + 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() + } + + precheckMissedSemicolon(/* tokens */) { + // Hook for Safe Parser + } + + 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] = { raw, value } + } + node[prop] = value + } + + 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 + } + + 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 + } + + // Errors + + 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 + } + + unclosedBlock() { + let pos = this.current.source.start + throw this.input.error('Unclosed block', pos.line, pos.column) + } + + unclosedBracket(bracket) { + throw this.input.error( + 'Unclosed bracket', + { offset: bracket[2] }, + { offset: bracket[2] + 1 } + ) + } + + unexpectedClose(token) { + throw this.input.error( + 'Unexpected }', + { offset: token[2] }, + { offset: token[2] + 1 } + ) + } + + unknownWord(tokens) { + throw this.input.error( + 'Unknown word', + { offset: tokens[0][2] }, + { offset: tokens[0][2] + tokens[0][1].length } + ) + } + + unnamedAtrule(node, token) { + throw this.input.error( + 'At-rule without name', + { offset: token[2] }, + { offset: token[2] + token[1].length } + ) + } +} + +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..4cf5b49 --- /dev/null +++ b/node_modules/postcss/lib/postcss.d.mts @@ -0,0 +1,69 @@ +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..603fdfd --- /dev/null +++ b/node_modules/postcss/lib/postcss.d.ts @@ -0,0 +1,450 @@ +import { RawSourceMap, SourceMapGenerator } from 'source-map-js' + +import AtRule, { AtRuleProps } from './at-rule.js' +import Comment, { CommentProps } from './comment.js' +import Container, { ContainerProps } from './container.js' +import CssSyntaxError from './css-syntax-error.js' +import Declaration, { DeclarationProps } from './declaration.js' +import Document, { DocumentProps } from './document.js' +import Input, { FilePosition } from './input.js' +import LazyResult from './lazy-result.js' +import list from './list.js' +import Node, { + AnyNode, + ChildNode, + ChildProps, + NodeErrorOptions, + NodeProps, + Position, + Source +} from './node.js' +import Processor from './processor.js' +import Result, { Message } from './result.js' +import Root, { RootProps } from './root.js' +import Rule, { RuleProps } from './rule.js' +import Warning, { WarningOptions } from './warning.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 all`AtRule` nodes. + * + * Will be called again on node or children changes. + */ + AtRule?: { [name: string]: AtRuleProcessor } | AtRuleProcessor + + /** + * Will be called on all `AtRule` nodes, when all children will be processed. + * + * Will be called again on node or children changes. + */ + AtRuleExit?: { [name: string]: AtRuleProcessor } | AtRuleProcessor + + /** + * Will be called on all `Comment` nodes. + * + * Will be called again on node or children changes. + */ + Comment?: CommentProcessor + + /** + * Will be called on all `Comment` nodes after listeners + * for `Comment` event. + * + * Will be called again on node or children changes. + */ + CommentExit?: CommentProcessor + + /** + * Will be called on all `Declaration` nodes after listeners + * for `Declaration` event. + * + * Will be called again on node or children changes. + */ + Declaration?: { [prop: string]: DeclarationProcessor } | DeclarationProcessor + + /** + * Will be called on all `Declaration` nodes. + * + * Will be called again on node or children changes. + */ + DeclarationExit?: + | { [prop: string]: DeclarationProcessor } + | DeclarationProcessor + + /** + * 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 `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 +} + +declare namespace postcss { + export { + AnyNode, + AtRule, + AtRuleProps, + ChildNode, + ChildProps, + Comment, + CommentProps, + Container, + ContainerProps, + CssSyntaxError, + Declaration, + DeclarationProps, + Document, + DocumentProps, + FilePosition, + Input, + LazyResult, + list, + Message, + Node, + NodeErrorOptions, + NodeProps, + Position, + Processor, + Result, + Root, + RootProps, + Rule, + RuleProps, + Source, + Warning, + WarningOptions + } + + export type SourceMap = { + toJSON(): RawSourceMap + } & SourceMapGenerator + + export type Helpers = { postcss: Postcss; result: Result } & 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 = + | { + postcss: Processor | TransformCallback + } + | OldPlugin + | Plugin + | PluginCreator + | Processor + | TransformCallback + + export interface Parser { + ( + css: { toString(): string } | string, + opts?: Pick + ): RootNode + } + + export interface Builder { + (part: string, node?: AnyNode, type?: 'end' | 'start'): 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 { + /** + * Use absolute path in generated source map. + */ + absolute?: 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?: ((file: string, root: Root) => string) | boolean | string + + /** + * Override `from` in map’s sources. + */ + from?: string + + /** + * 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?: ((file: string) => string) | boolean | object | 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 + } + + 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 | undefined + + /** + * Source map options + */ + map?: boolean | SourceMapOptions + + /** + * Function to generate AST by string. + */ + parser?: Parser | Syntax + + /** + * Class to generate string by AST. + */ + stringifier?: Stringifier | Syntax + + /** + * Object with parse and stringify. + */ + syntax?: Syntax + + /** + * The path where you'll put the output CSS file. You should always set `to` + * to generate correct source maps. + */ + to?: string + } + + 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..23edeb5 --- /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_ { + /** + * `sourceMappingURL` content. + */ + annotation?: string + + /** + * The CSS source identifier. Contains `Input#file` if the user + * set the `from` option, or `Input#id` if they did not. + */ + file?: string + + /** + * Was source map inlined by data-uri to input CSS. + */ + inline: boolean + + /** + * Path to source map file. + */ + mapFile?: string + + /** + * The directory with source map file, if source map is in separated file. + */ + root?: string + + /** + * Source map file content. + */ + text?: 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..8eba9ad --- /dev/null +++ b/node_modules/postcss/lib/previous-map.js @@ -0,0 +1,144 @@ +'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 + } + + 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,/ + + let uriMatch = text.match(charsetUri) || text.match(uri) + if (uriMatch) { + return decodeURIComponent(text.substr(uriMatch[0].length)) + } + + let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri) + if (baseUriMatch) { + return fromBase64(text.substr(baseUriMatch[0].length)) + } + + let encoding = text.match(/data:application\/json;([^,]+),/)[1] + throw new Error('Unsupported source map encoding ' + encoding) + } + + getAnnotationURL(sourceMapString) { + return sourceMapString.replace(/^\/\*\s*# sourceMappingURL=/, '').trim() + } + + isMap(map) { + if (typeof map !== 'object') return false + return ( + typeof map.mappings === 'string' || + typeof map._mappings === 'string' || + Array.isArray(map.sections) + ) + } + + loadAnnotation(css) { + let comments = css.match(/\/\*\s*# sourceMappingURL=/g) + 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)) + } + } + + 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) + } + } + + startWith(string, start) { + if (!string) return false + return string.substr(0, start.length) === start + } + + withContent() { + return !!( + this.consumer().sourcesContent && + this.consumer().sourcesContent.length > 0 + ) + } +} + +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..50c9a07 --- /dev/null +++ b/node_modules/postcss/lib/processor.d.ts @@ -0,0 +1,115 @@ +import Document from './document.js' +import LazyResult from './lazy-result.js' +import NoWorkResult from './no-work-result.js' +import { + AcceptedPlugin, + Plugin, + ProcessOptions, + TransformCallback, + Transformer +} from './postcss.js' +import Result from './result.js' +import Root from './root.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_ { + /** + * Plugins added to this processor. + * + * ```js + * const processor = postcss([autoprefixer, postcssNested]) + * processor.plugins.length //=> 2 + * ``` + */ + plugins: (Plugin | TransformCallback | Transformer)[] + + /** + * Current PostCSS version. + * + * ```js + * if (result.processor.version.split('.')[0] !== '6') { + * throw new Error('This plugin works only with PostCSS 6') + * } + * ``` + */ + version: string + + /** + * @param plugins PostCSS plugins + */ + constructor(plugins?: AcceptedPlugin[]) + + /** + * 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: { toString(): string } | LazyResult | Result | Root | string + ): LazyResult | NoWorkResult + process( + css: { toString(): string } | LazyResult | Result | Root | string, + options: ProcessOptions + ): LazyResult + + /** + * 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 +} + +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..08a4095 --- /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.41' + this.plugins = this.normalize(plugins) + } + + 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 + } + + process(css, opts = {}) { + if ( + !this.plugins.length && + !opts.parser && + !opts.stringifier && + !opts.syntax + ) { + return new NoWorkResult(this, css, opts) + } else { + return new LazyResult(this, css, opts) + } + } + + use(plugin) { + this.plugins = this.plugins.concat(this.normalize([plugin])) + return this + } +} + +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..40e086f --- /dev/null +++ b/node_modules/postcss/lib/result.d.ts @@ -0,0 +1,205 @@ +import { + Document, + Node, + Plugin, + ProcessOptions, + Root, + SourceMap, + TransformCallback, + Warning, + WarningOptions +} from './postcss.js' +import Processor from './processor.js' + +declare namespace Result { + export interface Message { + [others: string]: any + + /** + * Source PostCSS plugin name. + */ + plugin?: string + + /** + * Message type. + */ + type: string + } + + 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_ { + /** + * A CSS string representing of `Result#root`. + * + * ```js + * postcss.parse('a{}').toResult().css //=> "a{}" + * ``` + */ + css: string + + /** + * Last runned PostCSS plugin. + */ + lastPlugin: Plugin | TransformCallback + + /** + * 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 + + /** + * 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[] + + /** + * Options from the `Processor#process` or `Root#toResult` call + * that produced this Result instance.] + * + * ```js + * root.toResult(opts).opts === opts + * ``` + */ + opts: Result.ResultOptions + + /** + * 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 + + /** + * Root node after all transformations. + * + * ```js + * root.toResult().root === root + * ``` + */ + root: RootNode + + /** + * @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: RootNode, opts: Result.ResultOptions) + + /** + * 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[] + + /** + * An alias for the `Result#css` property. + * Use it with syntaxes that generate non-CSS output. + * + * ```js + * result.css === result.content + * ``` + */ + get content(): string +} + +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..248b704 --- /dev/null +++ b/node_modules/postcss/lib/root.d.ts @@ -0,0 +1,87 @@ +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 after `Root`, when `Root` is inside `Document`. + * + * **Experimental:** some aspects of this node could change within minor + * or patch version releases. + */ + codeAfter?: 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 + + /** + * 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 { + nodes: NonNullable + parent: Document | undefined + raws: Root.RootRaws + type: 'root' + + constructor(defaults?: Root.RootProps) + + assign(overrides: object | Root.RootProps): this + clone(overrides?: Partial): this + cloneAfter(overrides?: Partial): this + cloneBefore(overrides?: Partial): this + + /** + * 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 +} + +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..ea574ed --- /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 = [] + } + + 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 + } + + 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) + } + + 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..5e873b4 --- /dev/null +++ b/node_modules/postcss/lib/rule.d.ts @@ -0,0 +1,126 @@ +import Container, { + ContainerProps, + ContainerWithChildren +} from './container.js' + +declare namespace Rule { + export interface RuleRaws extends Record { + /** + * The space symbols after the last child of the node to the end of the node. + */ + after?: string + + /** + * The space symbols before the node. It also stores `*` + * and `_` symbols before the declaration (IE hack). + */ + before?: string + + /** + * The symbols between the selector and `{` for rules. + */ + between?: string + + /** + * Contains `true` if there is semicolon after rule. + */ + ownSemicolon?: string + + /** + * The rule’s selector with comments. + */ + selector?: { + raw: string + value: string + } + + /** + * Contains `true` if the last child has an (optional) semicolon. + */ + semicolon?: boolean + } + + export type RuleProps = ContainerProps & { + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ + raws?: RuleRaws + } & ( + | { + /** Selector or selectors of the rule. */ + selector: string + selectors?: never + } + | { + /** Selectors of the rule represented as an array of strings. */ + selectors: string[] + selector?: never + } + ) + + // 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 { + nodes: NonNullable + parent: ContainerWithChildren | undefined + raws: Rule.RuleRaws + type: 'rule' + constructor(defaults?: Rule.RuleProps) + + assign(overrides: object | Rule.RuleProps): this + clone(overrides?: Partial): this + + cloneAfter(overrides?: Partial): this + + cloneBefore(overrides?: Partial): this + /** + * The rule’s full selector represented as a string. + * + * ```js + * const root = postcss.parse('a, b { }') + * const rule = root.first + * rule.selector //=> 'a, b' + * ``` + */ + get selector(): string + set selector(value: 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' + * ``` + */ + get selectors(): string[] + set selectors(values: string[]) +} + +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..f707a6a --- /dev/null +++ b/node_modules/postcss/lib/stringifier.d.ts @@ -0,0 +1,46 @@ +import { + AnyNode, + AtRule, + Builder, + Comment, + Container, + Declaration, + Document, + Root, + Rule +} 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) + atrule(node: AtRule, semicolon?: boolean): void + beforeAfter(node: AnyNode, detect: 'after' | 'before'): string + block(node: AnyNode, start: string): void + body(node: Container): void + comment(node: Comment): void + decl(node: Declaration, semicolon?: boolean): void + document(node: Document): void + raw(node: AnyNode, own: null | string, detect?: string): string + rawBeforeClose(root: Root): string | undefined + rawBeforeComment(root: Root, node: Comment): string | undefined + rawBeforeDecl(root: Root, node: Declaration): string | undefined + rawBeforeOpen(root: Root): string | undefined + rawBeforeRule(root: Root): string | undefined + rawColon(root: Root): string | undefined + rawEmptyBody(root: Root): string | undefined + rawIndent(root: Root): string | undefined + rawSemicolon(root: Root): boolean | undefined + rawValue(node: AnyNode, prop: string): string + root(node: Root): void + rule(node: Rule): void + stringify(node: AnyNode, semicolon?: boolean): void +} + +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..e07ad12 --- /dev/null +++ b/node_modules/postcss/lib/stringifier.js @@ -0,0 +1,353 @@ +'use strict' + +const DEFAULT_RAW = { + after: '\n', + beforeClose: '\n', + beforeComment: '\n', + beforeDecl: '\n', + beforeOpen: ' ', + beforeRule: '\n', + colon: ': ', + commentLeft: ' ', + commentRight: ' ', + emptyBody: '', + indent: ' ', + semicolon: false +} + +function capitalize(str) { + return str[0].toUpperCase() + str.slice(1) +} + +class Stringifier { + constructor(builder) { + this.builder = builder + } + + 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) + } + } + + 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 + } + + 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') + } + + 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) + } + } + + 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) + } + + document(node) { + this.body(node) + } + + 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 + } + + 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 + } + + 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 + } + + rawBeforeOpen(root) { + let value + root.walk(i => { + if (i.type !== 'decl') { + value = i.raws.between + if (typeof value !== 'undefined') return false + } + }) + 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 + } + + rawColon(root) { + let value + root.walkDecls(i => { + if (typeof i.raws.between !== 'undefined') { + value = i.raws.between.replace(/[^\s:]/g, '') + 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 + } + + 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 + } + + rawValue(node, prop) { + let value = node[prop] + let raw = node.raws[prop] + if (raw && raw.value === value) { + return raw.raw + } + + return value + } + + root(node) { + this.body(node) + if (node.raws.after) this.builder(node.raws.after) + } + + rule(node) { + this.block(node, this.rawValue(node, 'selector')) + if (node.raws.ownSemicolon) { + this.builder(node.raws.ownSemicolon, node, 'end') + } + } + + 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) + } +} + +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..6196c9d --- /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 = { + ';': pico.yellow, + ':': pico.yellow, + '(': pico.cyan, + ')': pico.cyan, + '[': pico.yellow, + ']': pico.yellow, + '{': pico.yellow, + '}': pico.yellow, + 'at-word': pico.cyan, + 'brackets': pico.cyan, + 'call': pico.cyan, + 'class': pico.yellow, + 'comment': pico.gray, + 'hash': pico.magenta, + 'string': pico.green +} + +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..39a20a3 --- /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 = /.[\r\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, + endOfFile, + nextToken, + 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..b25bba8 --- /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 { + /** + * End position, exclusive, in CSS node string that caused the warning. + */ + end?: RangePosition + + /** + * End index, exclusive, in CSS node string that caused the warning. + */ + endIndex?: number + + /** + * Start index, inclusive, in CSS node string that caused the warning. + */ + index?: number + + /** + * CSS node that caused the warning. + */ + node?: Node + + /** + * Name of the plugin that created this warning. `Result#warn` fills + * this property automatically. + */ + plugin?: string + + /** + * Start position, inclusive, in CSS node string that caused the warning. + */ + start?: RangePosition + + /** + * Word in CSS source that caused the warning. + */ + word?: 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_ { + /** + * Column for inclusive start position in the input file with this warning’s source. + * + * ```js + * warning.column //=> 6 + * ``` + */ + column: number + + /** + * Column for exclusive end position in the input file with this warning’s source. + * + * ```js + * warning.endColumn //=> 4 + * ``` + */ + endColumn?: number + + /** + * Line for exclusive end position in the input file with this warning’s source. + * + * ```js + * warning.endLine //=> 6 + * ``` + */ + endLine?: number + + /** + * Line for inclusive start position in the input file with this warning’s source. + * + * ```js + * warning.line //=> 5 + * ``` + */ + line: number + + /** + * Contains the CSS node that caused the warning. + * + * ```js + * warning.node.toString() //=> 'color: white !important' + * ``` + */ + node: Node + + /** + * 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 + + /** + * The warning message. + * + * ```js + * warning.text //=> 'Try to avoid !important' + * ``` + */ + text: string + + /** + * Type to filter warnings from `Result#messages`. + * Always equal to `"warning"`. + */ + type: 'warning' + + /** + * @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..3a3d79c --- /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, { + index: this.index, + plugin: this.plugin, + 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 100644 index 0000000..991d040 --- /dev/null +++ b/node_modules/postcss/package.json @@ -0,0 +1,88 @@ +{ + "name": "postcss", + "version": "8.4.41", + "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.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "browser": { + "./lib/terminal-highlight": false, + "source-map-js": false, + "path": false, + "url": false, + "fs": false + } +} diff --git a/node_modules/prop-types/LICENSE b/node_modules/prop-types/LICENSE new file mode 100644 index 0000000..188fb2b --- /dev/null +++ b/node_modules/prop-types/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2013-present, Facebook, Inc. + +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/prop-types/README.md b/node_modules/prop-types/README.md new file mode 100644 index 0000000..e54d435 --- /dev/null +++ b/node_modules/prop-types/README.md @@ -0,0 +1,302 @@ +# prop-types [![Build Status](https://travis-ci.com/facebook/prop-types.svg?branch=main)](https://travis-ci.org/facebook/prop-types) + +Runtime type checking for React props and similar objects. + +You can use prop-types to document the intended types of properties passed to +components. React (and potentially other libraries—see the `checkPropTypes()` +reference below) will check props passed to your components against those +definitions, and warn in development if they don’t match. + +## Installation + +```shell +npm install --save prop-types +``` + +## Importing + +```js +import PropTypes from 'prop-types'; // ES6 +var PropTypes = require('prop-types'); // ES5 with npm +``` + +### CDN + +If you prefer to exclude `prop-types` from your application and use it +globally via `window.PropTypes`, the `prop-types` package provides +single-file distributions, which are hosted on the following CDNs: + +* [**unpkg**](https://unpkg.com/prop-types/) +```html + + + + + +``` + +* [**cdnjs**](https://cdnjs.com/libraries/prop-types) +```html + + + + + +``` + +To load a specific version of `prop-types` replace `15.6.0` with the version number. + +## Usage + +PropTypes was originally exposed as part of the React core module, and is +commonly used with React components. +Here is an example of using PropTypes with a React component, which also +documents the different validators provided: + +```js +import React from 'react'; +import PropTypes from 'prop-types'; + +class MyComponent extends React.Component { + render() { + // ... do things with the props + } +} + +MyComponent.propTypes = { + // You can declare that a prop is a specific JS primitive. By default, these + // are all optional. + optionalArray: PropTypes.array, + optionalBigInt: PropTypes.bigint, + optionalBool: PropTypes.bool, + optionalFunc: PropTypes.func, + optionalNumber: PropTypes.number, + optionalObject: PropTypes.object, + optionalString: PropTypes.string, + optionalSymbol: PropTypes.symbol, + + // Anything that can be rendered: numbers, strings, elements or an array + // (or fragment) containing these types. + // see https://reactjs.org/docs/rendering-elements.html for more info + optionalNode: PropTypes.node, + + // A React element (ie. ). + optionalElement: PropTypes.element, + + // A React element type (eg. MyComponent). + // a function, string, or "element-like" object (eg. React.Fragment, Suspense, etc.) + // see https://github.com/facebook/react/blob/HEAD/packages/shared/isValidElementType.js + optionalElementType: PropTypes.elementType, + + // You can also declare that a prop is an instance of a class. This uses + // JS's instanceof operator. + optionalMessage: PropTypes.instanceOf(Message), + + // You can ensure that your prop is limited to specific values by treating + // it as an enum. + optionalEnum: PropTypes.oneOf(['News', 'Photos']), + + // An object that could be one of many types + optionalUnion: PropTypes.oneOfType([ + PropTypes.string, + PropTypes.number, + PropTypes.instanceOf(Message) + ]), + + // An array of a certain type + optionalArrayOf: PropTypes.arrayOf(PropTypes.number), + + // An object with property values of a certain type + optionalObjectOf: PropTypes.objectOf(PropTypes.number), + + // You can chain any of the above with `isRequired` to make sure a warning + // is shown if the prop isn't provided. + + // An object taking on a particular shape + optionalObjectWithShape: PropTypes.shape({ + optionalProperty: PropTypes.string, + requiredProperty: PropTypes.number.isRequired + }), + + // An object with warnings on extra properties + optionalObjectWithStrictShape: PropTypes.exact({ + optionalProperty: PropTypes.string, + requiredProperty: PropTypes.number.isRequired + }), + + requiredFunc: PropTypes.func.isRequired, + + // A value of any data type + requiredAny: PropTypes.any.isRequired, + + // You can also specify a custom validator. It should return an Error + // object if the validation fails. Don't `console.warn` or throw, as this + // won't work inside `oneOfType`. + customProp: function(props, propName, componentName) { + if (!/matchme/.test(props[propName])) { + return new Error( + 'Invalid prop `' + propName + '` supplied to' + + ' `' + componentName + '`. Validation failed.' + ); + } + }, + + // You can also supply a custom validator to `arrayOf` and `objectOf`. + // It should return an Error object if the validation fails. The validator + // will be called for each key in the array or object. The first two + // arguments of the validator are the array or object itself, and the + // current item's key. + customArrayProp: PropTypes.arrayOf(function(propValue, key, componentName, location, propFullName) { + if (!/matchme/.test(propValue[key])) { + return new Error( + 'Invalid prop `' + propFullName + '` supplied to' + + ' `' + componentName + '`. Validation failed.' + ); + } + }) +}; +``` + +Refer to the [React documentation](https://facebook.github.io/react/docs/typechecking-with-proptypes.html) for more information. + +## Migrating from React.PropTypes + +Check out [Migrating from React.PropTypes](https://facebook.github.io/react/blog/2017/04/07/react-v15.5.0.html#migrating-from-react.proptypes) for details on how to migrate to `prop-types` from `React.PropTypes`. + +Note that this blog posts **mentions a codemod script that performs the conversion automatically**. + +There are also important notes below. + +## How to Depend on This Package? + +For apps, we recommend putting it in `dependencies` with a caret range. +For example: + +```js + "dependencies": { + "prop-types": "^15.5.7" + } +``` + +For libraries, we *also* recommend leaving it in `dependencies`: + +```js + "dependencies": { + "prop-types": "^15.5.7" + }, + "peerDependencies": { + "react": "^15.5.0" + } +``` + +**Note:** there are known issues in versions before 15.5.7 so we recommend using it as the minimal version. + +Make sure that the version range uses a caret (`^`) and thus is broad enough for npm to efficiently deduplicate packages. + +For UMD bundles of your components, make sure you **don’t** include `PropTypes` in the build. Usually this is done by marking it as an external (the specifics depend on your bundler), just like you do with React. + +## Compatibility + +### React 0.14 + +This package is compatible with **React 0.14.9**. Compared to 0.14.8 (which was released in March of 2016), there are no other changes in 0.14.9, so it should be a painless upgrade. + +```shell +# ATTENTION: Only run this if you still use React 0.14! +npm install --save react@^0.14.9 react-dom@^0.14.9 +``` + +### React 15+ + +This package is compatible with **React 15.3.0** and higher. + +``` +npm install --save react@^15.3.0 react-dom@^15.3.0 +``` + +### What happens on other React versions? + +It outputs warnings with the message below even though the developer doesn’t do anything wrong. Unfortunately there is no solution for this other than updating React to either 15.3.0 or higher, or 0.14.9 if you’re using React 0.14. + +## Difference from `React.PropTypes`: Don’t Call Validator Functions + +First of all, **which version of React are you using**? You might be seeing this message because a component library has updated to use `prop-types` package, but your version of React is incompatible with it. See the [above section](#compatibility) for more details. + +Are you using either React 0.14.9 or a version higher than React 15.3.0? Read on. + +When you migrate components to use the standalone `prop-types`, **all validator functions will start throwing an error if you call them directly**. This makes sure that nobody relies on them in production code, and it is safe to strip their implementations to optimize the bundle size. + +Code like this is still fine: + +```js +MyComponent.propTypes = { + myProp: PropTypes.bool +}; +``` + +However, code like this will not work with the `prop-types` package: + +```js +// Will not work with `prop-types` package! +var errorOrNull = PropTypes.bool(42, 'myProp', 'MyComponent', 'prop'); +``` + +It will throw an error: + +``` +Calling PropTypes validators directly is not supported by the `prop-types` package. +Use PropTypes.checkPropTypes() to call them. +``` + +(If you see **a warning** rather than an error with this message, please check the [above section about compatibility](#compatibility).) + +This is new behavior, and you will only encounter it when you migrate from `React.PropTypes` to the `prop-types` package. For the vast majority of components, this doesn’t matter, and if you didn’t see [this warning](https://facebook.github.io/react/warnings/dont-call-proptypes.html) in your components, your code is safe to migrate. This is not a breaking change in React because you are only opting into this change for a component by explicitly changing your imports to use `prop-types`. If you temporarily need the old behavior, you can keep using `React.PropTypes` until React 16. + +**If you absolutely need to trigger the validation manually**, call `PropTypes.checkPropTypes()`. Unlike the validators themselves, this function is safe to call in production, as it will be replaced by an empty function: + +```js +// Works with standalone PropTypes +PropTypes.checkPropTypes(MyComponent.propTypes, props, 'prop', 'MyComponent'); +``` +See below for more info. + +**If you DO want to use validation in production**, you can choose to use the **development version** by importing/requiring `prop-types/prop-types` instead of `prop-types`. + +**You might also see this error** if you’re calling a `PropTypes` validator from your own custom `PropTypes` validator. In this case, the fix is to make sure that you are passing *all* of the arguments to the inner function. There is a more in-depth explanation of how to fix it [on this page](https://facebook.github.io/react/warnings/dont-call-proptypes.html#fixing-the-false-positive-in-third-party-proptypes). Alternatively, you can temporarily keep using `React.PropTypes` until React 16, as it would still only warn in this case. + +If you use a bundler like Browserify or Webpack, don’t forget to [follow these instructions](https://reactjs.org/docs/optimizing-performance.html#use-the-production-build) to correctly bundle your application in development or production mode. Otherwise you’ll ship unnecessary code to your users. + +## PropTypes.checkPropTypes + +React will automatically check the propTypes you set on the component, but if +you are using PropTypes without React then you may want to manually call +`PropTypes.checkPropTypes`, like so: + +```js +const myPropTypes = { + name: PropTypes.string, + age: PropTypes.number, + // ... define your prop validations +}; + +const props = { + name: 'hello', // is valid + age: 'world', // not valid +}; + +// Let's say your component is called 'MyComponent' + +// Works with standalone PropTypes +PropTypes.checkPropTypes(myPropTypes, props, 'prop', 'MyComponent'); +// This will warn as follows: +// Warning: Failed prop type: Invalid prop `age` of type `string` supplied to +// `MyComponent`, expected `number`. +``` + +## PropTypes.resetWarningCache() + +`PropTypes.checkPropTypes(...)` only `console.error`s a given message once. To reset the error warning cache in tests, call `PropTypes.resetWarningCache()` + +### License + +prop-types is [MIT licensed](./LICENSE). diff --git a/node_modules/prop-types/checkPropTypes.js b/node_modules/prop-types/checkPropTypes.js new file mode 100644 index 0000000..481f2cf --- /dev/null +++ b/node_modules/prop-types/checkPropTypes.js @@ -0,0 +1,103 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var printWarning = function() {}; + +if (process.env.NODE_ENV !== 'production') { + var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret'); + var loggedTypeFailures = {}; + var has = require('./lib/has'); + + printWarning = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) { /**/ } + }; +} + +/** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ +function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + if (process.env.NODE_ENV !== 'production') { + for (var typeSpecName in typeSpecs) { + if (has(typeSpecs, typeSpecName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + if (typeof typeSpecs[typeSpecName] !== 'function') { + var err = Error( + (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.' + ); + err.name = 'Invariant Violation'; + throw err; + } + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); + } catch (ex) { + error = ex; + } + if (error && !(error instanceof Error)) { + printWarning( + (componentName || 'React class') + ': type specification of ' + + location + ' `' + typeSpecName + '` is invalid; the type checker ' + + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + + 'You may have forgotten to pass an argument to the type checker ' + + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + + 'shape all require an argument).' + ); + } + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var stack = getStack ? getStack() : ''; + + printWarning( + 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') + ); + } + } + } + } +} + +/** + * Resets warning cache when testing. + * + * @private + */ +checkPropTypes.resetWarningCache = function() { + if (process.env.NODE_ENV !== 'production') { + loggedTypeFailures = {}; + } +} + +module.exports = checkPropTypes; diff --git a/node_modules/prop-types/factory.js b/node_modules/prop-types/factory.js new file mode 100644 index 0000000..abdf8e6 --- /dev/null +++ b/node_modules/prop-types/factory.js @@ -0,0 +1,19 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +// React 15.5 references this module, and assumes PropTypes are still callable in production. +// Therefore we re-export development-only version with all the PropTypes checks here. +// However if one is migrating to the `prop-types` npm library, they will go through the +// `index.js` entry point, and it will branch depending on the environment. +var factory = require('./factoryWithTypeCheckers'); +module.exports = function(isValidElement) { + // It is still allowed in 15.5. + var throwOnDirectAccess = false; + return factory(isValidElement, throwOnDirectAccess); +}; diff --git a/node_modules/prop-types/factoryWithThrowingShims.js b/node_modules/prop-types/factoryWithThrowingShims.js new file mode 100644 index 0000000..ac88267 --- /dev/null +++ b/node_modules/prop-types/factoryWithThrowingShims.js @@ -0,0 +1,65 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret'); + +function emptyFunction() {} +function emptyFunctionWithReset() {} +emptyFunctionWithReset.resetWarningCache = emptyFunction; + +module.exports = function() { + function shim(props, propName, componentName, location, propFullName, secret) { + if (secret === ReactPropTypesSecret) { + // It is still safe when called from React. + return; + } + var err = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use PropTypes.checkPropTypes() to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + err.name = 'Invariant Violation'; + throw err; + }; + shim.isRequired = shim; + function getShim() { + return shim; + }; + // Important! + // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. + var ReactPropTypes = { + array: shim, + bigint: shim, + bool: shim, + func: shim, + number: shim, + object: shim, + string: shim, + symbol: shim, + + any: shim, + arrayOf: getShim, + element: shim, + elementType: shim, + instanceOf: getShim, + node: shim, + objectOf: getShim, + oneOf: getShim, + oneOfType: getShim, + shape: getShim, + exact: getShim, + + checkPropTypes: emptyFunctionWithReset, + resetWarningCache: emptyFunction + }; + + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; diff --git a/node_modules/prop-types/factoryWithTypeCheckers.js b/node_modules/prop-types/factoryWithTypeCheckers.js new file mode 100644 index 0000000..a88068e --- /dev/null +++ b/node_modules/prop-types/factoryWithTypeCheckers.js @@ -0,0 +1,610 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var ReactIs = require('react-is'); +var assign = require('object-assign'); + +var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret'); +var has = require('./lib/has'); +var checkPropTypes = require('./checkPropTypes'); + +var printWarning = function() {}; + +if (process.env.NODE_ENV !== 'production') { + printWarning = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; +} + +function emptyFunctionThatReturnsNull() { + return null; +} + +module.exports = function(isValidElement, throwOnDirectAccess) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + var ANONYMOUS = '<>'; + + // Important! + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bigint: createPrimitiveTypeChecker('bigint'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + elementType: createElementTypeTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker, + exact: createStrictShapeTypeChecker, + }; + + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ + function PropTypeError(message, data) { + this.message = message; + this.data = data && typeof data === 'object' ? data: {}; + this.stack = ''; + } + // Make `instanceof Error` still work for returned errors. + PropTypeError.prototype = Error.prototype; + + function createChainableTypeChecker(validate) { + if (process.env.NODE_ENV !== 'production') { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + + if (secret !== ReactPropTypesSecret) { + if (throwOnDirectAccess) { + // New behavior only for users of `prop-types` package + var err = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use `PropTypes.checkPropTypes()` to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + err.name = 'Invariant Violation'; + throw err; + } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') { + // Old behavior for people using React.PropTypes + var cacheKey = componentName + ':' + propName; + if ( + !manualPropTypeCallCache[cacheKey] && + // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3 + ) { + printWarning( + 'You are manually calling a React.PropTypes validation ' + + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + + 'and will throw in the standalone `prop-types` package. ' + + 'You may be seeing this warning due to a third-party PropTypes ' + + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' + ); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; + } + + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + + return new PropTypeError( + 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'), + {expectedType: expectedType} + ); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunctionThatReturnsNull); + } + + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!ReactIs.isValidElementType(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + if (process.env.NODE_ENV !== 'production') { + if (arguments.length > 1) { + printWarning( + 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' + ); + } else { + printWarning('Invalid argument supplied to oneOf, expected an array.'); + } + } + return emptyFunctionThatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { + var type = getPreciseType(value); + if (type === 'symbol') { + return String(value); + } + return value; + }); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (has(propValue, key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; + return emptyFunctionThatReturnsNull; + } + + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== 'function') { + printWarning( + 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' + ); + return emptyFunctionThatReturnsNull; + } + } + + function validate(props, propName, componentName, location, propFullName) { + var expectedTypes = []; + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret); + if (checkerResult == null) { + return null; + } + if (checkerResult.data && has(checkerResult.data, 'expectedType')) { + expectedTypes.push(checkerResult.data.expectedType); + } + } + var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': ''; + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function invalidValidatorError(componentName, location, propFullName, key, type) { + return new PropTypeError( + (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' + + 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.' + ); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (typeof checker !== 'function') { + return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker)); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createStrictShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + // We need to check all keys in case some are required but missing from props. + var allKeys = assign({}, props[propName], shapeTypes); + for (var key in allKeys) { + var checker = shapeTypes[key]; + if (has(shapeTypes, key) && typeof checker !== 'function') { + return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker)); + } + if (!checker) { + return new PropTypeError( + 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') + ); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // falsy value can't be a Symbol + if (!propValue) { + return false; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + default: + return type; + } + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; diff --git a/node_modules/prop-types/index.js b/node_modules/prop-types/index.js new file mode 100644 index 0000000..e9ef51d --- /dev/null +++ b/node_modules/prop-types/index.js @@ -0,0 +1,19 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +if (process.env.NODE_ENV !== 'production') { + var ReactIs = require('react-is'); + + // By explicitly using `prop-types` you are opting into new development behavior. + // http://fb.me/prop-types-in-prod + var throwOnDirectAccess = true; + module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess); +} else { + // By explicitly using `prop-types` you are opting into new production behavior. + // http://fb.me/prop-types-in-prod + module.exports = require('./factoryWithThrowingShims')(); +} diff --git a/node_modules/prop-types/lib/ReactPropTypesSecret.js b/node_modules/prop-types/lib/ReactPropTypesSecret.js new file mode 100644 index 0000000..f54525e --- /dev/null +++ b/node_modules/prop-types/lib/ReactPropTypesSecret.js @@ -0,0 +1,12 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + +module.exports = ReactPropTypesSecret; diff --git a/node_modules/prop-types/lib/has.js b/node_modules/prop-types/lib/has.js new file mode 100644 index 0000000..007bae3 --- /dev/null +++ b/node_modules/prop-types/lib/has.js @@ -0,0 +1 @@ +module.exports = Function.call.bind(Object.prototype.hasOwnProperty); diff --git a/node_modules/prop-types/package.json b/node_modules/prop-types/package.json new file mode 100644 index 0000000..63daf70 --- /dev/null +++ b/node_modules/prop-types/package.json @@ -0,0 +1,60 @@ +{ + "name": "prop-types", + "version": "15.8.1", + "description": "Runtime type checking for React props and similar objects.", + "sideEffects": false, + "main": "index.js", + "license": "MIT", + "files": [ + "LICENSE", + "README.md", + "checkPropTypes.js", + "factory.js", + "factoryWithThrowingShims.js", + "factoryWithTypeCheckers.js", + "index.js", + "prop-types.js", + "prop-types.min.js", + "lib" + ], + "repository": "facebook/prop-types", + "keywords": [ + "react" + ], + "bugs": { + "url": "https://github.com/facebook/prop-types/issues" + }, + "homepage": "https://facebook.github.io/react/", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + }, + "scripts": { + "pretest": "npm run lint", + "lint": "eslint .", + "test": "npm run tests-only", + "tests-only": "jest", + "umd": "NODE_ENV=development browserify index.js -t loose-envify --standalone PropTypes -o prop-types.js", + "umd-min": "NODE_ENV=production browserify index.js -t loose-envify -t uglifyify --standalone PropTypes -p bundle-collapser/plugin -o | uglifyjs --compress unused,dead_code -o prop-types.min.js", + "build": "yarn umd && yarn umd-min", + "prepublish": "not-in-publish || yarn build" + }, + "devDependencies": { + "babel-jest": "^19.0.0", + "babel-preset-react": "^6.24.1", + "browserify": "^16.5.0", + "bundle-collapser": "^1.4.0", + "eslint": "^8.6.0", + "in-publish": "^2.0.1", + "jest": "^19.0.2", + "react": "^15.7.0", + "uglifyify": "^5.0.2", + "uglifyjs": "^2.4.11" + }, + "browserify": { + "transform": [ + "loose-envify" + ] + } +} diff --git a/node_modules/prop-types/prop-types.js b/node_modules/prop-types/prop-types.js new file mode 100644 index 0000000..a5a15dd --- /dev/null +++ b/node_modules/prop-types/prop-types.js @@ -0,0 +1,1315 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.PropTypes = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 1) { + printWarning( + 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' + ); + } else { + printWarning('Invalid argument supplied to oneOf, expected an array.'); + } + } + return emptyFunctionThatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { + var type = getPreciseType(value); + if (type === 'symbol') { + return String(value); + } + return value; + }); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (has(propValue, key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + "development" !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; + return emptyFunctionThatReturnsNull; + } + + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== 'function') { + printWarning( + 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' + ); + return emptyFunctionThatReturnsNull; + } + } + + function validate(props, propName, componentName, location, propFullName) { + var expectedTypes = []; + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret); + if (checkerResult == null) { + return null; + } + if (checkerResult.data.hasOwnProperty('expectedType')) { + expectedTypes.push(checkerResult.data.expectedType); + } + } + var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': ''; + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function invalidValidatorError(componentName, location, propFullName, key, type) { + return new PropTypeError( + (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' + + 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.' + ); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (typeof checker !== 'function') { + return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker)); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createStrictShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + // We need to check all keys in case some are required but missing from props. + var allKeys = assign({}, props[propName], shapeTypes); + for (var key in allKeys) { + var checker = shapeTypes[key]; + if (has(shapeTypes, key) && typeof checker !== 'function') { + return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker)); + } + if (!checker) { + return new PropTypeError( + 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') + ); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // falsy value can't be a Symbol + if (!propValue) { + return false; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + default: + return type; + } + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; + +},{"./checkPropTypes":1,"./lib/ReactPropTypesSecret":5,"./lib/has":6,"object-assign":7,"react-is":11}],4:[function(require,module,exports){ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +if ("development" !== 'production') { + var ReactIs = require('react-is'); + + // By explicitly using `prop-types` you are opting into new development behavior. + // http://fb.me/prop-types-in-prod + var throwOnDirectAccess = true; + module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess); +} else { + // By explicitly using `prop-types` you are opting into new production behavior. + // http://fb.me/prop-types-in-prod + module.exports = require('./factoryWithThrowingShims')(); +} + +},{"./factoryWithThrowingShims":2,"./factoryWithTypeCheckers":3,"react-is":11}],5:[function(require,module,exports){ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + +module.exports = ReactPropTypesSecret; + +},{}],6:[function(require,module,exports){ +module.exports = Function.call.bind(Object.prototype.hasOwnProperty); + +},{}],7:[function(require,module,exports){ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +'use strict'; +/* eslint-disable no-unused-vars */ +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var propIsEnumerable = Object.prototype.propertyIsEnumerable; + +function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); +} + +function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } +} + +module.exports = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; +}; + +},{}],8:[function(require,module,exports){ +// shim for using process in browser +var process = module.exports = {}; + +// cached from whatever global is present so that test runners that stub it +// don't break things. But we need to wrap it in a try catch in case it is +// wrapped in strict mode code which doesn't define any globals. It's inside a +// function because try/catches deoptimize in certain engines. + +var cachedSetTimeout; +var cachedClearTimeout; + +function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); +} +function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); +} +(function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } +} ()) +function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + +} +function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + +} +var queue = []; +var draining = false; +var currentQueue; +var queueIndex = -1; + +function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } +} + +function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); +} + +process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } +}; + +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun; + this.array = array; +} +Item.prototype.run = function () { + this.fun.apply(null, this.array); +}; +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; +process.prependListener = noop; +process.prependOnceListener = noop; + +process.listeners = function (name) { return [] } + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; + +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; + +},{}],9:[function(require,module,exports){ +(function (process){(function (){ +/** @license React v16.13.1 + * react-is.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + + + +if (process.env.NODE_ENV !== "production") { + (function() { +'use strict'; + +// The Symbol used to tag the ReactElement-like types. If there is no native Symbol +// nor polyfill, then a plain number is used for performance. +var hasSymbol = typeof Symbol === 'function' && Symbol.for; +var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; +var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; +var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; +var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; +var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; +var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; +var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary +// (unstable) APIs that have been removed. Can we remove the symbols? + +var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; +var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; +var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; +var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; +var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; +var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; +var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; +var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; +var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; +var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; +var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; + +function isValidElementType(type) { + return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); +} + +function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + return type; + + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + + default: + return $$typeof; + } + + } + + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; +} // AsyncMode is deprecated along with isAsyncMode + +var AsyncMode = REACT_ASYNC_MODE_TYPE; +var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; +var ContextConsumer = REACT_CONTEXT_TYPE; +var ContextProvider = REACT_PROVIDER_TYPE; +var Element = REACT_ELEMENT_TYPE; +var ForwardRef = REACT_FORWARD_REF_TYPE; +var Fragment = REACT_FRAGMENT_TYPE; +var Lazy = REACT_LAZY_TYPE; +var Memo = REACT_MEMO_TYPE; +var Portal = REACT_PORTAL_TYPE; +var Profiler = REACT_PROFILER_TYPE; +var StrictMode = REACT_STRICT_MODE_TYPE; +var Suspense = REACT_SUSPENSE_TYPE; +var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated + +function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint + + console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); + } + } + + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; +} +function isConcurrentMode(object) { + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; +} +function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; +} +function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; +} +function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; +} +function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; +} +function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; +} +function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; +} +function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; +} +function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; +} +function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; +} +function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; +} +function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; +} + +exports.AsyncMode = AsyncMode; +exports.ConcurrentMode = ConcurrentMode; +exports.ContextConsumer = ContextConsumer; +exports.ContextProvider = ContextProvider; +exports.Element = Element; +exports.ForwardRef = ForwardRef; +exports.Fragment = Fragment; +exports.Lazy = Lazy; +exports.Memo = Memo; +exports.Portal = Portal; +exports.Profiler = Profiler; +exports.StrictMode = StrictMode; +exports.Suspense = Suspense; +exports.isAsyncMode = isAsyncMode; +exports.isConcurrentMode = isConcurrentMode; +exports.isContextConsumer = isContextConsumer; +exports.isContextProvider = isContextProvider; +exports.isElement = isElement; +exports.isForwardRef = isForwardRef; +exports.isFragment = isFragment; +exports.isLazy = isLazy; +exports.isMemo = isMemo; +exports.isPortal = isPortal; +exports.isProfiler = isProfiler; +exports.isStrictMode = isStrictMode; +exports.isSuspense = isSuspense; +exports.isValidElementType = isValidElementType; +exports.typeOf = typeOf; + })(); +} + +}).call(this)}).call(this,require('_process')) +},{"_process":8}],10:[function(require,module,exports){ +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict';var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b? +Symbol.for("react.suspense_list"):60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.block"):60121,w=b?Symbol.for("react.fundamental"):60117,x=b?Symbol.for("react.responder"):60118,y=b?Symbol.for("react.scope"):60119; +function z(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d; +exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t}; +exports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p}; +exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z; + +},{}],11:[function(require,module,exports){ +(function (process){(function (){ +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./cjs/react-is.production.min.js'); +} else { + module.exports = require('./cjs/react-is.development.js'); +} + +}).call(this)}).call(this,require('_process')) +},{"./cjs/react-is.development.js":9,"./cjs/react-is.production.min.js":10,"_process":8}]},{},[4])(4) +}); diff --git a/node_modules/prop-types/prop-types.min.js b/node_modules/prop-types/prop-types.min.js new file mode 100644 index 0000000..7a746e1 --- /dev/null +++ b/node_modules/prop-types/prop-types.min.js @@ -0,0 +1 @@ +!function(f){"object"==typeof exports&&"undefined"!=typeof module?module.exports=f():"function"==typeof define&&define.amd?define([],f):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).PropTypes=f()}(function(){return function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var p="function"==typeof require&&require;if(!f&&p)return p(i,!0);if(u)return u(i,!0);throw(p=new Error("Cannot find module '"+i+"'")).code="MODULE_NOT_FOUND",p}p=n[i]={exports:{}},e[i][0].call(p.exports,function(r){return o(e[i][1][r]||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i (https://github.com/rvagg)", + "keywords": [ + "property", + "properties", + "defineProperty", + "ender" + ], + "main": "./prr.js", + "repository": { + "type": "git", + "url": "https://github.com/rvagg/prr.git" + }, + "dependencies": {}, + "devDependencies": { + "tap": "*" + }, + "scripts": { + "test": "node ./test.js" + }, + "license": "MIT" +} diff --git a/node_modules/prr/prr.js b/node_modules/prr/prr.js new file mode 100644 index 0000000..94f5862 --- /dev/null +++ b/node_modules/prr/prr.js @@ -0,0 +1,63 @@ +/*! + * prr + * (c) 2013 Rod Vagg + * https://github.com/rvagg/prr + * License: MIT + */ + +(function (name, context, definition) { + if (typeof module != 'undefined' && module.exports) + module.exports = definition() + else + context[name] = definition() +})('prr', this, function() { + + var setProperty = typeof Object.defineProperty == 'function' + ? function (obj, key, options) { + Object.defineProperty(obj, key, options) + return obj + } + : function (obj, key, options) { // < es5 + obj[key] = options.value + return obj + } + + , makeOptions = function (value, options) { + var oo = typeof options == 'object' + , os = !oo && typeof options == 'string' + , op = function (p) { + return oo + ? !!options[p] + : os + ? options.indexOf(p[0]) > -1 + : false + } + + return { + enumerable : op('enumerable') + , configurable : op('configurable') + , writable : op('writable') + , value : value + } + } + + , prr = function (obj, key, value, options) { + var k + + options = makeOptions(value, options) + + if (typeof key == 'object') { + for (k in key) { + if (Object.hasOwnProperty.call(key, k)) { + options.value = key[k] + setProperty(obj, k, options) + } + } + return obj + } + + return setProperty(obj, key, options) + } + + return prr +}) \ No newline at end of file diff --git a/node_modules/prr/test.js b/node_modules/prr/test.js new file mode 100644 index 0000000..5222e30 --- /dev/null +++ b/node_modules/prr/test.js @@ -0,0 +1,169 @@ +const test = require('tap').test + , prr = require('./') + +test('test prr(o, key, value) form', function (t) { + t.plan(2) + + var o = {} + prr(o, 'foo', 'bar') + t.equal(o.foo, 'bar', 'correct value') + t.deepEqual( + Object.getOwnPropertyDescriptor(o, 'foo') + , { + enumerable : false + , configurable : false + , writable : false + , value : 'bar' + } + , 'correct property descriptor' + ) + t.end() +}) + +test('test prr(o, { key: value }) form', function (t) { + t.plan(2) + + var o = {} + prr(o, { foo: 'bar' }) + + t.equal(o.foo, 'bar', 'correct value') + t.deepEqual( + Object.getOwnPropertyDescriptor(o, 'foo') + , { + enumerable : false + , configurable : false + , writable : false + , value : 'bar' + } + , 'correct property descriptor' + ) + t.end() +}) + +test('test multiple key:value pairs', function (t) { + var o = { foo: 'bar' } + + prr(o, { one: 'ONE', two: 'TWO', obj: { o: 'o' }}) + + t.deepEqual(o, { foo: 'bar' }, 'properties are not enumerable') + t.equal(o.one, 'ONE', 'correctly set property') + t.equal(o.two, 'TWO', 'correctly set property') + t.deepEqual(o.obj, { o: 'o' }, 'correctly set property') + + ;[ 'one', 'two', 'obj' ].forEach(function (p) { + t.deepEqual( + Object.getOwnPropertyDescriptor(o, p) + , { + enumerable : false + , configurable : false + , writable : false + , value : p == 'obj' ? { o: 'o' } : p.toUpperCase() + } + , 'correct property descriptor' + ) + }) + + t.end() +}) + +test('test descriptor options', function (t) { + var o = {} + + prr(o, 'foo', 'bar', { + enumerable : true + , configurable : false + }) + t.equal(o.foo, 'bar', 'correct value') + t.deepEqual( + Object.getOwnPropertyDescriptor(o, 'foo') + , { + enumerable : true + , configurable : false + , writable : false + , value : 'bar' + } + , 'correct property descriptor' + ) + + prr(o, 'foo2', 'bar2', { + enumerable : true + , configurable : true + , writable : false + }) + t.equal(o.foo2, 'bar2', 'correct value') + t.deepEqual( + Object.getOwnPropertyDescriptor(o, 'foo2') + , { + enumerable : true + , configurable : true + , writable : false + , value : 'bar2' + } + , 'correct property descriptor' + ) + + prr(o, 'foo3', 'bar3', { + enumerable : true + , configurable : true + , writable : true + }) + t.equal(o.foo3, 'bar3', 'correct value') + t.deepEqual( + Object.getOwnPropertyDescriptor(o, 'foo3') + , { + enumerable : true + , configurable : true + , writable : true + , value : 'bar3' + } + , 'correct property descriptor' + ) + + t.end() +}) + + +test('test descriptor options, string form', function (t) { + var o = {} + + prr(o, 'foo', 'bar', 'e') + t.equal(o.foo, 'bar', 'correct value') + t.deepEqual( + Object.getOwnPropertyDescriptor(o, 'foo') + , { + enumerable : true + , configurable : false + , writable : false + , value : 'bar' + } + , 'correct property descriptor' + ) + + prr(o, 'foo2', 'bar2', 'ec') + t.equal(o.foo2, 'bar2', 'correct value') + t.deepEqual( + Object.getOwnPropertyDescriptor(o, 'foo2') + , { + enumerable : true + , configurable : true + , writable : false + , value : 'bar2' + } + , 'correct property descriptor' + ) + + prr(o, 'foo3', 'bar3', 'ecw') + t.equal(o.foo3, 'bar3', 'correct value') + t.deepEqual( + Object.getOwnPropertyDescriptor(o, 'foo3') + , { + enumerable : true + , configurable : true + , writable : true + , value : 'bar3' + } + , 'correct property descriptor' + ) + + t.end() +}) diff --git a/node_modules/react-circular-progressbar/LICENSE b/node_modules/react-circular-progressbar/LICENSE new file mode 100644 index 0000000..25ba7e8 --- /dev/null +++ b/node_modules/react-circular-progressbar/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Kevin Qi + +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/react-circular-progressbar/README.md b/node_modules/react-circular-progressbar/README.md new file mode 100644 index 0000000..7fe4815 --- /dev/null +++ b/node_modules/react-circular-progressbar/README.md @@ -0,0 +1,317 @@ +# React Circular Progressbar + +[![npm version](https://badge.fury.io/js/react-circular-progressbar.svg)](https://www.npmjs.com/package/react-circular-progressbar) +[![Build Status](https://travis-ci.org/kevinsqi/react-circular-progressbar.svg?branch=master)](https://travis-ci.org/kevinsqi/react-circular-progressbar) +[![Bundle size](https://img.shields.io/bundlephobia/min/react-circular-progressbar.svg)](https://bundlephobia.com/result?p=react-circular-progressbar) + +A circular progressbar component, built with SVG and extensively customizable. [**Try it out on CodeSandbox**](https://codesandbox.io/s/vymm4oln6y). + +animated progressbar progressbar examples + +## Version 2.0.0 is out! đź‘‹ + +**New features:** + +- Use `import { CircularProgressbarWithChildren }` in order to [put arbitrary JSX inside the component](/README.md#adding-arbitrary-text-or-content-inside-the-progressbar). +- Use `import { buildStyles }` to make it easier to [customize styles](/README.md#using-the-styles-prop). +- Use `props.minValue` and `props.maxValue` to specify a range other than 0-100. + +**Breaking changes:** if you're upgrading from an older version, take a look at [UPGRADING.md](/UPGRADING.md) for instructions on how to migrate. + +Documentation for v1.x.x will still be available at [README_v1.md](/README_v1.md). + +## Installation + +Install with yarn: + +```bash +yarn add react-circular-progressbar +``` + +or npm: + +```bash +npm install --save react-circular-progressbar +``` + +## Usage + +Import the component and default styles: + +```javascript +import { CircularProgressbar } from 'react-circular-progressbar'; +import 'react-circular-progressbar/dist/styles.css'; +``` + +**Note**: Importing CSS requires a CSS loader (if you're using create-react-app, this is already set up for you). If you don't have a CSS loader, you can copy [styles.css](src/styles.css) into your project instead. + +Now you can use the component: + +```jsx +const percentage = 66; + +; +``` + +If your values are not in percentages, you can adjust `minValue` and `maxValue` to select the scale you want: + +```jsx +const value = 0.66; + +; +``` + +The progressbar is designed to fill the width of its container. You can size the progressbar by sizing its container: + +```jsx +
      + +
      +``` + +This makes the progressbar work well with responsive designs and grid systems. + + +## Props + +[**Take a look at the CodeSandbox**](https://codesandbox.io/s/vymm4oln6y) for interactive examples on how to use these props. + +ℹ️ Version 1.0.0 removed the `classForPercentage` and `textForPercentage` props in favor of `className` and `text` props. Version 2.0.0 replaces `percentage` with `value` and removes the `initialAnimation` prop. Take a look at [UPGRADING.md](/UPGRADING.md) for instructions on how to migrate. + +| Name | Description | +| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `value` | Completion value of the progressbar, from `minValue` to `maxValue`. Required. | +| `minValue` | Minimum value of the progressbar. Default: `0`. | +| `maxValue` | Maximum value of the progressbar. Default: `100`. | +| `className` | Classes to apply to the svg element. Default: `''`. | +| `text` | Text to display inside progressbar. Default: `''`. | +| `strokeWidth` | Width of circular line relative to total width of component, a value from 0-100. Default: `8`. | +| `background` | Whether to display background color. Default: `false`. | +| `backgroundPadding` | Padding between background circle and path/trail relative to total width of component. Only used if `background` is `true`. Default: `0`. | +| `counterClockwise` | Whether to rotate progressbar in counterclockwise direction. Default: `false`. | +| `circleRatio` | Number from 0-1 representing ratio of the full circle diameter the progressbar should use. Default: `1`. | +| `classes` | Object allowing overrides of classNames of each svg subcomponent (root, trail, path, text, background). Enables styling with react-jss. See [this PR](https://github.com/kevinsqi/react-circular-progressbar/pull/25) for more detail. | +| `styles` | Object allowing customization of styles of each svg subcomponent (root, trail, path, text, background). | + +## Theming (customizing styles) + +Use CSS or inline styles to customize the styling - the default CSS is a good starting point, but you can override it as needed. + +#### Using the `styles` prop + +You can use the `styles` prop to customize each part of the progressbar (the root svg, path, trail, text, and background). This uses the native `style` prop for each subcomponent, so you can use any CSS properties here, not just the ones mentioned below. + +As a convenience, you can use `buildStyles` to configure the most common style changes: + +```jsx +import { CircularProgressbar, buildStyles } from 'react-circular-progressbar'; + +const percentage = 66; + +; +``` + +`buildStyles` is a shorthand, but you can also build the `styles` object yourself. It's an object with `root`, `path`, `trail`, `text`, and `background` properties, which are each a set of inline styles to apply to the relevant SVG subcomponent. Here's the equivalent set of styles as above, without using `buildStyles`: + +```jsx + +``` + +However, you're not limited to the CSS properties shown above—you have the full set of SVG CSS properties available to you when you use `prop.styles`. + +See the [CodeSandbox examples](https://codesandbox.io/s/vymm4oln6y) for a live example on how to customize styles. + +#### Using CSS + +You can also customize styles with CSS. There are equivalent CSS hooks for the root, path, trail, text, and background of the progressbar. + +If you're importing the default styles, you can override the defaults like this: + +```jsx +import 'react-circular-progressbar/dist/styles.css'; +import './custom.css'; +``` + +```css +// custom.css +.CircularProgressbar-path { + stroke: red; +} +.CircularProgressbar-trail { + stroke: gray; +} +.CircularProgressbar-text { + fill: yellow; +} +.CircularProgressbar-background { + fill: green; +} +``` + +## Adding arbitrary text or content inside the progressbar + +If you want to add multiple lines of text or images within the progressbar, you can overlay it on top of a regular `` using absolute positioning. `react-circular-progressbar` ships with a `CircularProgressbarWithChildren` component which makes it easy to do that by using JSX children: + +```jsx +import { CircularProgressbarWithChildren } from 'react-circular-progressbar'; + + + {/* Put any JSX content in here that you'd like. It'll be vertically and horizonally centered. */} + doge +
      + 66% mate +
      +
      ; +``` + +CircularProgressbarWithChildren example + +`CircularProgressbarWithChildren` has all the same props as `CircularProgressbar` - you can use it the exact same way otherwise. + +## Animating text + +If you want to animate the text as well as the path, you'll need to transition the `value` prop from one value to another using a third-party animation library like `react-move` and an easing library like `d3-ease`. + +You can use a render prop wrapper like **[AnimatedProgressProvider.js inside this Codesandbox](https://codesandbox.io/s/vymm4oln6y)** to help manage the transitioning value, and use it like this: + +```jsx +import { easeQuadInOut } from 'd3-ease'; + + + {(value) => { + const roundedValue = Math.round(value); + return ( + + ); + }} +; +``` + +## Animating progressbar upon component mount or upon visible + +**Upon component mount** + +In order to trigger the default CSS animation on mount, you'll need to change `props.value` from 0 to your desired value with a `setTimeout` in `componentDidMount`. You can use a wrapper component to help manage this like [ProgressProvider.js in this Codesandbox](https://codesandbox.io/s/0zk372m7l). Then you can do: + +```jsx + + {(value) => } + +``` + +**Upon visible** + +To animate the progressbar only when it becomes visible (e.g. if it's below the fold), you can use something like `react-visibility-sensor` which detects whether the component is visible or not. [Here's a Codesandbox example](https://codesandbox.io/s/81wzmm8n00). + +## Fixing text centering in Internet Explorer (IE) + +Because the `dominant-baseline` CSS property does not work in IE, the text may not be centered in IE. + +The **recommended way to fix this** is to instead of using `props.text`, use `CircularProgressbarWithChildren` and put your text in `props.children`, [as described here](/README.md#adding-arbitrary-text-or-content-inside-the-progressbar). + +However, you can also work around this by setting the `text` prop to be a `` element and then adjusting the `dy` vertical offset, like so: + +```jsx +// Use feature or browser detection to determine if IE +const needDominantBaselineFix = ... + +{percentage}} +/> +``` + +[See this Codesandbox example](https://codesandbox.io/s/x8o1zx7j4) to see this in action. + +## Advanced usage + +- [Applying a gradient to the progressbar](https://github.com/kevinsqi/react-circular-progressbar/issues/31#issuecomment-338216925) +- [Creating a dashboard/speedometer style progressbar](https://github.com/kevinsqi/react-circular-progressbar/issues/49) + +## Supported platforms + +react-circular-progressbar does not work with React Native, because React Native does not support `` out of the box. + +## Contributing + +Take a look at [CONTRIBUTING.md](/CONTRIBUTING.md) to see how to help contribute to react-circular-progressbar. + +## License + +[MIT](/LICENSE) diff --git a/node_modules/react-circular-progressbar/dist/CircularProgressbar.d.ts b/node_modules/react-circular-progressbar/dist/CircularProgressbar.d.ts new file mode 100644 index 0000000..e563f4e --- /dev/null +++ b/node_modules/react-circular-progressbar/dist/CircularProgressbar.d.ts @@ -0,0 +1,10 @@ +import * as React from 'react'; +import { CircularProgressbarDefaultProps, CircularProgressbarProps } from './types'; +declare class CircularProgressbar extends React.Component { + static defaultProps: CircularProgressbarDefaultProps; + getBackgroundPadding(): number; + getPathRadius(): number; + getPathRatio(): number; + render(): JSX.Element; +} +export default CircularProgressbar; diff --git a/node_modules/react-circular-progressbar/dist/CircularProgressbarWithChildren.d.ts b/node_modules/react-circular-progressbar/dist/CircularProgressbarWithChildren.d.ts new file mode 100644 index 0000000..c03bee6 --- /dev/null +++ b/node_modules/react-circular-progressbar/dist/CircularProgressbarWithChildren.d.ts @@ -0,0 +1,7 @@ +import * as React from 'react'; +import { CircularProgressbarWrapperProps } from './types'; +declare type CircularProgressbarWithChildrenProps = CircularProgressbarWrapperProps & { + children?: React.ReactNode; +}; +declare function CircularProgressbarWithChildren(props: CircularProgressbarWithChildrenProps): JSX.Element; +export default CircularProgressbarWithChildren; diff --git a/node_modules/react-circular-progressbar/dist/Path.d.ts b/node_modules/react-circular-progressbar/dist/Path.d.ts new file mode 100644 index 0000000..3ee0675 --- /dev/null +++ b/node_modules/react-circular-progressbar/dist/Path.d.ts @@ -0,0 +1,10 @@ +/// +declare function Path({ className, counterClockwise, dashRatio, pathRadius, strokeWidth, style, }: { + className?: string; + counterClockwise: boolean; + dashRatio: number; + pathRadius: number; + strokeWidth: number; + style?: object; +}): JSX.Element; +export default Path; diff --git a/node_modules/react-circular-progressbar/dist/buildStyles.d.ts b/node_modules/react-circular-progressbar/dist/buildStyles.d.ts new file mode 100644 index 0000000..1fb3791 --- /dev/null +++ b/node_modules/react-circular-progressbar/dist/buildStyles.d.ts @@ -0,0 +1,12 @@ +import { CircularProgressbarStyles } from './types'; +export default function buildStyles({ rotation, strokeLinecap, textColor, textSize, pathColor, pathTransition, pathTransitionDuration, trailColor, backgroundColor, }: { + rotation?: number; + strokeLinecap?: any; + textColor?: string; + textSize?: string | number; + pathColor?: string; + pathTransition?: string; + pathTransitionDuration?: number; + trailColor?: string; + backgroundColor?: string; +}): CircularProgressbarStyles; diff --git a/node_modules/react-circular-progressbar/dist/constants.d.ts b/node_modules/react-circular-progressbar/dist/constants.d.ts new file mode 100644 index 0000000..d13b3ea --- /dev/null +++ b/node_modules/react-circular-progressbar/dist/constants.d.ts @@ -0,0 +1,5 @@ +export declare const VIEWBOX_WIDTH = 100; +export declare const VIEWBOX_HEIGHT = 100; +export declare const VIEWBOX_HEIGHT_HALF = 50; +export declare const VIEWBOX_CENTER_X = 50; +export declare const VIEWBOX_CENTER_Y = 50; diff --git a/node_modules/react-circular-progressbar/dist/index.d.ts b/node_modules/react-circular-progressbar/dist/index.d.ts new file mode 100644 index 0000000..0a413fb --- /dev/null +++ b/node_modules/react-circular-progressbar/dist/index.d.ts @@ -0,0 +1,4 @@ +import CircularProgressbar from './CircularProgressbar'; +import CircularProgressbarWithChildren from './CircularProgressbarWithChildren'; +import buildStyles from './buildStyles'; +export { CircularProgressbar, CircularProgressbarWithChildren, buildStyles }; diff --git a/node_modules/react-circular-progressbar/dist/index.esm.js b/node_modules/react-circular-progressbar/dist/index.esm.js new file mode 100644 index 0000000..e55f23e --- /dev/null +++ b/node_modules/react-circular-progressbar/dist/index.esm.js @@ -0,0 +1,195 @@ +import { createElement, Component } from 'react'; + +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +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 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ +/* global Reflect, Promise */ + +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); +}; + +function __extends(d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} + +var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; + +function __rest(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) + t[p[i]] = s[p[i]]; + return t; +} + +var VIEWBOX_WIDTH = 100; +var VIEWBOX_HEIGHT = 100; +var VIEWBOX_HEIGHT_HALF = 50; +var VIEWBOX_CENTER_X = 50; +var VIEWBOX_CENTER_Y = 50; + +function Path(_a) { + var className = _a.className, counterClockwise = _a.counterClockwise, dashRatio = _a.dashRatio, pathRadius = _a.pathRadius, strokeWidth = _a.strokeWidth, style = _a.style; + return (createElement("path", { className: className, style: Object.assign({}, style, getDashStyle({ pathRadius: pathRadius, dashRatio: dashRatio, counterClockwise: counterClockwise })), d: getPathDescription({ + pathRadius: pathRadius, + counterClockwise: counterClockwise, + }), strokeWidth: strokeWidth, fillOpacity: 0 })); +} +function getPathDescription(_a) { + var pathRadius = _a.pathRadius, counterClockwise = _a.counterClockwise; + var radius = pathRadius; + var rotation = counterClockwise ? 1 : 0; + return "\n M " + VIEWBOX_CENTER_X + "," + VIEWBOX_CENTER_Y + "\n m 0,-" + radius + "\n a " + radius + "," + radius + " " + rotation + " 1 1 0," + 2 * radius + "\n a " + radius + "," + radius + " " + rotation + " 1 1 0,-" + 2 * radius + "\n "; +} +function getDashStyle(_a) { + var counterClockwise = _a.counterClockwise, dashRatio = _a.dashRatio, pathRadius = _a.pathRadius; + var diameter = Math.PI * 2 * pathRadius; + var gapLength = (1 - dashRatio) * diameter; + return { + strokeDasharray: diameter + "px " + diameter + "px", + strokeDashoffset: (counterClockwise ? -gapLength : gapLength) + "px", + }; +} + +var CircularProgressbar = (function (_super) { + __extends(CircularProgressbar, _super); + function CircularProgressbar() { + return _super !== null && _super.apply(this, arguments) || this; + } + CircularProgressbar.prototype.getBackgroundPadding = function () { + if (!this.props.background) { + return 0; + } + return this.props.backgroundPadding; + }; + CircularProgressbar.prototype.getPathRadius = function () { + return VIEWBOX_HEIGHT_HALF - this.props.strokeWidth / 2 - this.getBackgroundPadding(); + }; + CircularProgressbar.prototype.getPathRatio = function () { + var _a = this.props, value = _a.value, minValue = _a.minValue, maxValue = _a.maxValue; + var boundedValue = Math.min(Math.max(value, minValue), maxValue); + return (boundedValue - minValue) / (maxValue - minValue); + }; + CircularProgressbar.prototype.render = function () { + var _a = this.props, circleRatio = _a.circleRatio, className = _a.className, classes = _a.classes, counterClockwise = _a.counterClockwise, styles = _a.styles, strokeWidth = _a.strokeWidth, text = _a.text; + var pathRadius = this.getPathRadius(); + var pathRatio = this.getPathRatio(); + return (createElement("svg", { className: classes.root + " " + className, style: styles.root, viewBox: "0 0 " + VIEWBOX_WIDTH + " " + VIEWBOX_HEIGHT, "data-test-id": "CircularProgressbar" }, + this.props.background ? (createElement("circle", { className: classes.background, style: styles.background, cx: VIEWBOX_CENTER_X, cy: VIEWBOX_CENTER_Y, r: VIEWBOX_HEIGHT_HALF })) : null, + createElement(Path, { className: classes.trail, counterClockwise: counterClockwise, dashRatio: circleRatio, pathRadius: pathRadius, strokeWidth: strokeWidth, style: styles.trail }), + createElement(Path, { className: classes.path, counterClockwise: counterClockwise, dashRatio: pathRatio * circleRatio, pathRadius: pathRadius, strokeWidth: strokeWidth, style: styles.path }), + text ? (createElement("text", { className: classes.text, style: styles.text, x: VIEWBOX_CENTER_X, y: VIEWBOX_CENTER_Y }, text)) : null)); + }; + CircularProgressbar.defaultProps = { + background: false, + backgroundPadding: 0, + circleRatio: 1, + classes: { + root: 'CircularProgressbar', + trail: 'CircularProgressbar-trail', + path: 'CircularProgressbar-path', + text: 'CircularProgressbar-text', + background: 'CircularProgressbar-background', + }, + counterClockwise: false, + className: '', + maxValue: 100, + minValue: 0, + strokeWidth: 8, + styles: { + root: {}, + trail: {}, + path: {}, + text: {}, + background: {}, + }, + text: '', + }; + return CircularProgressbar; +}(Component)); + +function CircularProgressbarWithChildren(props) { + var children = props.children, circularProgressbarProps = __rest(props, ["children"]); + return (createElement("div", { "data-test-id": "CircularProgressbarWithChildren" }, + createElement("div", { style: { position: 'relative', width: '100%', height: '100%' } }, + createElement(CircularProgressbar, __assign({}, circularProgressbarProps)), + props.children ? (createElement("div", { "data-test-id": "CircularProgressbarWithChildren__children", style: { + position: 'absolute', + width: '100%', + height: '100%', + marginTop: '-100%', + display: 'flex', + flexDirection: 'column', + justifyContent: 'center', + alignItems: 'center', + } }, props.children)) : null))); +} + +function buildStyles(_a) { + var rotation = _a.rotation, strokeLinecap = _a.strokeLinecap, textColor = _a.textColor, textSize = _a.textSize, pathColor = _a.pathColor, pathTransition = _a.pathTransition, pathTransitionDuration = _a.pathTransitionDuration, trailColor = _a.trailColor, backgroundColor = _a.backgroundColor; + var rotationTransform = rotation == null ? undefined : "rotate(" + rotation + "turn)"; + var rotationTransformOrigin = rotation == null ? undefined : 'center center'; + return { + root: {}, + path: removeUndefinedValues({ + stroke: pathColor, + strokeLinecap: strokeLinecap, + transform: rotationTransform, + transformOrigin: rotationTransformOrigin, + transition: pathTransition, + transitionDuration: pathTransitionDuration == null ? undefined : pathTransitionDuration + "s", + }), + trail: removeUndefinedValues({ + stroke: trailColor, + strokeLinecap: strokeLinecap, + transform: rotationTransform, + transformOrigin: rotationTransformOrigin, + }), + text: removeUndefinedValues({ + fill: textColor, + fontSize: textSize, + }), + background: removeUndefinedValues({ + fill: backgroundColor, + }), + }; +} +function removeUndefinedValues(obj) { + Object.keys(obj).forEach(function (key) { + if (obj[key] == null) { + delete obj[key]; + } + }); + return obj; +} + +export { CircularProgressbar, CircularProgressbarWithChildren, buildStyles }; +//# sourceMappingURL=index.esm.js.map diff --git a/node_modules/react-circular-progressbar/dist/index.esm.js.map b/node_modules/react-circular-progressbar/dist/index.esm.js.map new file mode 100644 index 0000000..5ce30c7 --- /dev/null +++ b/node_modules/react-circular-progressbar/dist/index.esm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.esm.js","sources":["../src/constants.ts","../src/Path.tsx","../src/CircularProgressbar.tsx","../src/CircularProgressbarWithChildren.tsx","../src/buildStyles.ts"],"sourcesContent":["export const VIEWBOX_WIDTH = 100;\nexport const VIEWBOX_HEIGHT = 100;\nexport const VIEWBOX_HEIGHT_HALF = 50;\nexport const VIEWBOX_CENTER_X = 50;\nexport const VIEWBOX_CENTER_Y = 50;\n","import * as React from 'react';\nimport { VIEWBOX_CENTER_X, VIEWBOX_CENTER_Y } from './constants';\n\nfunction Path({\n className,\n counterClockwise,\n dashRatio,\n pathRadius,\n strokeWidth,\n style,\n}: {\n className?: string;\n counterClockwise: boolean;\n dashRatio: number;\n pathRadius: number;\n strokeWidth: number;\n style?: object;\n}) {\n return (\n \n );\n}\n\n// SVG path description specifies how the path should be drawn\nfunction getPathDescription({\n pathRadius,\n counterClockwise,\n}: {\n pathRadius: number;\n counterClockwise: boolean;\n}) {\n const radius = pathRadius;\n const rotation = counterClockwise ? 1 : 0;\n\n // Move to center of canvas\n // Relative move to top canvas\n // Relative arc to bottom of canvas\n // Relative arc to top of canvas\n return `\n M ${VIEWBOX_CENTER_X},${VIEWBOX_CENTER_Y}\n m 0,-${radius}\n a ${radius},${radius} ${rotation} 1 1 0,${2 * radius}\n a ${radius},${radius} ${rotation} 1 1 0,-${2 * radius}\n `;\n}\n\nfunction getDashStyle({\n counterClockwise,\n dashRatio,\n pathRadius,\n}: {\n counterClockwise: boolean;\n dashRatio: number;\n pathRadius: number;\n}) {\n const diameter = Math.PI * 2 * pathRadius;\n const gapLength = (1 - dashRatio) * diameter;\n\n return {\n // Have dash be full diameter, and gap be full diameter\n strokeDasharray: `${diameter}px ${diameter}px`,\n // Shift dash backward by gapLength, so gap starts appearing at correct distance\n strokeDashoffset: `${counterClockwise ? -gapLength : gapLength}px`,\n };\n}\n\nexport default Path;\n","import * as React from 'react';\n\nimport {\n VIEWBOX_WIDTH,\n VIEWBOX_HEIGHT,\n VIEWBOX_HEIGHT_HALF,\n VIEWBOX_CENTER_X,\n VIEWBOX_CENTER_Y,\n} from './constants';\nimport Path from './Path';\nimport { CircularProgressbarDefaultProps, CircularProgressbarProps } from './types';\n\nclass CircularProgressbar extends React.Component {\n static defaultProps: CircularProgressbarDefaultProps = {\n background: false,\n backgroundPadding: 0,\n circleRatio: 1,\n classes: {\n root: 'CircularProgressbar',\n trail: 'CircularProgressbar-trail',\n path: 'CircularProgressbar-path',\n text: 'CircularProgressbar-text',\n background: 'CircularProgressbar-background',\n },\n counterClockwise: false,\n className: '',\n maxValue: 100,\n minValue: 0,\n strokeWidth: 8,\n styles: {\n root: {},\n trail: {},\n path: {},\n text: {},\n background: {},\n },\n text: '',\n };\n\n getBackgroundPadding() {\n if (!this.props.background) {\n // Don't add padding if not displaying background\n return 0;\n }\n return this.props.backgroundPadding;\n }\n\n getPathRadius() {\n // The radius of the path is defined to be in the middle, so in order for the path to\n // fit perfectly inside the 100x100 viewBox, need to subtract half the strokeWidth\n return VIEWBOX_HEIGHT_HALF - this.props.strokeWidth / 2 - this.getBackgroundPadding();\n }\n\n // Ratio of path length to trail length, as a value between 0 and 1\n getPathRatio() {\n const { value, minValue, maxValue } = this.props;\n const boundedValue = Math.min(Math.max(value, minValue), maxValue);\n return (boundedValue - minValue) / (maxValue - minValue);\n }\n\n render() {\n const {\n circleRatio,\n className,\n classes,\n counterClockwise,\n styles,\n strokeWidth,\n text,\n } = this.props;\n\n const pathRadius = this.getPathRadius();\n const pathRatio = this.getPathRatio();\n\n return (\n \n {this.props.background ? (\n \n ) : null}\n\n \n\n \n\n {text ? (\n \n {text}\n \n ) : null}\n \n );\n }\n}\n\nexport default CircularProgressbar;\n","import * as React from 'react';\n\nimport CircularProgressbar from './CircularProgressbar';\nimport { CircularProgressbarWrapperProps } from './types';\n\ntype CircularProgressbarWithChildrenProps = CircularProgressbarWrapperProps & {\n children?: React.ReactNode;\n};\n\n// This is a wrapper around CircularProgressbar that allows passing children,\n// which will be vertically and horizontally centered inside the progressbar automatically.\nfunction CircularProgressbarWithChildren(props: CircularProgressbarWithChildrenProps) {\n const { children, ...circularProgressbarProps } = props;\n\n return (\n
      \n {/* Has an extra div wrapper because otherwise, adding content after\n this progressbar is spaced weirdly. */}\n
      \n {/* Progressbar is not positioned absolutely, so that it can establish\n intrinsic size for props.children's content. */}\n \n\n {/* Children are positioned absolutely, and height adapts to the\n progressbar's intrinsic size. It appears below the progressbar,\n but negative margin moves it back up. */}\n {props.children ? (\n \n {props.children}\n
      \n ) : null}\n
      \n \n );\n}\n\nexport default CircularProgressbarWithChildren;\n","import { CircularProgressbarStyles } from './types';\n\nexport default function buildStyles({\n rotation,\n strokeLinecap,\n textColor,\n textSize,\n pathColor,\n pathTransition,\n pathTransitionDuration,\n trailColor,\n backgroundColor,\n}: {\n rotation?: number; // Number of turns, 0-1\n strokeLinecap?: any;\n textColor?: string;\n textSize?: string | number;\n pathColor?: string;\n pathTransition?: string;\n pathTransitionDuration?: number; // Measured in seconds\n trailColor?: string;\n backgroundColor?: string;\n}): CircularProgressbarStyles {\n const rotationTransform = rotation == null ? undefined : `rotate(${rotation}turn)`;\n const rotationTransformOrigin = rotation == null ? undefined : 'center center';\n\n return {\n root: {},\n path: removeUndefinedValues({\n stroke: pathColor,\n strokeLinecap: strokeLinecap,\n transform: rotationTransform,\n transformOrigin: rotationTransformOrigin,\n transition: pathTransition,\n transitionDuration: pathTransitionDuration == null ? undefined : `${pathTransitionDuration}s`,\n }),\n trail: removeUndefinedValues({\n stroke: trailColor,\n strokeLinecap: strokeLinecap,\n transform: rotationTransform,\n transformOrigin: rotationTransformOrigin,\n }),\n text: removeUndefinedValues({\n fill: textColor,\n fontSize: textSize,\n }),\n background: removeUndefinedValues({\n fill: backgroundColor,\n }),\n };\n}\n\nfunction removeUndefinedValues(obj: { [key: string]: any }) {\n Object.keys(obj).forEach((key: string) => {\n if (obj[key] == null) {\n delete obj[key];\n }\n });\n return obj;\n}\n"],"names":["React.createElement","React.Component"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,IAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,IAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,IAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,IAAM,gBAAgB,GAAG,EAAE;;ACDlC,SAAS,IAAI,CAAC,EAcb;QAbC,wBAAS,EACT,sCAAgB,EAChB,wBAAS,EACT,0BAAU,EACV,4BAAW,EACX,gBAAK;IASL,QACEA,wBACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,UAAU,YAAA,EAAE,SAAS,WAAA,EAAE,gBAAgB,kBAAA,EAAE,CAAC,CAAC,EAC1F,CAAC,EAAE,kBAAkB,CAAC;YACpB,UAAU,YAAA;YACV,gBAAgB,kBAAA;SACjB,CAAC,EACF,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,CAAC,GACd,EACF;AACJ,CAAC;AAGD,SAAS,kBAAkB,CAAC,EAM3B;QALC,0BAAU,EACV,sCAAgB;IAKhB,IAAM,MAAM,GAAG,UAAU,CAAC;IAC1B,IAAM,QAAQ,GAAG,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC;IAM1C,OAAO,eACC,gBAAgB,SAAI,gBAAgB,qBACjC,MAAM,kBACT,MAAM,SAAI,MAAM,SAAI,QAAQ,eAAU,CAAC,GAAG,MAAM,kBAChD,MAAM,SAAI,MAAM,SAAI,QAAQ,gBAAW,CAAC,GAAG,MAAM,WACtD,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,EAQrB;QAPC,sCAAgB,EAChB,wBAAS,EACT,0BAAU;IAMV,IAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC;IAC1C,IAAM,SAAS,GAAG,CAAC,CAAC,GAAG,SAAS,IAAI,QAAQ,CAAC;IAE7C,OAAO;QAEL,eAAe,EAAK,QAAQ,WAAM,QAAQ,OAAI;QAE9C,gBAAgB,EAAE,CAAG,gBAAgB,GAAG,CAAC,SAAS,GAAG,SAAS,QAAI;KACnE,CAAC;AACJ,CAAC;;AC7DD;IAAkC,uCAAyC;IAA3E;;KA8GC;IAnFC,kDAAoB,GAApB;QACE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YAE1B,OAAO,CAAC,CAAC;SACV;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;KACrC;IAED,2CAAa,GAAb;QAGE,OAAO,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;KACvF;IAGD,0CAAY,GAAZ;QACQ,IAAA,eAA0C,EAAxC,gBAAK,EAAE,sBAAQ,EAAE,sBAAuB,CAAC;QACjD,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;QACnE,OAAO,CAAC,YAAY,GAAG,QAAQ,KAAK,QAAQ,GAAG,QAAQ,CAAC,CAAC;KAC1D;IAED,oCAAM,GAAN;QACQ,IAAA,eAQQ,EAPZ,4BAAW,EACX,wBAAS,EACT,oBAAO,EACP,sCAAgB,EAChB,kBAAM,EACN,4BAAW,EACX,cACY,CAAC;QAEf,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEtC,QACEA,uBACE,SAAS,EAAK,OAAO,CAAC,IAAI,SAAI,SAAW,EACzC,KAAK,EAAE,MAAM,CAAC,IAAI,EAClB,OAAO,EAAE,SAAO,aAAa,SAAI,cAAgB,kBACpC,qBAAqB;YAEjC,IAAI,CAAC,KAAK,CAAC,UAAU,IACpBA,0BACE,SAAS,EAAE,OAAO,CAAC,UAAU,EAC7B,KAAK,EAAE,MAAM,CAAC,UAAU,EACxB,EAAE,EAAE,gBAAgB,EACpB,EAAE,EAAE,gBAAgB,EACpB,CAAC,EAAE,mBAAmB,GACtB,IACA,IAAI;YAERA,cAAC,IAAI,IACH,SAAS,EAAE,OAAO,CAAC,KAAK,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,WAAW,EACtB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,MAAM,CAAC,KAAK,GACnB;YAEFA,cAAC,IAAI,IACH,SAAS,EAAE,OAAO,CAAC,IAAI,EACvB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,GAAG,WAAW,EAClC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,MAAM,CAAC,IAAI,GAClB;YAED,IAAI,IACHA,wBACE,SAAS,EAAE,OAAO,CAAC,IAAI,EACvB,KAAK,EAAE,MAAM,CAAC,IAAI,EAClB,CAAC,EAAE,gBAAgB,EACnB,CAAC,EAAE,gBAAgB,IAElB,IAAI,CACA,IACL,IAAI,CACJ,EACN;KACH;IA5GM,gCAAY,GAAoC;QACrD,UAAU,EAAE,KAAK;QACjB,iBAAiB,EAAE,CAAC;QACpB,WAAW,EAAE,CAAC;QACd,OAAO,EAAE;YACP,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,2BAA2B;YAClC,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,0BAA0B;YAChC,UAAU,EAAE,gCAAgC;SAC7C;QACD,gBAAgB,EAAE,KAAK;QACvB,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,CAAC;QACd,MAAM,EAAE;YACN,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,EAAE;YACR,UAAU,EAAE,EAAE;SACf;QACD,IAAI,EAAE,EAAE;KACT,CAAC;IAqFJ,0BAAC;CA9GD,CAAkCC,SAAe,GA8GhD;;AC/GD,SAAS,+BAA+B,CAAC,KAA2C;IAC1E,IAAA,yBAAQ,EAAE,sDAA2B,CAAW;IAExD,QACED,uCAAkB,iCAAiC;QAGjDA,uBAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;YAGjEA,cAAC,mBAAmB,eAAK,wBAAwB,EAAI;YAKpD,KAAK,CAAC,QAAQ,IACbA,uCACe,2CAA2C,EACxD,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,OAAO;oBAClB,OAAO,EAAE,MAAM;oBACf,aAAa,EAAE,QAAQ;oBACvB,cAAc,EAAE,QAAQ;oBACxB,UAAU,EAAE,QAAQ;iBACrB,IAEA,KAAK,CAAC,QAAQ,CACX,IACJ,IAAI,CACJ,CACF,EACN;AACJ,CAAC;;SC5CuB,WAAW,CAAC,EAoBnC;QAnBC,sBAAQ,EACR,gCAAa,EACb,wBAAS,EACT,sBAAQ,EACR,wBAAS,EACT,kCAAc,EACd,kDAAsB,EACtB,0BAAU,EACV,oCAAe;IAYf,IAAM,iBAAiB,GAAG,QAAQ,IAAI,IAAI,GAAG,SAAS,GAAG,YAAU,QAAQ,UAAO,CAAC;IACnF,IAAM,uBAAuB,GAAG,QAAQ,IAAI,IAAI,GAAG,SAAS,GAAG,eAAe,CAAC;IAE/E,OAAO;QACL,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,qBAAqB,CAAC;YAC1B,MAAM,EAAE,SAAS;YACjB,aAAa,EAAE,aAAa;YAC5B,SAAS,EAAE,iBAAiB;YAC5B,eAAe,EAAE,uBAAuB;YACxC,UAAU,EAAE,cAAc;YAC1B,kBAAkB,EAAE,sBAAsB,IAAI,IAAI,GAAG,SAAS,GAAM,sBAAsB,MAAG;SAC9F,CAAC;QACF,KAAK,EAAE,qBAAqB,CAAC;YAC3B,MAAM,EAAE,UAAU;YAClB,aAAa,EAAE,aAAa;YAC5B,SAAS,EAAE,iBAAiB;YAC5B,eAAe,EAAE,uBAAuB;SACzC,CAAC;QACF,IAAI,EAAE,qBAAqB,CAAC;YAC1B,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,QAAQ;SACnB,CAAC;QACF,UAAU,EAAE,qBAAqB,CAAC;YAChC,IAAI,EAAE,eAAe;SACtB,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,GAA2B;IACxD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAC,GAAW;QACnC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;YACpB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;SACjB;KACF,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;;;;"} \ No newline at end of file diff --git a/node_modules/react-circular-progressbar/dist/index.js b/node_modules/react-circular-progressbar/dist/index.js new file mode 100644 index 0000000..9309fc8 --- /dev/null +++ b/node_modules/react-circular-progressbar/dist/index.js @@ -0,0 +1,201 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var React = require('react'); + +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +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 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ +/* global Reflect, Promise */ + +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); +}; + +function __extends(d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} + +var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; + +function __rest(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) + t[p[i]] = s[p[i]]; + return t; +} + +var VIEWBOX_WIDTH = 100; +var VIEWBOX_HEIGHT = 100; +var VIEWBOX_HEIGHT_HALF = 50; +var VIEWBOX_CENTER_X = 50; +var VIEWBOX_CENTER_Y = 50; + +function Path(_a) { + var className = _a.className, counterClockwise = _a.counterClockwise, dashRatio = _a.dashRatio, pathRadius = _a.pathRadius, strokeWidth = _a.strokeWidth, style = _a.style; + return (React.createElement("path", { className: className, style: Object.assign({}, style, getDashStyle({ pathRadius: pathRadius, dashRatio: dashRatio, counterClockwise: counterClockwise })), d: getPathDescription({ + pathRadius: pathRadius, + counterClockwise: counterClockwise, + }), strokeWidth: strokeWidth, fillOpacity: 0 })); +} +function getPathDescription(_a) { + var pathRadius = _a.pathRadius, counterClockwise = _a.counterClockwise; + var radius = pathRadius; + var rotation = counterClockwise ? 1 : 0; + return "\n M " + VIEWBOX_CENTER_X + "," + VIEWBOX_CENTER_Y + "\n m 0,-" + radius + "\n a " + radius + "," + radius + " " + rotation + " 1 1 0," + 2 * radius + "\n a " + radius + "," + radius + " " + rotation + " 1 1 0,-" + 2 * radius + "\n "; +} +function getDashStyle(_a) { + var counterClockwise = _a.counterClockwise, dashRatio = _a.dashRatio, pathRadius = _a.pathRadius; + var diameter = Math.PI * 2 * pathRadius; + var gapLength = (1 - dashRatio) * diameter; + return { + strokeDasharray: diameter + "px " + diameter + "px", + strokeDashoffset: (counterClockwise ? -gapLength : gapLength) + "px", + }; +} + +var CircularProgressbar = (function (_super) { + __extends(CircularProgressbar, _super); + function CircularProgressbar() { + return _super !== null && _super.apply(this, arguments) || this; + } + CircularProgressbar.prototype.getBackgroundPadding = function () { + if (!this.props.background) { + return 0; + } + return this.props.backgroundPadding; + }; + CircularProgressbar.prototype.getPathRadius = function () { + return VIEWBOX_HEIGHT_HALF - this.props.strokeWidth / 2 - this.getBackgroundPadding(); + }; + CircularProgressbar.prototype.getPathRatio = function () { + var _a = this.props, value = _a.value, minValue = _a.minValue, maxValue = _a.maxValue; + var boundedValue = Math.min(Math.max(value, minValue), maxValue); + return (boundedValue - minValue) / (maxValue - minValue); + }; + CircularProgressbar.prototype.render = function () { + var _a = this.props, circleRatio = _a.circleRatio, className = _a.className, classes = _a.classes, counterClockwise = _a.counterClockwise, styles = _a.styles, strokeWidth = _a.strokeWidth, text = _a.text; + var pathRadius = this.getPathRadius(); + var pathRatio = this.getPathRatio(); + return (React.createElement("svg", { className: classes.root + " " + className, style: styles.root, viewBox: "0 0 " + VIEWBOX_WIDTH + " " + VIEWBOX_HEIGHT, "data-test-id": "CircularProgressbar" }, + this.props.background ? (React.createElement("circle", { className: classes.background, style: styles.background, cx: VIEWBOX_CENTER_X, cy: VIEWBOX_CENTER_Y, r: VIEWBOX_HEIGHT_HALF })) : null, + React.createElement(Path, { className: classes.trail, counterClockwise: counterClockwise, dashRatio: circleRatio, pathRadius: pathRadius, strokeWidth: strokeWidth, style: styles.trail }), + React.createElement(Path, { className: classes.path, counterClockwise: counterClockwise, dashRatio: pathRatio * circleRatio, pathRadius: pathRadius, strokeWidth: strokeWidth, style: styles.path }), + text ? (React.createElement("text", { className: classes.text, style: styles.text, x: VIEWBOX_CENTER_X, y: VIEWBOX_CENTER_Y }, text)) : null)); + }; + CircularProgressbar.defaultProps = { + background: false, + backgroundPadding: 0, + circleRatio: 1, + classes: { + root: 'CircularProgressbar', + trail: 'CircularProgressbar-trail', + path: 'CircularProgressbar-path', + text: 'CircularProgressbar-text', + background: 'CircularProgressbar-background', + }, + counterClockwise: false, + className: '', + maxValue: 100, + minValue: 0, + strokeWidth: 8, + styles: { + root: {}, + trail: {}, + path: {}, + text: {}, + background: {}, + }, + text: '', + }; + return CircularProgressbar; +}(React.Component)); + +function CircularProgressbarWithChildren(props) { + var children = props.children, circularProgressbarProps = __rest(props, ["children"]); + return (React.createElement("div", { "data-test-id": "CircularProgressbarWithChildren" }, + React.createElement("div", { style: { position: 'relative', width: '100%', height: '100%' } }, + React.createElement(CircularProgressbar, __assign({}, circularProgressbarProps)), + props.children ? (React.createElement("div", { "data-test-id": "CircularProgressbarWithChildren__children", style: { + position: 'absolute', + width: '100%', + height: '100%', + marginTop: '-100%', + display: 'flex', + flexDirection: 'column', + justifyContent: 'center', + alignItems: 'center', + } }, props.children)) : null))); +} + +function buildStyles(_a) { + var rotation = _a.rotation, strokeLinecap = _a.strokeLinecap, textColor = _a.textColor, textSize = _a.textSize, pathColor = _a.pathColor, pathTransition = _a.pathTransition, pathTransitionDuration = _a.pathTransitionDuration, trailColor = _a.trailColor, backgroundColor = _a.backgroundColor; + var rotationTransform = rotation == null ? undefined : "rotate(" + rotation + "turn)"; + var rotationTransformOrigin = rotation == null ? undefined : 'center center'; + return { + root: {}, + path: removeUndefinedValues({ + stroke: pathColor, + strokeLinecap: strokeLinecap, + transform: rotationTransform, + transformOrigin: rotationTransformOrigin, + transition: pathTransition, + transitionDuration: pathTransitionDuration == null ? undefined : pathTransitionDuration + "s", + }), + trail: removeUndefinedValues({ + stroke: trailColor, + strokeLinecap: strokeLinecap, + transform: rotationTransform, + transformOrigin: rotationTransformOrigin, + }), + text: removeUndefinedValues({ + fill: textColor, + fontSize: textSize, + }), + background: removeUndefinedValues({ + fill: backgroundColor, + }), + }; +} +function removeUndefinedValues(obj) { + Object.keys(obj).forEach(function (key) { + if (obj[key] == null) { + delete obj[key]; + } + }); + return obj; +} + +exports.CircularProgressbar = CircularProgressbar; +exports.CircularProgressbarWithChildren = CircularProgressbarWithChildren; +exports.buildStyles = buildStyles; +//# sourceMappingURL=index.js.map diff --git a/node_modules/react-circular-progressbar/dist/index.js.map b/node_modules/react-circular-progressbar/dist/index.js.map new file mode 100644 index 0000000..cd41d63 --- /dev/null +++ b/node_modules/react-circular-progressbar/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../src/constants.ts","../src/Path.tsx","../src/CircularProgressbar.tsx","../src/CircularProgressbarWithChildren.tsx","../src/buildStyles.ts"],"sourcesContent":["export const VIEWBOX_WIDTH = 100;\nexport const VIEWBOX_HEIGHT = 100;\nexport const VIEWBOX_HEIGHT_HALF = 50;\nexport const VIEWBOX_CENTER_X = 50;\nexport const VIEWBOX_CENTER_Y = 50;\n","import * as React from 'react';\nimport { VIEWBOX_CENTER_X, VIEWBOX_CENTER_Y } from './constants';\n\nfunction Path({\n className,\n counterClockwise,\n dashRatio,\n pathRadius,\n strokeWidth,\n style,\n}: {\n className?: string;\n counterClockwise: boolean;\n dashRatio: number;\n pathRadius: number;\n strokeWidth: number;\n style?: object;\n}) {\n return (\n \n );\n}\n\n// SVG path description specifies how the path should be drawn\nfunction getPathDescription({\n pathRadius,\n counterClockwise,\n}: {\n pathRadius: number;\n counterClockwise: boolean;\n}) {\n const radius = pathRadius;\n const rotation = counterClockwise ? 1 : 0;\n\n // Move to center of canvas\n // Relative move to top canvas\n // Relative arc to bottom of canvas\n // Relative arc to top of canvas\n return `\n M ${VIEWBOX_CENTER_X},${VIEWBOX_CENTER_Y}\n m 0,-${radius}\n a ${radius},${radius} ${rotation} 1 1 0,${2 * radius}\n a ${radius},${radius} ${rotation} 1 1 0,-${2 * radius}\n `;\n}\n\nfunction getDashStyle({\n counterClockwise,\n dashRatio,\n pathRadius,\n}: {\n counterClockwise: boolean;\n dashRatio: number;\n pathRadius: number;\n}) {\n const diameter = Math.PI * 2 * pathRadius;\n const gapLength = (1 - dashRatio) * diameter;\n\n return {\n // Have dash be full diameter, and gap be full diameter\n strokeDasharray: `${diameter}px ${diameter}px`,\n // Shift dash backward by gapLength, so gap starts appearing at correct distance\n strokeDashoffset: `${counterClockwise ? -gapLength : gapLength}px`,\n };\n}\n\nexport default Path;\n","import * as React from 'react';\n\nimport {\n VIEWBOX_WIDTH,\n VIEWBOX_HEIGHT,\n VIEWBOX_HEIGHT_HALF,\n VIEWBOX_CENTER_X,\n VIEWBOX_CENTER_Y,\n} from './constants';\nimport Path from './Path';\nimport { CircularProgressbarDefaultProps, CircularProgressbarProps } from './types';\n\nclass CircularProgressbar extends React.Component {\n static defaultProps: CircularProgressbarDefaultProps = {\n background: false,\n backgroundPadding: 0,\n circleRatio: 1,\n classes: {\n root: 'CircularProgressbar',\n trail: 'CircularProgressbar-trail',\n path: 'CircularProgressbar-path',\n text: 'CircularProgressbar-text',\n background: 'CircularProgressbar-background',\n },\n counterClockwise: false,\n className: '',\n maxValue: 100,\n minValue: 0,\n strokeWidth: 8,\n styles: {\n root: {},\n trail: {},\n path: {},\n text: {},\n background: {},\n },\n text: '',\n };\n\n getBackgroundPadding() {\n if (!this.props.background) {\n // Don't add padding if not displaying background\n return 0;\n }\n return this.props.backgroundPadding;\n }\n\n getPathRadius() {\n // The radius of the path is defined to be in the middle, so in order for the path to\n // fit perfectly inside the 100x100 viewBox, need to subtract half the strokeWidth\n return VIEWBOX_HEIGHT_HALF - this.props.strokeWidth / 2 - this.getBackgroundPadding();\n }\n\n // Ratio of path length to trail length, as a value between 0 and 1\n getPathRatio() {\n const { value, minValue, maxValue } = this.props;\n const boundedValue = Math.min(Math.max(value, minValue), maxValue);\n return (boundedValue - minValue) / (maxValue - minValue);\n }\n\n render() {\n const {\n circleRatio,\n className,\n classes,\n counterClockwise,\n styles,\n strokeWidth,\n text,\n } = this.props;\n\n const pathRadius = this.getPathRadius();\n const pathRatio = this.getPathRatio();\n\n return (\n \n {this.props.background ? (\n \n ) : null}\n\n \n\n \n\n {text ? (\n \n {text}\n \n ) : null}\n \n );\n }\n}\n\nexport default CircularProgressbar;\n","import * as React from 'react';\n\nimport CircularProgressbar from './CircularProgressbar';\nimport { CircularProgressbarWrapperProps } from './types';\n\ntype CircularProgressbarWithChildrenProps = CircularProgressbarWrapperProps & {\n children?: React.ReactNode;\n};\n\n// This is a wrapper around CircularProgressbar that allows passing children,\n// which will be vertically and horizontally centered inside the progressbar automatically.\nfunction CircularProgressbarWithChildren(props: CircularProgressbarWithChildrenProps) {\n const { children, ...circularProgressbarProps } = props;\n\n return (\n
      \n {/* Has an extra div wrapper because otherwise, adding content after\n this progressbar is spaced weirdly. */}\n
      \n {/* Progressbar is not positioned absolutely, so that it can establish\n intrinsic size for props.children's content. */}\n \n\n {/* Children are positioned absolutely, and height adapts to the\n progressbar's intrinsic size. It appears below the progressbar,\n but negative margin moves it back up. */}\n {props.children ? (\n \n {props.children}\n
      \n ) : null}\n
      \n \n );\n}\n\nexport default CircularProgressbarWithChildren;\n","import { CircularProgressbarStyles } from './types';\n\nexport default function buildStyles({\n rotation,\n strokeLinecap,\n textColor,\n textSize,\n pathColor,\n pathTransition,\n pathTransitionDuration,\n trailColor,\n backgroundColor,\n}: {\n rotation?: number; // Number of turns, 0-1\n strokeLinecap?: any;\n textColor?: string;\n textSize?: string | number;\n pathColor?: string;\n pathTransition?: string;\n pathTransitionDuration?: number; // Measured in seconds\n trailColor?: string;\n backgroundColor?: string;\n}): CircularProgressbarStyles {\n const rotationTransform = rotation == null ? undefined : `rotate(${rotation}turn)`;\n const rotationTransformOrigin = rotation == null ? undefined : 'center center';\n\n return {\n root: {},\n path: removeUndefinedValues({\n stroke: pathColor,\n strokeLinecap: strokeLinecap,\n transform: rotationTransform,\n transformOrigin: rotationTransformOrigin,\n transition: pathTransition,\n transitionDuration: pathTransitionDuration == null ? undefined : `${pathTransitionDuration}s`,\n }),\n trail: removeUndefinedValues({\n stroke: trailColor,\n strokeLinecap: strokeLinecap,\n transform: rotationTransform,\n transformOrigin: rotationTransformOrigin,\n }),\n text: removeUndefinedValues({\n fill: textColor,\n fontSize: textSize,\n }),\n background: removeUndefinedValues({\n fill: backgroundColor,\n }),\n };\n}\n\nfunction removeUndefinedValues(obj: { [key: string]: any }) {\n Object.keys(obj).forEach((key: string) => {\n if (obj[key] == null) {\n delete obj[key];\n }\n });\n return obj;\n}\n"],"names":["React.createElement","React.Component"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,IAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,IAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,IAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,IAAM,gBAAgB,GAAG,EAAE;;ACDlC,SAAS,IAAI,CAAC,EAcb;QAbC,wBAAS,EACT,sCAAgB,EAChB,wBAAS,EACT,0BAAU,EACV,4BAAW,EACX,gBAAK;IASL,QACEA,8BACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,UAAU,YAAA,EAAE,SAAS,WAAA,EAAE,gBAAgB,kBAAA,EAAE,CAAC,CAAC,EAC1F,CAAC,EAAE,kBAAkB,CAAC;YACpB,UAAU,YAAA;YACV,gBAAgB,kBAAA;SACjB,CAAC,EACF,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,CAAC,GACd,EACF;AACJ,CAAC;AAGD,SAAS,kBAAkB,CAAC,EAM3B;QALC,0BAAU,EACV,sCAAgB;IAKhB,IAAM,MAAM,GAAG,UAAU,CAAC;IAC1B,IAAM,QAAQ,GAAG,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC;IAM1C,OAAO,eACC,gBAAgB,SAAI,gBAAgB,qBACjC,MAAM,kBACT,MAAM,SAAI,MAAM,SAAI,QAAQ,eAAU,CAAC,GAAG,MAAM,kBAChD,MAAM,SAAI,MAAM,SAAI,QAAQ,gBAAW,CAAC,GAAG,MAAM,WACtD,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,EAQrB;QAPC,sCAAgB,EAChB,wBAAS,EACT,0BAAU;IAMV,IAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC;IAC1C,IAAM,SAAS,GAAG,CAAC,CAAC,GAAG,SAAS,IAAI,QAAQ,CAAC;IAE7C,OAAO;QAEL,eAAe,EAAK,QAAQ,WAAM,QAAQ,OAAI;QAE9C,gBAAgB,EAAE,CAAG,gBAAgB,GAAG,CAAC,SAAS,GAAG,SAAS,QAAI;KACnE,CAAC;AACJ,CAAC;;AC7DD;IAAkC,uCAAyC;IAA3E;;KA8GC;IAnFC,kDAAoB,GAApB;QACE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YAE1B,OAAO,CAAC,CAAC;SACV;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;KACrC;IAED,2CAAa,GAAb;QAGE,OAAO,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;KACvF;IAGD,0CAAY,GAAZ;QACQ,IAAA,eAA0C,EAAxC,gBAAK,EAAE,sBAAQ,EAAE,sBAAuB,CAAC;QACjD,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;QACnE,OAAO,CAAC,YAAY,GAAG,QAAQ,KAAK,QAAQ,GAAG,QAAQ,CAAC,CAAC;KAC1D;IAED,oCAAM,GAAN;QACQ,IAAA,eAQQ,EAPZ,4BAAW,EACX,wBAAS,EACT,oBAAO,EACP,sCAAgB,EAChB,kBAAM,EACN,4BAAW,EACX,cACY,CAAC;QAEf,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEtC,QACEA,6BACE,SAAS,EAAK,OAAO,CAAC,IAAI,SAAI,SAAW,EACzC,KAAK,EAAE,MAAM,CAAC,IAAI,EAClB,OAAO,EAAE,SAAO,aAAa,SAAI,cAAgB,kBACpC,qBAAqB;YAEjC,IAAI,CAAC,KAAK,CAAC,UAAU,IACpBA,gCACE,SAAS,EAAE,OAAO,CAAC,UAAU,EAC7B,KAAK,EAAE,MAAM,CAAC,UAAU,EACxB,EAAE,EAAE,gBAAgB,EACpB,EAAE,EAAE,gBAAgB,EACpB,CAAC,EAAE,mBAAmB,GACtB,IACA,IAAI;YAERA,oBAAC,IAAI,IACH,SAAS,EAAE,OAAO,CAAC,KAAK,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,WAAW,EACtB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,MAAM,CAAC,KAAK,GACnB;YAEFA,oBAAC,IAAI,IACH,SAAS,EAAE,OAAO,CAAC,IAAI,EACvB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,GAAG,WAAW,EAClC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,MAAM,CAAC,IAAI,GAClB;YAED,IAAI,IACHA,8BACE,SAAS,EAAE,OAAO,CAAC,IAAI,EACvB,KAAK,EAAE,MAAM,CAAC,IAAI,EAClB,CAAC,EAAE,gBAAgB,EACnB,CAAC,EAAE,gBAAgB,IAElB,IAAI,CACA,IACL,IAAI,CACJ,EACN;KACH;IA5GM,gCAAY,GAAoC;QACrD,UAAU,EAAE,KAAK;QACjB,iBAAiB,EAAE,CAAC;QACpB,WAAW,EAAE,CAAC;QACd,OAAO,EAAE;YACP,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,2BAA2B;YAClC,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,0BAA0B;YAChC,UAAU,EAAE,gCAAgC;SAC7C;QACD,gBAAgB,EAAE,KAAK;QACvB,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,CAAC;QACd,MAAM,EAAE;YACN,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,EAAE;YACR,UAAU,EAAE,EAAE;SACf;QACD,IAAI,EAAE,EAAE;KACT,CAAC;IAqFJ,0BAAC;CA9GD,CAAkCC,eAAe,GA8GhD;;AC/GD,SAAS,+BAA+B,CAAC,KAA2C;IAC1E,IAAA,yBAAQ,EAAE,sDAA2B,CAAW;IAExD,QACED,6CAAkB,iCAAiC;QAGjDA,6BAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;YAGjEA,oBAAC,mBAAmB,eAAK,wBAAwB,EAAI;YAKpD,KAAK,CAAC,QAAQ,IACbA,6CACe,2CAA2C,EACxD,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,OAAO;oBAClB,OAAO,EAAE,MAAM;oBACf,aAAa,EAAE,QAAQ;oBACvB,cAAc,EAAE,QAAQ;oBACxB,UAAU,EAAE,QAAQ;iBACrB,IAEA,KAAK,CAAC,QAAQ,CACX,IACJ,IAAI,CACJ,CACF,EACN;AACJ,CAAC;;SC5CuB,WAAW,CAAC,EAoBnC;QAnBC,sBAAQ,EACR,gCAAa,EACb,wBAAS,EACT,sBAAQ,EACR,wBAAS,EACT,kCAAc,EACd,kDAAsB,EACtB,0BAAU,EACV,oCAAe;IAYf,IAAM,iBAAiB,GAAG,QAAQ,IAAI,IAAI,GAAG,SAAS,GAAG,YAAU,QAAQ,UAAO,CAAC;IACnF,IAAM,uBAAuB,GAAG,QAAQ,IAAI,IAAI,GAAG,SAAS,GAAG,eAAe,CAAC;IAE/E,OAAO;QACL,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,qBAAqB,CAAC;YAC1B,MAAM,EAAE,SAAS;YACjB,aAAa,EAAE,aAAa;YAC5B,SAAS,EAAE,iBAAiB;YAC5B,eAAe,EAAE,uBAAuB;YACxC,UAAU,EAAE,cAAc;YAC1B,kBAAkB,EAAE,sBAAsB,IAAI,IAAI,GAAG,SAAS,GAAM,sBAAsB,MAAG;SAC9F,CAAC;QACF,KAAK,EAAE,qBAAqB,CAAC;YAC3B,MAAM,EAAE,UAAU;YAClB,aAAa,EAAE,aAAa;YAC5B,SAAS,EAAE,iBAAiB;YAC5B,eAAe,EAAE,uBAAuB;SACzC,CAAC;QACF,IAAI,EAAE,qBAAqB,CAAC;YAC1B,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,QAAQ;SACnB,CAAC;QACF,UAAU,EAAE,qBAAqB,CAAC;YAChC,IAAI,EAAE,eAAe;SACtB,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,GAA2B;IACxD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAC,GAAW;QACnC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;YACpB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;SACjB;KACF,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;;;;;;"} \ No newline at end of file diff --git a/node_modules/react-circular-progressbar/dist/styles.css b/node_modules/react-circular-progressbar/dist/styles.css new file mode 100644 index 0000000..3efc691 --- /dev/null +++ b/node_modules/react-circular-progressbar/dist/styles.css @@ -0,0 +1,66 @@ +/* + * react-circular-progressbar styles + * All of the styles in this file are configurable! + */ + +.CircularProgressbar { + /* + * This fixes an issue where the CircularProgressbar svg has + * 0 width inside a "display: flex" container, and thus not visible. + */ + width: 100%; + /* + * This fixes a centering issue with CircularProgressbarWithChildren: + * https://github.com/kevinsqi/react-circular-progressbar/issues/94 + */ + vertical-align: middle; +} + +.CircularProgressbar .CircularProgressbar-path { + stroke: #3e98c7; + stroke-linecap: round; + -webkit-transition: stroke-dashoffset 0.5s ease 0s; + transition: stroke-dashoffset 0.5s ease 0s; +} + +.CircularProgressbar .CircularProgressbar-trail { + stroke: #d6d6d6; + /* Used when trail is not full diameter, i.e. when props.circleRatio is set */ + stroke-linecap: round; +} + +.CircularProgressbar .CircularProgressbar-text { + fill: #3e98c7; + font-size: 20px; + dominant-baseline: middle; + text-anchor: middle; +} + +.CircularProgressbar .CircularProgressbar-background { + fill: #d6d6d6; +} + +/* + * Sample background styles. Use these with e.g.: + * + * + */ +.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-background { + fill: #3e98c7; +} + +.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-text { + fill: #fff; +} + +.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-path { + stroke: #fff; +} + +.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-trail { + stroke: transparent; +} diff --git a/node_modules/react-circular-progressbar/dist/types.d.ts b/node_modules/react-circular-progressbar/dist/types.d.ts new file mode 100644 index 0000000..08c1f3f --- /dev/null +++ b/node_modules/react-circular-progressbar/dist/types.d.ts @@ -0,0 +1,50 @@ +import * as React from 'react'; +export declare type CircularProgressbarStyles = { + root?: React.CSSProperties; + trail?: React.CSSProperties; + path?: React.CSSProperties; + text?: React.CSSProperties; + background?: React.CSSProperties; +}; +export declare type CircularProgressbarDefaultProps = { + background: boolean; + backgroundPadding: number; + circleRatio: number; + classes: { + root: string; + trail: string; + path: string; + text: string; + background: string; + }; + className: string; + counterClockwise: boolean; + maxValue: number; + minValue: number; + strokeWidth: number; + styles: CircularProgressbarStyles; + text: string; +}; +export declare type CircularProgressbarWrapperProps = { + background?: boolean; + backgroundPadding?: number; + circleRatio?: number; + classes?: { + root: string; + trail: string; + path: string; + text: string; + background: string; + }; + className?: string; + counterClockwise?: boolean; + maxValue?: number; + minValue?: number; + strokeWidth?: number; + styles?: CircularProgressbarStyles; + text?: string; + value: number; +}; +export declare type CircularProgressbarProps = CircularProgressbarDefaultProps & { + value: number; +}; diff --git a/node_modules/react-circular-progressbar/package.json b/node_modules/react-circular-progressbar/package.json new file mode 100644 index 0000000..114624e --- /dev/null +++ b/node_modules/react-circular-progressbar/package.json @@ -0,0 +1,57 @@ +{ + "name": "react-circular-progressbar", + "version": "2.1.0", + "description": "A circular progress indicator component", + "author": "Kevin Qi ", + "main": "dist/index.js", + "module": "dist/index.esm.js", + "types": "dist/index.d.ts", + "style": "dist/styles.css", + "files": [ + "dist" + ], + "repository": "https://github.com/kevinsqi/react-circular-progressbar.git", + "license": "MIT", + "keywords": [ + "progressbar", + "react", + "react-component", + "svg" + ], + "scripts": { + "build": "npm-run-all clean build:css build:js", + "build:css": "postcss src/styles.css --use autoprefixer -d dist/ --no-map", + "build:js": "rollup -c", + "clean": "rimraf dist", + "format": "prettier --write 'src/**/*' 'demo/src/**/*'", + "prepare": "npm-run-all clean build", + "start": "npm-run-all --parallel start:css start:js", + "start:css": "postcss src/styles.css --use autoprefixer -d dist/ --no-map --watch", + "start:js": "rollup -c -w", + "test": "jest --config jest.config.json --coverage" + }, + "devDependencies": { + "@types/enzyme": "^3.9.1", + "@types/enzyme-adapter-react-16": "^1.0.5", + "@types/jest": "^25.0.0", + "@types/react": "^16.8.14", + "autoprefixer": "^9.5.1", + "enzyme": "^3.9.0", + "enzyme-adapter-react-16": "^1.12.1", + "jest": "^25.0.0", + "npm-run-all": "^4.1.5", + "postcss-cli": "^6.1.2", + "prettier": "^1.17.0", + "react": "^16.8.6", + "react-dom": "^16.8.6", + "rimraf": "^2.3.4", + "rollup": "^1.10.1", + "rollup-plugin-typescript2": "^0.21.0", + "ts-jest": "^25.0.0", + "typescript": "^3.4.4" + }, + "dependencies": {}, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } +} diff --git a/node_modules/react-dom/LICENSE b/node_modules/react-dom/LICENSE new file mode 100644 index 0000000..b96dcb0 --- /dev/null +++ b/node_modules/react-dom/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Facebook, Inc. and its affiliates. + +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/react-dom/README.md b/node_modules/react-dom/README.md new file mode 100644 index 0000000..ecba5cf --- /dev/null +++ b/node_modules/react-dom/README.md @@ -0,0 +1,60 @@ +# `react-dom` + +This package serves as the entry point to the DOM and server renderers for React. It is intended to be paired with the generic React package, which is shipped as `react` to npm. + +## Installation + +```sh +npm install react react-dom +``` + +## Usage + +### In the browser + +```js +import { createRoot } from 'react-dom/client'; + +function App() { + return
      Hello World
      ; +} + +const root = createRoot(document.getElementById('root')); +root.render(); +``` + +### On the server + +```js +import { renderToPipeableStream } from 'react-dom/server'; + +function App() { + return
      Hello World
      ; +} + +function handleRequest(res) { + // ... in your server handler ... + const stream = renderToPipeableStream(, { + onShellReady() { + res.statusCode = 200; + res.setHeader('Content-type', 'text/html'); + stream.pipe(res); + }, + // ... + }); +} +``` + +## API + +### `react-dom` + +See https://reactjs.org/docs/react-dom.html + +### `react-dom/client` + +See https://reactjs.org/docs/react-dom-client.html + +### `react-dom/server` + +See https://reactjs.org/docs/react-dom-server.html diff --git a/node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js b/node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js new file mode 100644 index 0000000..102e3ef --- /dev/null +++ b/node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js @@ -0,0 +1,7029 @@ +/** + * @license React + * react-dom-server-legacy.browser.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +if (process.env.NODE_ENV !== "production") { + (function() { +'use strict'; + +var React = require('react'); + +var ReactVersion = '18.3.1'; + +var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; + +// by calls to these methods by a Babel plugin. +// +// In PROD (or in packages without access to React internals), +// they are left as they are instead. + +function warn(format) { + { + { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + printWarning('warn', format, args); + } + } +} +function error(format) { + { + { + for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + args[_key2 - 1] = arguments[_key2]; + } + + printWarning('error', format, args); + } + } +} + +function printWarning(level, format, args) { + // When changing this logic, you might want to also + // update consoleWithStackDev.www.js as well. + { + var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame; + var stack = ReactDebugCurrentFrame.getStackAddendum(); + + if (stack !== '') { + format += '%s'; + args = args.concat([stack]); + } // eslint-disable-next-line react-internal/safe-string-coercion + + + var argsWithFormat = args.map(function (item) { + return String(item); + }); // Careful: RN currently depends on this prefix + + argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it + // breaks IE9: https://github.com/facebook/react/issues/13610 + // eslint-disable-next-line react-internal/no-production-logging + + Function.prototype.apply.call(console[level], console, argsWithFormat); + } +} + +function scheduleWork(callback) { + callback(); +} +function beginWriting(destination) {} +function writeChunk(destination, chunk) { + writeChunkAndReturn(destination, chunk); +} +function writeChunkAndReturn(destination, chunk) { + return destination.push(chunk); +} +function completeWriting(destination) {} +function close(destination) { + destination.push(null); +} +function stringToChunk(content) { + return content; +} +function stringToPrecomputedChunk(content) { + return content; +} +function closeWithError(destination, error) { + // $FlowFixMe: This is an Error object or the destination accepts other types. + destination.destroy(error); +} + +/* + * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol + * and Temporal.* types. See https://github.com/facebook/react/pull/22064. + * + * The functions in this module will throw an easier-to-understand, + * easier-to-debug exception with a clear errors message message explaining the + * problem. (Instead of a confusing exception thrown inside the implementation + * of the `value` object). + */ +// $FlowFixMe only called in DEV, so void return is not possible. +function typeName(value) { + { + // toStringTag is needed for namespaced types like Temporal.Instant + var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag; + var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object'; + return type; + } +} // $FlowFixMe only called in DEV, so void return is not possible. + + +function willCoercionThrow(value) { + { + try { + testStringCoercion(value); + return false; + } catch (e) { + return true; + } + } +} + +function testStringCoercion(value) { + // If you ended up here by following an exception call stack, here's what's + // happened: you supplied an object or symbol value to React (as a prop, key, + // DOM attribute, CSS property, string ref, etc.) and when React tried to + // coerce it to a string using `'' + value`, an exception was thrown. + // + // The most common types that will cause this exception are `Symbol` instances + // and Temporal objects like `Temporal.Instant`. But any object that has a + // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this + // exception. (Library authors do this to prevent users from using built-in + // numeric operators like `+` or comparison operators like `>=` because custom + // methods are needed to perform accurate arithmetic or comparison.) + // + // To fix the problem, coerce this object or symbol value to a string before + // passing it to React. The most reliable way is usually `String(value)`. + // + // To find which value is throwing, check the browser or debugger console. + // Before this exception was thrown, there should be `console.error` output + // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the + // problem and how that type was used: key, atrribute, input value prop, etc. + // In most cases, this console output also shows the component and its + // ancestor components where the exception happened. + // + // eslint-disable-next-line react-internal/safe-string-coercion + return '' + value; +} + +function checkAttributeStringCoercion(value, attributeName) { + { + if (willCoercionThrow(value)) { + error('The provided `%s` attribute is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', attributeName, typeName(value)); + + return testStringCoercion(value); // throw (to help callers find troubleshooting comments) + } + } +} +function checkCSSPropertyStringCoercion(value, propName) { + { + if (willCoercionThrow(value)) { + error('The provided `%s` CSS property is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', propName, typeName(value)); + + return testStringCoercion(value); // throw (to help callers find troubleshooting comments) + } + } +} +function checkHtmlStringCoercion(value) { + { + if (willCoercionThrow(value)) { + error('The provided HTML markup uses a value of unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value)); + + return testStringCoercion(value); // throw (to help callers find troubleshooting comments) + } + } +} + +var hasOwnProperty = Object.prototype.hasOwnProperty; + +// A reserved attribute. +// It is handled by React separately and shouldn't be written to the DOM. +var RESERVED = 0; // A simple string attribute. +// Attributes that aren't in the filter are presumed to have this type. + +var STRING = 1; // A string attribute that accepts booleans in React. In HTML, these are called +// "enumerated" attributes with "true" and "false" as possible values. +// When true, it should be set to a "true" string. +// When false, it should be set to a "false" string. + +var BOOLEANISH_STRING = 2; // A real boolean attribute. +// When true, it should be present (set either to an empty string or its name). +// When false, it should be omitted. + +var BOOLEAN = 3; // An attribute that can be used as a flag as well as with a value. +// When true, it should be present (set either to an empty string or its name). +// When false, it should be omitted. +// For any other value, should be present with that value. + +var OVERLOADED_BOOLEAN = 4; // An attribute that must be numeric or parse as a numeric. +// When falsy, it should be removed. + +var NUMERIC = 5; // An attribute that must be positive numeric or parse as a positive numeric. +// When falsy, it should be removed. + +var POSITIVE_NUMERIC = 6; + +/* eslint-disable max-len */ +var ATTRIBUTE_NAME_START_CHAR = ":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD"; +/* eslint-enable max-len */ + +var ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + "\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040"; +var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$'); +var illegalAttributeNameCache = {}; +var validatedAttributeNameCache = {}; +function isAttributeNameSafe(attributeName) { + if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) { + return true; + } + + if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) { + return false; + } + + if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) { + validatedAttributeNameCache[attributeName] = true; + return true; + } + + illegalAttributeNameCache[attributeName] = true; + + { + error('Invalid attribute name: `%s`', attributeName); + } + + return false; +} +function shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag) { + if (propertyInfo !== null && propertyInfo.type === RESERVED) { + return false; + } + + switch (typeof value) { + case 'function': // $FlowIssue symbol is perfectly valid here + + case 'symbol': + // eslint-disable-line + return true; + + case 'boolean': + { + if (isCustomComponentTag) { + return false; + } + + if (propertyInfo !== null) { + return !propertyInfo.acceptsBooleans; + } else { + var prefix = name.toLowerCase().slice(0, 5); + return prefix !== 'data-' && prefix !== 'aria-'; + } + } + + default: + return false; + } +} +function getPropertyInfo(name) { + return properties.hasOwnProperty(name) ? properties[name] : null; +} + +function PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace, sanitizeURL, removeEmptyString) { + this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN; + this.attributeName = attributeName; + this.attributeNamespace = attributeNamespace; + this.mustUseProperty = mustUseProperty; + this.propertyName = name; + this.type = type; + this.sanitizeURL = sanitizeURL; + this.removeEmptyString = removeEmptyString; +} // When adding attributes to this list, be sure to also add them to +// the `possibleStandardNames` module to ensure casing and incorrect +// name warnings. + + +var properties = {}; // These props are reserved by React. They shouldn't be written to the DOM. + +var reservedProps = ['children', 'dangerouslySetInnerHTML', // TODO: This prevents the assignment of defaultValue to regular +// elements (not just inputs). Now that ReactDOMInput assigns to the +// defaultValue property -- do we need this? +'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style']; + +reservedProps.forEach(function (name) { + properties[name] = new PropertyInfoRecord(name, RESERVED, false, // mustUseProperty + name, // attributeName + null, // attributeNamespace + false, // sanitizeURL + false); +}); // A few React string attributes have a different name. +// This is a mapping from React prop names to the attribute names. + +[['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) { + var name = _ref[0], + attributeName = _ref[1]; + properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty + attributeName, // attributeName + null, // attributeNamespace + false, // sanitizeURL + false); +}); // These are "enumerated" HTML attributes that accept "true" and "false". +// In React, we let users pass `true` and `false` even though technically +// these aren't boolean attributes (they are coerced to strings). + +['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) { + properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty + name.toLowerCase(), // attributeName + null, // attributeNamespace + false, // sanitizeURL + false); +}); // These are "enumerated" SVG attributes that accept "true" and "false". +// In React, we let users pass `true` and `false` even though technically +// these aren't boolean attributes (they are coerced to strings). +// Since these are SVG attributes, their attribute names are case-sensitive. + +['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) { + properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty + name, // attributeName + null, // attributeNamespace + false, // sanitizeURL + false); +}); // These are HTML boolean attributes. + +['allowFullScreen', 'async', // Note: there is a special case that prevents it from being written to the DOM +// on the client side because the browsers are inconsistent. Instead we call focus(). +'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'disablePictureInPicture', 'disableRemotePlayback', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless', // Microdata +'itemScope'].forEach(function (name) { + properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, // mustUseProperty + name.toLowerCase(), // attributeName + null, // attributeNamespace + false, // sanitizeURL + false); +}); // These are the few React props that we set as DOM properties +// rather than attributes. These are all booleans. + +['checked', // Note: `option.selected` is not updated if `select.multiple` is +// disabled with `removeAttribute`. We have special logic for handling this. +'multiple', 'muted', 'selected' // NOTE: if you add a camelCased prop to this list, +// you'll need to set attributeName to name.toLowerCase() +// instead in the assignment below. +].forEach(function (name) { + properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, // mustUseProperty + name, // attributeName + null, // attributeNamespace + false, // sanitizeURL + false); +}); // These are HTML attributes that are "overloaded booleans": they behave like +// booleans, but can also accept a string value. + +['capture', 'download' // NOTE: if you add a camelCased prop to this list, +// you'll need to set attributeName to name.toLowerCase() +// instead in the assignment below. +].forEach(function (name) { + properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, // mustUseProperty + name, // attributeName + null, // attributeNamespace + false, // sanitizeURL + false); +}); // These are HTML attributes that must be positive numbers. + +['cols', 'rows', 'size', 'span' // NOTE: if you add a camelCased prop to this list, +// you'll need to set attributeName to name.toLowerCase() +// instead in the assignment below. +].forEach(function (name) { + properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, // mustUseProperty + name, // attributeName + null, // attributeNamespace + false, // sanitizeURL + false); +}); // These are HTML attributes that must be numbers. + +['rowSpan', 'start'].forEach(function (name) { + properties[name] = new PropertyInfoRecord(name, NUMERIC, false, // mustUseProperty + name.toLowerCase(), // attributeName + null, // attributeNamespace + false, // sanitizeURL + false); +}); +var CAMELIZE = /[\-\:]([a-z])/g; + +var capitalize = function (token) { + return token[1].toUpperCase(); +}; // This is a list of all SVG attributes that need special casing, namespacing, +// or boolean value assignment. Regular attributes that just accept strings +// and have the same names are omitted, just like in the HTML attribute filter. +// Some of these attributes can be hard to find. This list was created by +// scraping the MDN documentation. + + +['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height' // NOTE: if you add a camelCased prop to this list, +// you'll need to set attributeName to name.toLowerCase() +// instead in the assignment below. +].forEach(function (attributeName) { + var name = attributeName.replace(CAMELIZE, capitalize); + properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty + attributeName, null, // attributeNamespace + false, // sanitizeURL + false); +}); // String SVG attributes with the xlink namespace. + +['xlink:actuate', 'xlink:arcrole', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type' // NOTE: if you add a camelCased prop to this list, +// you'll need to set attributeName to name.toLowerCase() +// instead in the assignment below. +].forEach(function (attributeName) { + var name = attributeName.replace(CAMELIZE, capitalize); + properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty + attributeName, 'http://www.w3.org/1999/xlink', false, // sanitizeURL + false); +}); // String SVG attributes with the xml namespace. + +['xml:base', 'xml:lang', 'xml:space' // NOTE: if you add a camelCased prop to this list, +// you'll need to set attributeName to name.toLowerCase() +// instead in the assignment below. +].forEach(function (attributeName) { + var name = attributeName.replace(CAMELIZE, capitalize); + properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty + attributeName, 'http://www.w3.org/XML/1998/namespace', false, // sanitizeURL + false); +}); // These attribute exists both in HTML and SVG. +// The attribute name is case-sensitive in SVG so we can't just use +// the React name like we do for attributes that exist only in HTML. + +['tabIndex', 'crossOrigin'].forEach(function (attributeName) { + properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty + attributeName.toLowerCase(), // attributeName + null, // attributeNamespace + false, // sanitizeURL + false); +}); // These attributes accept URLs. These must not allow javascript: URLS. +// These will also need to accept Trusted Types object in the future. + +var xlinkHref = 'xlinkHref'; +properties[xlinkHref] = new PropertyInfoRecord('xlinkHref', STRING, false, // mustUseProperty +'xlink:href', 'http://www.w3.org/1999/xlink', true, // sanitizeURL +false); +['src', 'href', 'action', 'formAction'].forEach(function (attributeName) { + properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty + attributeName.toLowerCase(), // attributeName + null, // attributeNamespace + true, // sanitizeURL + true); +}); + +/** + * CSS properties which accept numbers but are not in units of "px". + */ +var isUnitlessNumber = { + animationIterationCount: true, + aspectRatio: true, + borderImageOutset: true, + borderImageSlice: true, + borderImageWidth: true, + boxFlex: true, + boxFlexGroup: true, + boxOrdinalGroup: true, + columnCount: true, + columns: true, + flex: true, + flexGrow: true, + flexPositive: true, + flexShrink: true, + flexNegative: true, + flexOrder: true, + gridArea: true, + gridRow: true, + gridRowEnd: true, + gridRowSpan: true, + gridRowStart: true, + gridColumn: true, + gridColumnEnd: true, + gridColumnSpan: true, + gridColumnStart: true, + fontWeight: true, + lineClamp: true, + lineHeight: true, + opacity: true, + order: true, + orphans: true, + tabSize: true, + widows: true, + zIndex: true, + zoom: true, + // SVG-related properties + fillOpacity: true, + floodOpacity: true, + stopOpacity: true, + strokeDasharray: true, + strokeDashoffset: true, + strokeMiterlimit: true, + strokeOpacity: true, + strokeWidth: true +}; +/** + * @param {string} prefix vendor-specific prefix, eg: Webkit + * @param {string} key style name, eg: transitionDuration + * @return {string} style name prefixed with `prefix`, properly camelCased, eg: + * WebkitTransitionDuration + */ + +function prefixKey(prefix, key) { + return prefix + key.charAt(0).toUpperCase() + key.substring(1); +} +/** + * Support style names that may come passed in prefixed by adding permutations + * of vendor prefixes. + */ + + +var prefixes = ['Webkit', 'ms', 'Moz', 'O']; // Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an +// infinite loop, because it iterates over the newly added props too. + +Object.keys(isUnitlessNumber).forEach(function (prop) { + prefixes.forEach(function (prefix) { + isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop]; + }); +}); + +var hasReadOnlyValue = { + button: true, + checkbox: true, + image: true, + hidden: true, + radio: true, + reset: true, + submit: true +}; +function checkControlledValueProps(tagName, props) { + { + if (!(hasReadOnlyValue[props.type] || props.onChange || props.onInput || props.readOnly || props.disabled || props.value == null)) { + error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.'); + } + + if (!(props.onChange || props.readOnly || props.disabled || props.checked == null)) { + error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.'); + } + } +} + +function isCustomComponent(tagName, props) { + if (tagName.indexOf('-') === -1) { + return typeof props.is === 'string'; + } + + switch (tagName) { + // These are reserved SVG and MathML elements. + // We don't mind this list too much because we expect it to never grow. + // The alternative is to track the namespace in a few places which is convoluted. + // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts + case 'annotation-xml': + case 'color-profile': + case 'font-face': + case 'font-face-src': + case 'font-face-uri': + case 'font-face-format': + case 'font-face-name': + case 'missing-glyph': + return false; + + default: + return true; + } +} + +var ariaProperties = { + 'aria-current': 0, + // state + 'aria-description': 0, + 'aria-details': 0, + 'aria-disabled': 0, + // state + 'aria-hidden': 0, + // state + 'aria-invalid': 0, + // state + 'aria-keyshortcuts': 0, + 'aria-label': 0, + 'aria-roledescription': 0, + // Widget Attributes + 'aria-autocomplete': 0, + 'aria-checked': 0, + 'aria-expanded': 0, + 'aria-haspopup': 0, + 'aria-level': 0, + 'aria-modal': 0, + 'aria-multiline': 0, + 'aria-multiselectable': 0, + 'aria-orientation': 0, + 'aria-placeholder': 0, + 'aria-pressed': 0, + 'aria-readonly': 0, + 'aria-required': 0, + 'aria-selected': 0, + 'aria-sort': 0, + 'aria-valuemax': 0, + 'aria-valuemin': 0, + 'aria-valuenow': 0, + 'aria-valuetext': 0, + // Live Region Attributes + 'aria-atomic': 0, + 'aria-busy': 0, + 'aria-live': 0, + 'aria-relevant': 0, + // Drag-and-Drop Attributes + 'aria-dropeffect': 0, + 'aria-grabbed': 0, + // Relationship Attributes + 'aria-activedescendant': 0, + 'aria-colcount': 0, + 'aria-colindex': 0, + 'aria-colspan': 0, + 'aria-controls': 0, + 'aria-describedby': 0, + 'aria-errormessage': 0, + 'aria-flowto': 0, + 'aria-labelledby': 0, + 'aria-owns': 0, + 'aria-posinset': 0, + 'aria-rowcount': 0, + 'aria-rowindex': 0, + 'aria-rowspan': 0, + 'aria-setsize': 0 +}; + +var warnedProperties = {}; +var rARIA = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$'); +var rARIACamel = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$'); + +function validateProperty(tagName, name) { + { + if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name]) { + return true; + } + + if (rARIACamel.test(name)) { + var ariaName = 'aria-' + name.slice(4).toLowerCase(); + var correctName = ariaProperties.hasOwnProperty(ariaName) ? ariaName : null; // If this is an aria-* attribute, but is not listed in the known DOM + // DOM properties, then it is an invalid aria-* attribute. + + if (correctName == null) { + error('Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.', name); + + warnedProperties[name] = true; + return true; + } // aria-* attributes should be lowercase; suggest the lowercase version. + + + if (name !== correctName) { + error('Invalid ARIA attribute `%s`. Did you mean `%s`?', name, correctName); + + warnedProperties[name] = true; + return true; + } + } + + if (rARIA.test(name)) { + var lowerCasedName = name.toLowerCase(); + var standardName = ariaProperties.hasOwnProperty(lowerCasedName) ? lowerCasedName : null; // If this is an aria-* attribute, but is not listed in the known DOM + // DOM properties, then it is an invalid aria-* attribute. + + if (standardName == null) { + warnedProperties[name] = true; + return false; + } // aria-* attributes should be lowercase; suggest the lowercase version. + + + if (name !== standardName) { + error('Unknown ARIA attribute `%s`. Did you mean `%s`?', name, standardName); + + warnedProperties[name] = true; + return true; + } + } + } + + return true; +} + +function warnInvalidARIAProps(type, props) { + { + var invalidProps = []; + + for (var key in props) { + var isValid = validateProperty(type, key); + + if (!isValid) { + invalidProps.push(key); + } + } + + var unknownPropString = invalidProps.map(function (prop) { + return '`' + prop + '`'; + }).join(', '); + + if (invalidProps.length === 1) { + error('Invalid aria prop %s on <%s> tag. ' + 'For details, see https://reactjs.org/link/invalid-aria-props', unknownPropString, type); + } else if (invalidProps.length > 1) { + error('Invalid aria props %s on <%s> tag. ' + 'For details, see https://reactjs.org/link/invalid-aria-props', unknownPropString, type); + } + } +} + +function validateProperties(type, props) { + if (isCustomComponent(type, props)) { + return; + } + + warnInvalidARIAProps(type, props); +} + +var didWarnValueNull = false; +function validateProperties$1(type, props) { + { + if (type !== 'input' && type !== 'textarea' && type !== 'select') { + return; + } + + if (props != null && props.value === null && !didWarnValueNull) { + didWarnValueNull = true; + + if (type === 'select' && props.multiple) { + error('`value` prop on `%s` should not be null. ' + 'Consider using an empty array when `multiple` is set to `true` ' + 'to clear the component or `undefined` for uncontrolled components.', type); + } else { + error('`value` prop on `%s` should not be null. ' + 'Consider using an empty string to clear the component or `undefined` ' + 'for uncontrolled components.', type); + } + } + } +} + +// When adding attributes to the HTML or SVG allowed attribute list, be sure to +// also add them to this module to ensure casing and incorrect name +// warnings. +var possibleStandardNames = { + // HTML + accept: 'accept', + acceptcharset: 'acceptCharset', + 'accept-charset': 'acceptCharset', + accesskey: 'accessKey', + action: 'action', + allowfullscreen: 'allowFullScreen', + alt: 'alt', + as: 'as', + async: 'async', + autocapitalize: 'autoCapitalize', + autocomplete: 'autoComplete', + autocorrect: 'autoCorrect', + autofocus: 'autoFocus', + autoplay: 'autoPlay', + autosave: 'autoSave', + capture: 'capture', + cellpadding: 'cellPadding', + cellspacing: 'cellSpacing', + challenge: 'challenge', + charset: 'charSet', + checked: 'checked', + children: 'children', + cite: 'cite', + class: 'className', + classid: 'classID', + classname: 'className', + cols: 'cols', + colspan: 'colSpan', + content: 'content', + contenteditable: 'contentEditable', + contextmenu: 'contextMenu', + controls: 'controls', + controlslist: 'controlsList', + coords: 'coords', + crossorigin: 'crossOrigin', + dangerouslysetinnerhtml: 'dangerouslySetInnerHTML', + data: 'data', + datetime: 'dateTime', + default: 'default', + defaultchecked: 'defaultChecked', + defaultvalue: 'defaultValue', + defer: 'defer', + dir: 'dir', + disabled: 'disabled', + disablepictureinpicture: 'disablePictureInPicture', + disableremoteplayback: 'disableRemotePlayback', + download: 'download', + draggable: 'draggable', + enctype: 'encType', + enterkeyhint: 'enterKeyHint', + for: 'htmlFor', + form: 'form', + formmethod: 'formMethod', + formaction: 'formAction', + formenctype: 'formEncType', + formnovalidate: 'formNoValidate', + formtarget: 'formTarget', + frameborder: 'frameBorder', + headers: 'headers', + height: 'height', + hidden: 'hidden', + high: 'high', + href: 'href', + hreflang: 'hrefLang', + htmlfor: 'htmlFor', + httpequiv: 'httpEquiv', + 'http-equiv': 'httpEquiv', + icon: 'icon', + id: 'id', + imagesizes: 'imageSizes', + imagesrcset: 'imageSrcSet', + innerhtml: 'innerHTML', + inputmode: 'inputMode', + integrity: 'integrity', + is: 'is', + itemid: 'itemID', + itemprop: 'itemProp', + itemref: 'itemRef', + itemscope: 'itemScope', + itemtype: 'itemType', + keyparams: 'keyParams', + keytype: 'keyType', + kind: 'kind', + label: 'label', + lang: 'lang', + list: 'list', + loop: 'loop', + low: 'low', + manifest: 'manifest', + marginwidth: 'marginWidth', + marginheight: 'marginHeight', + max: 'max', + maxlength: 'maxLength', + media: 'media', + mediagroup: 'mediaGroup', + method: 'method', + min: 'min', + minlength: 'minLength', + multiple: 'multiple', + muted: 'muted', + name: 'name', + nomodule: 'noModule', + nonce: 'nonce', + novalidate: 'noValidate', + open: 'open', + optimum: 'optimum', + pattern: 'pattern', + placeholder: 'placeholder', + playsinline: 'playsInline', + poster: 'poster', + preload: 'preload', + profile: 'profile', + radiogroup: 'radioGroup', + readonly: 'readOnly', + referrerpolicy: 'referrerPolicy', + rel: 'rel', + required: 'required', + reversed: 'reversed', + role: 'role', + rows: 'rows', + rowspan: 'rowSpan', + sandbox: 'sandbox', + scope: 'scope', + scoped: 'scoped', + scrolling: 'scrolling', + seamless: 'seamless', + selected: 'selected', + shape: 'shape', + size: 'size', + sizes: 'sizes', + span: 'span', + spellcheck: 'spellCheck', + src: 'src', + srcdoc: 'srcDoc', + srclang: 'srcLang', + srcset: 'srcSet', + start: 'start', + step: 'step', + style: 'style', + summary: 'summary', + tabindex: 'tabIndex', + target: 'target', + title: 'title', + type: 'type', + usemap: 'useMap', + value: 'value', + width: 'width', + wmode: 'wmode', + wrap: 'wrap', + // SVG + about: 'about', + accentheight: 'accentHeight', + 'accent-height': 'accentHeight', + accumulate: 'accumulate', + additive: 'additive', + alignmentbaseline: 'alignmentBaseline', + 'alignment-baseline': 'alignmentBaseline', + allowreorder: 'allowReorder', + alphabetic: 'alphabetic', + amplitude: 'amplitude', + arabicform: 'arabicForm', + 'arabic-form': 'arabicForm', + ascent: 'ascent', + attributename: 'attributeName', + attributetype: 'attributeType', + autoreverse: 'autoReverse', + azimuth: 'azimuth', + basefrequency: 'baseFrequency', + baselineshift: 'baselineShift', + 'baseline-shift': 'baselineShift', + baseprofile: 'baseProfile', + bbox: 'bbox', + begin: 'begin', + bias: 'bias', + by: 'by', + calcmode: 'calcMode', + capheight: 'capHeight', + 'cap-height': 'capHeight', + clip: 'clip', + clippath: 'clipPath', + 'clip-path': 'clipPath', + clippathunits: 'clipPathUnits', + cliprule: 'clipRule', + 'clip-rule': 'clipRule', + color: 'color', + colorinterpolation: 'colorInterpolation', + 'color-interpolation': 'colorInterpolation', + colorinterpolationfilters: 'colorInterpolationFilters', + 'color-interpolation-filters': 'colorInterpolationFilters', + colorprofile: 'colorProfile', + 'color-profile': 'colorProfile', + colorrendering: 'colorRendering', + 'color-rendering': 'colorRendering', + contentscripttype: 'contentScriptType', + contentstyletype: 'contentStyleType', + cursor: 'cursor', + cx: 'cx', + cy: 'cy', + d: 'd', + datatype: 'datatype', + decelerate: 'decelerate', + descent: 'descent', + diffuseconstant: 'diffuseConstant', + direction: 'direction', + display: 'display', + divisor: 'divisor', + dominantbaseline: 'dominantBaseline', + 'dominant-baseline': 'dominantBaseline', + dur: 'dur', + dx: 'dx', + dy: 'dy', + edgemode: 'edgeMode', + elevation: 'elevation', + enablebackground: 'enableBackground', + 'enable-background': 'enableBackground', + end: 'end', + exponent: 'exponent', + externalresourcesrequired: 'externalResourcesRequired', + fill: 'fill', + fillopacity: 'fillOpacity', + 'fill-opacity': 'fillOpacity', + fillrule: 'fillRule', + 'fill-rule': 'fillRule', + filter: 'filter', + filterres: 'filterRes', + filterunits: 'filterUnits', + floodopacity: 'floodOpacity', + 'flood-opacity': 'floodOpacity', + floodcolor: 'floodColor', + 'flood-color': 'floodColor', + focusable: 'focusable', + fontfamily: 'fontFamily', + 'font-family': 'fontFamily', + fontsize: 'fontSize', + 'font-size': 'fontSize', + fontsizeadjust: 'fontSizeAdjust', + 'font-size-adjust': 'fontSizeAdjust', + fontstretch: 'fontStretch', + 'font-stretch': 'fontStretch', + fontstyle: 'fontStyle', + 'font-style': 'fontStyle', + fontvariant: 'fontVariant', + 'font-variant': 'fontVariant', + fontweight: 'fontWeight', + 'font-weight': 'fontWeight', + format: 'format', + from: 'from', + fx: 'fx', + fy: 'fy', + g1: 'g1', + g2: 'g2', + glyphname: 'glyphName', + 'glyph-name': 'glyphName', + glyphorientationhorizontal: 'glyphOrientationHorizontal', + 'glyph-orientation-horizontal': 'glyphOrientationHorizontal', + glyphorientationvertical: 'glyphOrientationVertical', + 'glyph-orientation-vertical': 'glyphOrientationVertical', + glyphref: 'glyphRef', + gradienttransform: 'gradientTransform', + gradientunits: 'gradientUnits', + hanging: 'hanging', + horizadvx: 'horizAdvX', + 'horiz-adv-x': 'horizAdvX', + horizoriginx: 'horizOriginX', + 'horiz-origin-x': 'horizOriginX', + ideographic: 'ideographic', + imagerendering: 'imageRendering', + 'image-rendering': 'imageRendering', + in2: 'in2', + in: 'in', + inlist: 'inlist', + intercept: 'intercept', + k1: 'k1', + k2: 'k2', + k3: 'k3', + k4: 'k4', + k: 'k', + kernelmatrix: 'kernelMatrix', + kernelunitlength: 'kernelUnitLength', + kerning: 'kerning', + keypoints: 'keyPoints', + keysplines: 'keySplines', + keytimes: 'keyTimes', + lengthadjust: 'lengthAdjust', + letterspacing: 'letterSpacing', + 'letter-spacing': 'letterSpacing', + lightingcolor: 'lightingColor', + 'lighting-color': 'lightingColor', + limitingconeangle: 'limitingConeAngle', + local: 'local', + markerend: 'markerEnd', + 'marker-end': 'markerEnd', + markerheight: 'markerHeight', + markermid: 'markerMid', + 'marker-mid': 'markerMid', + markerstart: 'markerStart', + 'marker-start': 'markerStart', + markerunits: 'markerUnits', + markerwidth: 'markerWidth', + mask: 'mask', + maskcontentunits: 'maskContentUnits', + maskunits: 'maskUnits', + mathematical: 'mathematical', + mode: 'mode', + numoctaves: 'numOctaves', + offset: 'offset', + opacity: 'opacity', + operator: 'operator', + order: 'order', + orient: 'orient', + orientation: 'orientation', + origin: 'origin', + overflow: 'overflow', + overlineposition: 'overlinePosition', + 'overline-position': 'overlinePosition', + overlinethickness: 'overlineThickness', + 'overline-thickness': 'overlineThickness', + paintorder: 'paintOrder', + 'paint-order': 'paintOrder', + panose1: 'panose1', + 'panose-1': 'panose1', + pathlength: 'pathLength', + patterncontentunits: 'patternContentUnits', + patterntransform: 'patternTransform', + patternunits: 'patternUnits', + pointerevents: 'pointerEvents', + 'pointer-events': 'pointerEvents', + points: 'points', + pointsatx: 'pointsAtX', + pointsaty: 'pointsAtY', + pointsatz: 'pointsAtZ', + prefix: 'prefix', + preservealpha: 'preserveAlpha', + preserveaspectratio: 'preserveAspectRatio', + primitiveunits: 'primitiveUnits', + property: 'property', + r: 'r', + radius: 'radius', + refx: 'refX', + refy: 'refY', + renderingintent: 'renderingIntent', + 'rendering-intent': 'renderingIntent', + repeatcount: 'repeatCount', + repeatdur: 'repeatDur', + requiredextensions: 'requiredExtensions', + requiredfeatures: 'requiredFeatures', + resource: 'resource', + restart: 'restart', + result: 'result', + results: 'results', + rotate: 'rotate', + rx: 'rx', + ry: 'ry', + scale: 'scale', + security: 'security', + seed: 'seed', + shaperendering: 'shapeRendering', + 'shape-rendering': 'shapeRendering', + slope: 'slope', + spacing: 'spacing', + specularconstant: 'specularConstant', + specularexponent: 'specularExponent', + speed: 'speed', + spreadmethod: 'spreadMethod', + startoffset: 'startOffset', + stddeviation: 'stdDeviation', + stemh: 'stemh', + stemv: 'stemv', + stitchtiles: 'stitchTiles', + stopcolor: 'stopColor', + 'stop-color': 'stopColor', + stopopacity: 'stopOpacity', + 'stop-opacity': 'stopOpacity', + strikethroughposition: 'strikethroughPosition', + 'strikethrough-position': 'strikethroughPosition', + strikethroughthickness: 'strikethroughThickness', + 'strikethrough-thickness': 'strikethroughThickness', + string: 'string', + stroke: 'stroke', + strokedasharray: 'strokeDasharray', + 'stroke-dasharray': 'strokeDasharray', + strokedashoffset: 'strokeDashoffset', + 'stroke-dashoffset': 'strokeDashoffset', + strokelinecap: 'strokeLinecap', + 'stroke-linecap': 'strokeLinecap', + strokelinejoin: 'strokeLinejoin', + 'stroke-linejoin': 'strokeLinejoin', + strokemiterlimit: 'strokeMiterlimit', + 'stroke-miterlimit': 'strokeMiterlimit', + strokewidth: 'strokeWidth', + 'stroke-width': 'strokeWidth', + strokeopacity: 'strokeOpacity', + 'stroke-opacity': 'strokeOpacity', + suppresscontenteditablewarning: 'suppressContentEditableWarning', + suppresshydrationwarning: 'suppressHydrationWarning', + surfacescale: 'surfaceScale', + systemlanguage: 'systemLanguage', + tablevalues: 'tableValues', + targetx: 'targetX', + targety: 'targetY', + textanchor: 'textAnchor', + 'text-anchor': 'textAnchor', + textdecoration: 'textDecoration', + 'text-decoration': 'textDecoration', + textlength: 'textLength', + textrendering: 'textRendering', + 'text-rendering': 'textRendering', + to: 'to', + transform: 'transform', + typeof: 'typeof', + u1: 'u1', + u2: 'u2', + underlineposition: 'underlinePosition', + 'underline-position': 'underlinePosition', + underlinethickness: 'underlineThickness', + 'underline-thickness': 'underlineThickness', + unicode: 'unicode', + unicodebidi: 'unicodeBidi', + 'unicode-bidi': 'unicodeBidi', + unicoderange: 'unicodeRange', + 'unicode-range': 'unicodeRange', + unitsperem: 'unitsPerEm', + 'units-per-em': 'unitsPerEm', + unselectable: 'unselectable', + valphabetic: 'vAlphabetic', + 'v-alphabetic': 'vAlphabetic', + values: 'values', + vectoreffect: 'vectorEffect', + 'vector-effect': 'vectorEffect', + version: 'version', + vertadvy: 'vertAdvY', + 'vert-adv-y': 'vertAdvY', + vertoriginx: 'vertOriginX', + 'vert-origin-x': 'vertOriginX', + vertoriginy: 'vertOriginY', + 'vert-origin-y': 'vertOriginY', + vhanging: 'vHanging', + 'v-hanging': 'vHanging', + videographic: 'vIdeographic', + 'v-ideographic': 'vIdeographic', + viewbox: 'viewBox', + viewtarget: 'viewTarget', + visibility: 'visibility', + vmathematical: 'vMathematical', + 'v-mathematical': 'vMathematical', + vocab: 'vocab', + widths: 'widths', + wordspacing: 'wordSpacing', + 'word-spacing': 'wordSpacing', + writingmode: 'writingMode', + 'writing-mode': 'writingMode', + x1: 'x1', + x2: 'x2', + x: 'x', + xchannelselector: 'xChannelSelector', + xheight: 'xHeight', + 'x-height': 'xHeight', + xlinkactuate: 'xlinkActuate', + 'xlink:actuate': 'xlinkActuate', + xlinkarcrole: 'xlinkArcrole', + 'xlink:arcrole': 'xlinkArcrole', + xlinkhref: 'xlinkHref', + 'xlink:href': 'xlinkHref', + xlinkrole: 'xlinkRole', + 'xlink:role': 'xlinkRole', + xlinkshow: 'xlinkShow', + 'xlink:show': 'xlinkShow', + xlinktitle: 'xlinkTitle', + 'xlink:title': 'xlinkTitle', + xlinktype: 'xlinkType', + 'xlink:type': 'xlinkType', + xmlbase: 'xmlBase', + 'xml:base': 'xmlBase', + xmllang: 'xmlLang', + 'xml:lang': 'xmlLang', + xmlns: 'xmlns', + 'xml:space': 'xmlSpace', + xmlnsxlink: 'xmlnsXlink', + 'xmlns:xlink': 'xmlnsXlink', + xmlspace: 'xmlSpace', + y1: 'y1', + y2: 'y2', + y: 'y', + ychannelselector: 'yChannelSelector', + z: 'z', + zoomandpan: 'zoomAndPan' +}; + +var validateProperty$1 = function () {}; + +{ + var warnedProperties$1 = {}; + var EVENT_NAME_REGEX = /^on./; + var INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/; + var rARIA$1 = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$'); + var rARIACamel$1 = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$'); + + validateProperty$1 = function (tagName, name, value, eventRegistry) { + if (hasOwnProperty.call(warnedProperties$1, name) && warnedProperties$1[name]) { + return true; + } + + var lowerCasedName = name.toLowerCase(); + + if (lowerCasedName === 'onfocusin' || lowerCasedName === 'onfocusout') { + error('React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.'); + + warnedProperties$1[name] = true; + return true; + } // We can't rely on the event system being injected on the server. + + + if (eventRegistry != null) { + var registrationNameDependencies = eventRegistry.registrationNameDependencies, + possibleRegistrationNames = eventRegistry.possibleRegistrationNames; + + if (registrationNameDependencies.hasOwnProperty(name)) { + return true; + } + + var registrationName = possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? possibleRegistrationNames[lowerCasedName] : null; + + if (registrationName != null) { + error('Invalid event handler property `%s`. Did you mean `%s`?', name, registrationName); + + warnedProperties$1[name] = true; + return true; + } + + if (EVENT_NAME_REGEX.test(name)) { + error('Unknown event handler property `%s`. It will be ignored.', name); + + warnedProperties$1[name] = true; + return true; + } + } else if (EVENT_NAME_REGEX.test(name)) { + // If no event plugins have been injected, we are in a server environment. + // So we can't tell if the event name is correct for sure, but we can filter + // out known bad ones like `onclick`. We can't suggest a specific replacement though. + if (INVALID_EVENT_NAME_REGEX.test(name)) { + error('Invalid event handler property `%s`. ' + 'React events use the camelCase naming convention, for example `onClick`.', name); + } + + warnedProperties$1[name] = true; + return true; + } // Let the ARIA attribute hook validate ARIA attributes + + + if (rARIA$1.test(name) || rARIACamel$1.test(name)) { + return true; + } + + if (lowerCasedName === 'innerhtml') { + error('Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.'); + + warnedProperties$1[name] = true; + return true; + } + + if (lowerCasedName === 'aria') { + error('The `aria` attribute is reserved for future use in React. ' + 'Pass individual `aria-` attributes instead.'); + + warnedProperties$1[name] = true; + return true; + } + + if (lowerCasedName === 'is' && value !== null && value !== undefined && typeof value !== 'string') { + error('Received a `%s` for a string attribute `is`. If this is expected, cast ' + 'the value to a string.', typeof value); + + warnedProperties$1[name] = true; + return true; + } + + if (typeof value === 'number' && isNaN(value)) { + error('Received NaN for the `%s` attribute. If this is expected, cast ' + 'the value to a string.', name); + + warnedProperties$1[name] = true; + return true; + } + + var propertyInfo = getPropertyInfo(name); + var isReserved = propertyInfo !== null && propertyInfo.type === RESERVED; // Known attributes should match the casing specified in the property config. + + if (possibleStandardNames.hasOwnProperty(lowerCasedName)) { + var standardName = possibleStandardNames[lowerCasedName]; + + if (standardName !== name) { + error('Invalid DOM property `%s`. Did you mean `%s`?', name, standardName); + + warnedProperties$1[name] = true; + return true; + } + } else if (!isReserved && name !== lowerCasedName) { + // Unknown attributes should have lowercase casing since that's how they + // will be cased anyway with server rendering. + error('React does not recognize the `%s` prop on a DOM element. If you ' + 'intentionally want it to appear in the DOM as a custom ' + 'attribute, spell it as lowercase `%s` instead. ' + 'If you accidentally passed it from a parent component, remove ' + 'it from the DOM element.', name, lowerCasedName); + + warnedProperties$1[name] = true; + return true; + } + + if (typeof value === 'boolean' && shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) { + if (value) { + error('Received `%s` for a non-boolean attribute `%s`.\n\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s="%s" or %s={value.toString()}.', value, name, name, value, name); + } else { + error('Received `%s` for a non-boolean attribute `%s`.\n\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s="%s" or %s={value.toString()}.\n\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', value, name, name, value, name, name, name); + } + + warnedProperties$1[name] = true; + return true; + } // Now that we've validated casing, do not validate + // data types for reserved props + + + if (isReserved) { + return true; + } // Warn when a known attribute is a bad type + + + if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) { + warnedProperties$1[name] = true; + return false; + } // Warn when passing the strings 'false' or 'true' into a boolean prop + + + if ((value === 'false' || value === 'true') && propertyInfo !== null && propertyInfo.type === BOOLEAN) { + error('Received the string `%s` for the boolean attribute `%s`. ' + '%s ' + 'Did you mean %s={%s}?', value, name, value === 'false' ? 'The browser will interpret it as a truthy value.' : 'Although this works, it will not work as expected if you pass the string "false".', name, value); + + warnedProperties$1[name] = true; + return true; + } + + return true; + }; +} + +var warnUnknownProperties = function (type, props, eventRegistry) { + { + var unknownProps = []; + + for (var key in props) { + var isValid = validateProperty$1(type, key, props[key], eventRegistry); + + if (!isValid) { + unknownProps.push(key); + } + } + + var unknownPropString = unknownProps.map(function (prop) { + return '`' + prop + '`'; + }).join(', '); + + if (unknownProps.length === 1) { + error('Invalid value for prop %s on <%s> tag. Either remove it from the element, ' + 'or pass a string or number value to keep it in the DOM. ' + 'For details, see https://reactjs.org/link/attribute-behavior ', unknownPropString, type); + } else if (unknownProps.length > 1) { + error('Invalid values for props %s on <%s> tag. Either remove them from the element, ' + 'or pass a string or number value to keep them in the DOM. ' + 'For details, see https://reactjs.org/link/attribute-behavior ', unknownPropString, type); + } + } +}; + +function validateProperties$2(type, props, eventRegistry) { + if (isCustomComponent(type, props)) { + return; + } + + warnUnknownProperties(type, props, eventRegistry); +} + +var warnValidStyle = function () {}; + +{ + // 'msTransform' is correct, but the other prefixes should be capitalized + var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/; + var msPattern = /^-ms-/; + var hyphenPattern = /-(.)/g; // style values shouldn't contain a semicolon + + var badStyleValueWithSemicolonPattern = /;\s*$/; + var warnedStyleNames = {}; + var warnedStyleValues = {}; + var warnedForNaNValue = false; + var warnedForInfinityValue = false; + + var camelize = function (string) { + return string.replace(hyphenPattern, function (_, character) { + return character.toUpperCase(); + }); + }; + + var warnHyphenatedStyleName = function (name) { + if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) { + return; + } + + warnedStyleNames[name] = true; + + error('Unsupported style property %s. Did you mean %s?', name, // As Andi Smith suggests + // (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix + // is converted to lowercase `ms`. + camelize(name.replace(msPattern, 'ms-'))); + }; + + var warnBadVendoredStyleName = function (name) { + if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) { + return; + } + + warnedStyleNames[name] = true; + + error('Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1)); + }; + + var warnStyleValueWithSemicolon = function (name, value) { + if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) { + return; + } + + warnedStyleValues[value] = true; + + error("Style property values shouldn't contain a semicolon. " + 'Try "%s: %s" instead.', name, value.replace(badStyleValueWithSemicolonPattern, '')); + }; + + var warnStyleValueIsNaN = function (name, value) { + if (warnedForNaNValue) { + return; + } + + warnedForNaNValue = true; + + error('`NaN` is an invalid value for the `%s` css style property.', name); + }; + + var warnStyleValueIsInfinity = function (name, value) { + if (warnedForInfinityValue) { + return; + } + + warnedForInfinityValue = true; + + error('`Infinity` is an invalid value for the `%s` css style property.', name); + }; + + warnValidStyle = function (name, value) { + if (name.indexOf('-') > -1) { + warnHyphenatedStyleName(name); + } else if (badVendoredStyleNamePattern.test(name)) { + warnBadVendoredStyleName(name); + } else if (badStyleValueWithSemicolonPattern.test(value)) { + warnStyleValueWithSemicolon(name, value); + } + + if (typeof value === 'number') { + if (isNaN(value)) { + warnStyleValueIsNaN(name, value); + } else if (!isFinite(value)) { + warnStyleValueIsInfinity(name, value); + } + } + }; +} + +var warnValidStyle$1 = warnValidStyle; + +// code copied and modified from escape-html +var matchHtmlRegExp = /["'&<>]/; +/** + * Escapes special characters and HTML entities in a given html string. + * + * @param {string} string HTML string to escape for later insertion + * @return {string} + * @public + */ + +function escapeHtml(string) { + { + checkHtmlStringCoercion(string); + } + + var str = '' + string; + var match = matchHtmlRegExp.exec(str); + + if (!match) { + return str; + } + + var escape; + var html = ''; + var index; + var lastIndex = 0; + + for (index = match.index; index < str.length; index++) { + switch (str.charCodeAt(index)) { + case 34: + // " + escape = '"'; + break; + + case 38: + // & + escape = '&'; + break; + + case 39: + // ' + escape = '''; // modified from escape-html; used to be ''' + + break; + + case 60: + // < + escape = '<'; + break; + + case 62: + // > + escape = '>'; + break; + + default: + continue; + } + + if (lastIndex !== index) { + html += str.substring(lastIndex, index); + } + + lastIndex = index + 1; + html += escape; + } + + return lastIndex !== index ? html + str.substring(lastIndex, index) : html; +} // end code copied and modified from escape-html + +/** + * Escapes text to prevent scripting attacks. + * + * @param {*} text Text value to escape. + * @return {string} An escaped string. + */ + + +function escapeTextForBrowser(text) { + if (typeof text === 'boolean' || typeof text === 'number') { + // this shortcircuit helps perf for types that we know will never have + // special characters, especially given that this function is used often + // for numeric dom ids. + return '' + text; + } + + return escapeHtml(text); +} + +var uppercasePattern = /([A-Z])/g; +var msPattern$1 = /^ms-/; +/** + * Hyphenates a camelcased CSS property name, for example: + * + * > hyphenateStyleName('backgroundColor') + * < "background-color" + * > hyphenateStyleName('MozTransition') + * < "-moz-transition" + * > hyphenateStyleName('msTransition') + * < "-ms-transition" + * + * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix + * is converted to `-ms-`. + */ + +function hyphenateStyleName(name) { + return name.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern$1, '-ms-'); +} + +// and any newline or tab are filtered out as if they're not part of the URL. +// https://url.spec.whatwg.org/#url-parsing +// Tab or newline are defined as \r\n\t: +// https://infra.spec.whatwg.org/#ascii-tab-or-newline +// A C0 control is a code point in the range \u0000 NULL to \u001F +// INFORMATION SEPARATOR ONE, inclusive: +// https://infra.spec.whatwg.org/#c0-control-or-space + +/* eslint-disable max-len */ + +var isJavaScriptProtocol = /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i; +var didWarn = false; + +function sanitizeURL(url) { + { + if (!didWarn && isJavaScriptProtocol.test(url)) { + didWarn = true; + + error('A future version of React will block javascript: URLs as a security precaution. ' + 'Use event handlers instead if you can. If you need to generate unsafe HTML try ' + 'using dangerouslySetInnerHTML instead. React was passed %s.', JSON.stringify(url)); + } + } +} + +var isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare + +function isArray(a) { + return isArrayImpl(a); +} + +var startInlineScript = stringToPrecomputedChunk(''); +var startScriptSrc = stringToPrecomputedChunk(''); +/** + * This escaping function is designed to work with bootstrapScriptContent only. + * because we know we are escaping the entire script. We can avoid for instance + * escaping html comment string sequences that are valid javascript as well because + * if there are no sebsequent '); +function writeCompletedSegmentInstruction(destination, responseState, contentSegmentID) { + writeChunk(destination, responseState.startInlineScript); + + if (!responseState.sentCompleteSegmentFunction) { + // The first time we write this, we'll need to include the full implementation. + responseState.sentCompleteSegmentFunction = true; + writeChunk(destination, completeSegmentScript1Full); + } else { + // Future calls can just reuse the same function. + writeChunk(destination, completeSegmentScript1Partial); + } + + writeChunk(destination, responseState.segmentPrefix); + var formattedID = stringToChunk(contentSegmentID.toString(16)); + writeChunk(destination, formattedID); + writeChunk(destination, completeSegmentScript2); + writeChunk(destination, responseState.placeholderPrefix); + writeChunk(destination, formattedID); + return writeChunkAndReturn(destination, completeSegmentScript3); +} +var completeBoundaryScript1Full = stringToPrecomputedChunk(completeBoundaryFunction + ';$RC("'); +var completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC("'); +var completeBoundaryScript2 = stringToPrecomputedChunk('","'); +var completeBoundaryScript3 = stringToPrecomputedChunk('")'); +function writeCompletedBoundaryInstruction(destination, responseState, boundaryID, contentSegmentID) { + writeChunk(destination, responseState.startInlineScript); + + if (!responseState.sentCompleteBoundaryFunction) { + // The first time we write this, we'll need to include the full implementation. + responseState.sentCompleteBoundaryFunction = true; + writeChunk(destination, completeBoundaryScript1Full); + } else { + // Future calls can just reuse the same function. + writeChunk(destination, completeBoundaryScript1Partial); + } + + if (boundaryID === null) { + throw new Error('An ID must have been assigned before we can complete the boundary.'); + } + + var formattedContentID = stringToChunk(contentSegmentID.toString(16)); + writeChunk(destination, boundaryID); + writeChunk(destination, completeBoundaryScript2); + writeChunk(destination, responseState.segmentPrefix); + writeChunk(destination, formattedContentID); + return writeChunkAndReturn(destination, completeBoundaryScript3); +} +var clientRenderScript1Full = stringToPrecomputedChunk(clientRenderFunction + ';$RX("'); +var clientRenderScript1Partial = stringToPrecomputedChunk('$RX("'); +var clientRenderScript1A = stringToPrecomputedChunk('"'); +var clientRenderScript2 = stringToPrecomputedChunk(')'); +var clientRenderErrorScriptArgInterstitial = stringToPrecomputedChunk(','); +function writeClientRenderBoundaryInstruction(destination, responseState, boundaryID, errorDigest, errorMessage, errorComponentStack) { + writeChunk(destination, responseState.startInlineScript); + + if (!responseState.sentClientRenderFunction) { + // The first time we write this, we'll need to include the full implementation. + responseState.sentClientRenderFunction = true; + writeChunk(destination, clientRenderScript1Full); + } else { + // Future calls can just reuse the same function. + writeChunk(destination, clientRenderScript1Partial); + } + + if (boundaryID === null) { + throw new Error('An ID must have been assigned before we can complete the boundary.'); + } + + writeChunk(destination, boundaryID); + writeChunk(destination, clientRenderScript1A); + + if (errorDigest || errorMessage || errorComponentStack) { + writeChunk(destination, clientRenderErrorScriptArgInterstitial); + writeChunk(destination, stringToChunk(escapeJSStringsForInstructionScripts(errorDigest || ''))); + } + + if (errorMessage || errorComponentStack) { + writeChunk(destination, clientRenderErrorScriptArgInterstitial); + writeChunk(destination, stringToChunk(escapeJSStringsForInstructionScripts(errorMessage || ''))); + } + + if (errorComponentStack) { + writeChunk(destination, clientRenderErrorScriptArgInterstitial); + writeChunk(destination, stringToChunk(escapeJSStringsForInstructionScripts(errorComponentStack))); + } + + return writeChunkAndReturn(destination, clientRenderScript2); +} +var regexForJSStringsInScripts = /[<\u2028\u2029]/g; + +function escapeJSStringsForInstructionScripts(input) { + var escaped = JSON.stringify(input); + return escaped.replace(regexForJSStringsInScripts, function (match) { + switch (match) { + // santizing breaking out of strings and script tags + case '<': + return "\\u003c"; + + case "\u2028": + return "\\u2028"; + + case "\u2029": + return "\\u2029"; + + default: + { + // eslint-disable-next-line react-internal/prod-error-codes + throw new Error('escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React'); + } + } + }); +} + +function createResponseState$1(generateStaticMarkup, identifierPrefix) { + var responseState = createResponseState(identifierPrefix, undefined); + return { + // Keep this in sync with ReactDOMServerFormatConfig + bootstrapChunks: responseState.bootstrapChunks, + startInlineScript: responseState.startInlineScript, + placeholderPrefix: responseState.placeholderPrefix, + segmentPrefix: responseState.segmentPrefix, + boundaryPrefix: responseState.boundaryPrefix, + idPrefix: responseState.idPrefix, + nextSuspenseID: responseState.nextSuspenseID, + sentCompleteSegmentFunction: responseState.sentCompleteSegmentFunction, + sentCompleteBoundaryFunction: responseState.sentCompleteBoundaryFunction, + sentClientRenderFunction: responseState.sentClientRenderFunction, + // This is an extra field for the legacy renderer + generateStaticMarkup: generateStaticMarkup + }; +} +function createRootFormatContext() { + return { + insertionMode: HTML_MODE, + // We skip the root mode because we don't want to emit the DOCTYPE in legacy mode. + selectedValue: null + }; +} +function pushTextInstance$1(target, text, responseState, textEmbedded) { + if (responseState.generateStaticMarkup) { + target.push(stringToChunk(escapeTextForBrowser(text))); + return false; + } else { + return pushTextInstance(target, text, responseState, textEmbedded); + } +} +function pushSegmentFinale$1(target, responseState, lastPushedText, textEmbedded) { + if (responseState.generateStaticMarkup) { + return; + } else { + return pushSegmentFinale(target, responseState, lastPushedText, textEmbedded); + } +} +function writeStartCompletedSuspenseBoundary$1(destination, responseState) { + if (responseState.generateStaticMarkup) { + // A completed boundary is done and doesn't need a representation in the HTML + // if we're not going to be hydrating it. + return true; + } + + return writeStartCompletedSuspenseBoundary(destination); +} +function writeStartClientRenderedSuspenseBoundary$1(destination, responseState, // flushing these error arguments are not currently supported in this legacy streaming format. +errorDigest, errorMessage, errorComponentStack) { + if (responseState.generateStaticMarkup) { + // A client rendered boundary is done and doesn't need a representation in the HTML + // since we'll never hydrate it. This is arguably an error in static generation. + return true; + } + + return writeStartClientRenderedSuspenseBoundary(destination, responseState, errorDigest, errorMessage, errorComponentStack); +} +function writeEndCompletedSuspenseBoundary$1(destination, responseState) { + if (responseState.generateStaticMarkup) { + return true; + } + + return writeEndCompletedSuspenseBoundary(destination); +} +function writeEndClientRenderedSuspenseBoundary$1(destination, responseState) { + if (responseState.generateStaticMarkup) { + return true; + } + + return writeEndClientRenderedSuspenseBoundary(destination); +} + +var assign = Object.assign; + +// ATTENTION +// When adding new symbols to this file, +// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols' +// The Symbol used to tag the ReactElement-like types. +var REACT_ELEMENT_TYPE = Symbol.for('react.element'); +var REACT_PORTAL_TYPE = Symbol.for('react.portal'); +var REACT_FRAGMENT_TYPE = Symbol.for('react.fragment'); +var REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode'); +var REACT_PROFILER_TYPE = Symbol.for('react.profiler'); +var REACT_PROVIDER_TYPE = Symbol.for('react.provider'); +var REACT_CONTEXT_TYPE = Symbol.for('react.context'); +var REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref'); +var REACT_SUSPENSE_TYPE = Symbol.for('react.suspense'); +var REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list'); +var REACT_MEMO_TYPE = Symbol.for('react.memo'); +var REACT_LAZY_TYPE = Symbol.for('react.lazy'); +var REACT_SCOPE_TYPE = Symbol.for('react.scope'); +var REACT_DEBUG_TRACING_MODE_TYPE = Symbol.for('react.debug_trace_mode'); +var REACT_LEGACY_HIDDEN_TYPE = Symbol.for('react.legacy_hidden'); +var REACT_SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED = Symbol.for('react.default_value'); +var MAYBE_ITERATOR_SYMBOL = Symbol.iterator; +var FAUX_ITERATOR_SYMBOL = '@@iterator'; +function getIteratorFn(maybeIterable) { + if (maybeIterable === null || typeof maybeIterable !== 'object') { + return null; + } + + var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]; + + if (typeof maybeIterator === 'function') { + return maybeIterator; + } + + return null; +} + +function getWrappedName(outerType, innerType, wrapperName) { + var displayName = outerType.displayName; + + if (displayName) { + return displayName; + } + + var functionName = innerType.displayName || innerType.name || ''; + return functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName; +} // Keep in sync with react-reconciler/getComponentNameFromFiber + + +function getContextName(type) { + return type.displayName || 'Context'; +} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead. + + +function getComponentNameFromType(type) { + if (type == null) { + // Host root, text node or just invalid type. + return null; + } + + { + if (typeof type.tag === 'number') { + error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.'); + } + } + + if (typeof type === 'function') { + return type.displayName || type.name || null; + } + + if (typeof type === 'string') { + return type; + } + + switch (type) { + case REACT_FRAGMENT_TYPE: + return 'Fragment'; + + case REACT_PORTAL_TYPE: + return 'Portal'; + + case REACT_PROFILER_TYPE: + return 'Profiler'; + + case REACT_STRICT_MODE_TYPE: + return 'StrictMode'; + + case REACT_SUSPENSE_TYPE: + return 'Suspense'; + + case REACT_SUSPENSE_LIST_TYPE: + return 'SuspenseList'; + + } + + if (typeof type === 'object') { + switch (type.$$typeof) { + case REACT_CONTEXT_TYPE: + var context = type; + return getContextName(context) + '.Consumer'; + + case REACT_PROVIDER_TYPE: + var provider = type; + return getContextName(provider._context) + '.Provider'; + + case REACT_FORWARD_REF_TYPE: + return getWrappedName(type, type.render, 'ForwardRef'); + + case REACT_MEMO_TYPE: + var outerName = type.displayName || null; + + if (outerName !== null) { + return outerName; + } + + return getComponentNameFromType(type.type) || 'Memo'; + + case REACT_LAZY_TYPE: + { + var lazyComponent = type; + var payload = lazyComponent._payload; + var init = lazyComponent._init; + + try { + return getComponentNameFromType(init(payload)); + } catch (x) { + return null; + } + } + + // eslint-disable-next-line no-fallthrough + } + } + + return null; +} + +// Helpers to patch console.logs to avoid logging during side-effect free +// replaying on render function. This currently only patches the object +// lazily which won't cover if the log function was extracted eagerly. +// We could also eagerly patch the method. +var disabledDepth = 0; +var prevLog; +var prevInfo; +var prevWarn; +var prevError; +var prevGroup; +var prevGroupCollapsed; +var prevGroupEnd; + +function disabledLog() {} + +disabledLog.__reactDisabledLog = true; +function disableLogs() { + { + if (disabledDepth === 0) { + /* eslint-disable react-internal/no-production-logging */ + prevLog = console.log; + prevInfo = console.info; + prevWarn = console.warn; + prevError = console.error; + prevGroup = console.group; + prevGroupCollapsed = console.groupCollapsed; + prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099 + + var props = { + configurable: true, + enumerable: true, + value: disabledLog, + writable: true + }; // $FlowFixMe Flow thinks console is immutable. + + Object.defineProperties(console, { + info: props, + log: props, + warn: props, + error: props, + group: props, + groupCollapsed: props, + groupEnd: props + }); + /* eslint-enable react-internal/no-production-logging */ + } + + disabledDepth++; + } +} +function reenableLogs() { + { + disabledDepth--; + + if (disabledDepth === 0) { + /* eslint-disable react-internal/no-production-logging */ + var props = { + configurable: true, + enumerable: true, + writable: true + }; // $FlowFixMe Flow thinks console is immutable. + + Object.defineProperties(console, { + log: assign({}, props, { + value: prevLog + }), + info: assign({}, props, { + value: prevInfo + }), + warn: assign({}, props, { + value: prevWarn + }), + error: assign({}, props, { + value: prevError + }), + group: assign({}, props, { + value: prevGroup + }), + groupCollapsed: assign({}, props, { + value: prevGroupCollapsed + }), + groupEnd: assign({}, props, { + value: prevGroupEnd + }) + }); + /* eslint-enable react-internal/no-production-logging */ + } + + if (disabledDepth < 0) { + error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.'); + } + } +} + +var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher; +var prefix; +function describeBuiltInComponentFrame(name, source, ownerFn) { + { + if (prefix === undefined) { + // Extract the VM specific prefix used by each line. + try { + throw Error(); + } catch (x) { + var match = x.stack.trim().match(/\n( *(at )?)/); + prefix = match && match[1] || ''; + } + } // We use the prefix to ensure our stacks line up with native stack frames. + + + return '\n' + prefix + name; + } +} +var reentry = false; +var componentFrameCache; + +{ + var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map; + componentFrameCache = new PossiblyWeakMap(); +} + +function describeNativeComponentFrame(fn, construct) { + // If something asked for a stack inside a fake render, it should get ignored. + if ( !fn || reentry) { + return ''; + } + + { + var frame = componentFrameCache.get(fn); + + if (frame !== undefined) { + return frame; + } + } + + var control; + reentry = true; + var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined. + + Error.prepareStackTrace = undefined; + var previousDispatcher; + + { + previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function + // for warnings. + + ReactCurrentDispatcher.current = null; + disableLogs(); + } + + try { + // This should throw. + if (construct) { + // Something should be setting the props in the constructor. + var Fake = function () { + throw Error(); + }; // $FlowFixMe + + + Object.defineProperty(Fake.prototype, 'props', { + set: function () { + // We use a throwing setter instead of frozen or non-writable props + // because that won't throw in a non-strict mode function. + throw Error(); + } + }); + + if (typeof Reflect === 'object' && Reflect.construct) { + // We construct a different control for this case to include any extra + // frames added by the construct call. + try { + Reflect.construct(Fake, []); + } catch (x) { + control = x; + } + + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x) { + control = x; + } + + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x) { + control = x; + } + + fn(); + } + } catch (sample) { + // This is inlined manually because closure doesn't do it for us. + if (sample && control && typeof sample.stack === 'string') { + // This extracts the first frame from the sample that isn't also in the control. + // Skipping one frame that we assume is the frame that calls the two. + var sampleLines = sample.stack.split('\n'); + var controlLines = control.stack.split('\n'); + var s = sampleLines.length - 1; + var c = controlLines.length - 1; + + while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) { + // We expect at least one stack frame to be shared. + // Typically this will be the root most one. However, stack frames may be + // cut off due to maximum stack limits. In this case, one maybe cut off + // earlier than the other. We assume that the sample is longer or the same + // and there for cut off earlier. So we should find the root most frame in + // the sample somewhere in the control. + c--; + } + + for (; s >= 1 && c >= 0; s--, c--) { + // Next we find the first one that isn't the same which should be the + // frame that called our sample function and the control. + if (sampleLines[s] !== controlLines[c]) { + // In V8, the first line is describing the message but other VMs don't. + // If we're about to return the first line, and the control is also on the same + // line, that's a pretty good indicator that our sample threw at same line as + // the control. I.e. before we entered the sample frame. So we ignore this result. + // This can happen if you passed a class to function component, or non-function. + if (s !== 1 || c !== 1) { + do { + s--; + c--; // We may still have similar intermediate frames from the construct call. + // The next one that isn't the same should be our match though. + + if (c < 0 || sampleLines[s] !== controlLines[c]) { + // V8 adds a "new" prefix for native classes. Let's remove it to make it prettier. + var _frame = '\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled "" + // but we have a user-provided "displayName" + // splice it in to make the stack more readable. + + + if (fn.displayName && _frame.includes('')) { + _frame = _frame.replace('', fn.displayName); + } + + { + if (typeof fn === 'function') { + componentFrameCache.set(fn, _frame); + } + } // Return the line we found. + + + return _frame; + } + } while (s >= 1 && c >= 0); + } + + break; + } + } + } + } finally { + reentry = false; + + { + ReactCurrentDispatcher.current = previousDispatcher; + reenableLogs(); + } + + Error.prepareStackTrace = previousPrepareStackTrace; + } // Fallback to just using the name if we couldn't make it throw. + + + var name = fn ? fn.displayName || fn.name : ''; + var syntheticFrame = name ? describeBuiltInComponentFrame(name) : ''; + + { + if (typeof fn === 'function') { + componentFrameCache.set(fn, syntheticFrame); + } + } + + return syntheticFrame; +} + +function describeClassComponentFrame(ctor, source, ownerFn) { + { + return describeNativeComponentFrame(ctor, true); + } +} +function describeFunctionComponentFrame(fn, source, ownerFn) { + { + return describeNativeComponentFrame(fn, false); + } +} + +function shouldConstruct(Component) { + var prototype = Component.prototype; + return !!(prototype && prototype.isReactComponent); +} + +function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) { + + if (type == null) { + return ''; + } + + if (typeof type === 'function') { + { + return describeNativeComponentFrame(type, shouldConstruct(type)); + } + } + + if (typeof type === 'string') { + return describeBuiltInComponentFrame(type); + } + + switch (type) { + case REACT_SUSPENSE_TYPE: + return describeBuiltInComponentFrame('Suspense'); + + case REACT_SUSPENSE_LIST_TYPE: + return describeBuiltInComponentFrame('SuspenseList'); + } + + if (typeof type === 'object') { + switch (type.$$typeof) { + case REACT_FORWARD_REF_TYPE: + return describeFunctionComponentFrame(type.render); + + case REACT_MEMO_TYPE: + // Memo may contain any component type so we recursively resolve it. + return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn); + + case REACT_LAZY_TYPE: + { + var lazyComponent = type; + var payload = lazyComponent._payload; + var init = lazyComponent._init; + + try { + // Lazy may contain any component type so we recursively resolve it. + return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn); + } catch (x) {} + } + } + } + + return ''; +} + +var loggedTypeFailures = {}; +var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame; + +function setCurrentlyValidatingElement(element) { + { + if (element) { + var owner = element._owner; + var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null); + ReactDebugCurrentFrame.setExtraStackFrame(stack); + } else { + ReactDebugCurrentFrame.setExtraStackFrame(null); + } + } +} + +function checkPropTypes(typeSpecs, values, location, componentName, element) { + { + // $FlowFixMe This is okay but Flow doesn't know it. + var has = Function.call.bind(hasOwnProperty); + + for (var typeSpecName in typeSpecs) { + if (has(typeSpecs, typeSpecName)) { + var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + if (typeof typeSpecs[typeSpecName] !== 'function') { + // eslint-disable-next-line react-internal/prod-error-codes + var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'); + err.name = 'Invariant Violation'; + throw err; + } + + error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'); + } catch (ex) { + error$1 = ex; + } + + if (error$1 && !(error$1 instanceof Error)) { + setCurrentlyValidatingElement(element); + + error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1); + + setCurrentlyValidatingElement(null); + } + + if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error$1.message] = true; + setCurrentlyValidatingElement(element); + + error('Failed %s type: %s', location, error$1.message); + + setCurrentlyValidatingElement(null); + } + } + } + } +} + +var warnedAboutMissingGetChildContext; + +{ + warnedAboutMissingGetChildContext = {}; +} + +var emptyContextObject = {}; + +{ + Object.freeze(emptyContextObject); +} + +function getMaskedContext(type, unmaskedContext) { + { + var contextTypes = type.contextTypes; + + if (!contextTypes) { + return emptyContextObject; + } + + var context = {}; + + for (var key in contextTypes) { + context[key] = unmaskedContext[key]; + } + + { + var name = getComponentNameFromType(type) || 'Unknown'; + checkPropTypes(contextTypes, context, 'context', name); + } + + return context; + } +} +function processChildContext(instance, type, parentContext, childContextTypes) { + { + // TODO (bvaughn) Replace this behavior with an invariant() in the future. + // It has only been added in Fiber to match the (unintentional) behavior in Stack. + if (typeof instance.getChildContext !== 'function') { + { + var componentName = getComponentNameFromType(type) || 'Unknown'; + + if (!warnedAboutMissingGetChildContext[componentName]) { + warnedAboutMissingGetChildContext[componentName] = true; + + error('%s.childContextTypes is specified but there is no getChildContext() method ' + 'on the instance. You can either define getChildContext() on %s or remove ' + 'childContextTypes from it.', componentName, componentName); + } + } + + return parentContext; + } + + var childContext = instance.getChildContext(); + + for (var contextKey in childContext) { + if (!(contextKey in childContextTypes)) { + throw new Error((getComponentNameFromType(type) || 'Unknown') + ".getChildContext(): key \"" + contextKey + "\" is not defined in childContextTypes."); + } + } + + { + var name = getComponentNameFromType(type) || 'Unknown'; + checkPropTypes(childContextTypes, childContext, 'child context', name); + } + + return assign({}, parentContext, childContext); + } +} + +var rendererSigil; + +{ + // Use this to detect multiple renderers using the same context + rendererSigil = {}; +} // Used to store the parent path of all context overrides in a shared linked list. +// Forming a reverse tree. + + +var rootContextSnapshot = null; // We assume that this runtime owns the "current" field on all ReactContext instances. +// This global (actually thread local) state represents what state all those "current", +// fields are currently in. + +var currentActiveSnapshot = null; + +function popNode(prev) { + { + prev.context._currentValue2 = prev.parentValue; + } +} + +function pushNode(next) { + { + next.context._currentValue2 = next.value; + } +} + +function popToNearestCommonAncestor(prev, next) { + if (prev === next) ; else { + popNode(prev); + var parentPrev = prev.parent; + var parentNext = next.parent; + + if (parentPrev === null) { + if (parentNext !== null) { + throw new Error('The stacks must reach the root at the same time. This is a bug in React.'); + } + } else { + if (parentNext === null) { + throw new Error('The stacks must reach the root at the same time. This is a bug in React.'); + } + + popToNearestCommonAncestor(parentPrev, parentNext); + } // On the way back, we push the new ones that weren't common. + + + pushNode(next); + } +} + +function popAllPrevious(prev) { + popNode(prev); + var parentPrev = prev.parent; + + if (parentPrev !== null) { + popAllPrevious(parentPrev); + } +} + +function pushAllNext(next) { + var parentNext = next.parent; + + if (parentNext !== null) { + pushAllNext(parentNext); + } + + pushNode(next); +} + +function popPreviousToCommonLevel(prev, next) { + popNode(prev); + var parentPrev = prev.parent; + + if (parentPrev === null) { + throw new Error('The depth must equal at least at zero before reaching the root. This is a bug in React.'); + } + + if (parentPrev.depth === next.depth) { + // We found the same level. Now we just need to find a shared ancestor. + popToNearestCommonAncestor(parentPrev, next); + } else { + // We must still be deeper. + popPreviousToCommonLevel(parentPrev, next); + } +} + +function popNextToCommonLevel(prev, next) { + var parentNext = next.parent; + + if (parentNext === null) { + throw new Error('The depth must equal at least at zero before reaching the root. This is a bug in React.'); + } + + if (prev.depth === parentNext.depth) { + // We found the same level. Now we just need to find a shared ancestor. + popToNearestCommonAncestor(prev, parentNext); + } else { + // We must still be deeper. + popNextToCommonLevel(prev, parentNext); + } + + pushNode(next); +} // Perform context switching to the new snapshot. +// To make it cheap to read many contexts, while not suspending, we make the switch eagerly by +// updating all the context's current values. That way reads, always just read the current value. +// At the cost of updating contexts even if they're never read by this subtree. + + +function switchContext(newSnapshot) { + // The basic algorithm we need to do is to pop back any contexts that are no longer on the stack. + // We also need to update any new contexts that are now on the stack with the deepest value. + // The easiest way to update new contexts is to just reapply them in reverse order from the + // perspective of the backpointers. To avoid allocating a lot when switching, we use the stack + // for that. Therefore this algorithm is recursive. + // 1) First we pop which ever snapshot tree was deepest. Popping old contexts as we go. + // 2) Then we find the nearest common ancestor from there. Popping old contexts as we go. + // 3) Then we reapply new contexts on the way back up the stack. + var prev = currentActiveSnapshot; + var next = newSnapshot; + + if (prev !== next) { + if (prev === null) { + // $FlowFixMe: This has to be non-null since it's not equal to prev. + pushAllNext(next); + } else if (next === null) { + popAllPrevious(prev); + } else if (prev.depth === next.depth) { + popToNearestCommonAncestor(prev, next); + } else if (prev.depth > next.depth) { + popPreviousToCommonLevel(prev, next); + } else { + popNextToCommonLevel(prev, next); + } + + currentActiveSnapshot = next; + } +} +function pushProvider(context, nextValue) { + var prevValue; + + { + prevValue = context._currentValue2; + context._currentValue2 = nextValue; + + { + if (context._currentRenderer2 !== undefined && context._currentRenderer2 !== null && context._currentRenderer2 !== rendererSigil) { + error('Detected multiple renderers concurrently rendering the ' + 'same context provider. This is currently unsupported.'); + } + + context._currentRenderer2 = rendererSigil; + } + } + + var prevNode = currentActiveSnapshot; + var newNode = { + parent: prevNode, + depth: prevNode === null ? 0 : prevNode.depth + 1, + context: context, + parentValue: prevValue, + value: nextValue + }; + currentActiveSnapshot = newNode; + return newNode; +} +function popProvider(context) { + var prevSnapshot = currentActiveSnapshot; + + if (prevSnapshot === null) { + throw new Error('Tried to pop a Context at the root of the app. This is a bug in React.'); + } + + { + if (prevSnapshot.context !== context) { + error('The parent context is not the expected context. This is probably a bug in React.'); + } + } + + { + var _value = prevSnapshot.parentValue; + + if (_value === REACT_SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED) { + prevSnapshot.context._currentValue2 = prevSnapshot.context._defaultValue; + } else { + prevSnapshot.context._currentValue2 = _value; + } + + { + if (context._currentRenderer2 !== undefined && context._currentRenderer2 !== null && context._currentRenderer2 !== rendererSigil) { + error('Detected multiple renderers concurrently rendering the ' + 'same context provider. This is currently unsupported.'); + } + + context._currentRenderer2 = rendererSigil; + } + } + + return currentActiveSnapshot = prevSnapshot.parent; +} +function getActiveContext() { + return currentActiveSnapshot; +} +function readContext(context) { + var value = context._currentValue2; + return value; +} + +/** + * `ReactInstanceMap` maintains a mapping from a public facing stateful + * instance (key) and the internal representation (value). This allows public + * methods to accept the user facing instance as an argument and map them back + * to internal methods. + * + * Note that this module is currently shared and assumed to be stateless. + * If this becomes an actual Map, that will break. + */ +function get(key) { + return key._reactInternals; +} +function set(key, value) { + key._reactInternals = value; +} + +var didWarnAboutNoopUpdateForComponent = {}; +var didWarnAboutDeprecatedWillMount = {}; +var didWarnAboutUninitializedState; +var didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate; +var didWarnAboutLegacyLifecyclesAndDerivedState; +var didWarnAboutUndefinedDerivedState; +var warnOnUndefinedDerivedState; +var warnOnInvalidCallback; +var didWarnAboutDirectlyAssigningPropsToState; +var didWarnAboutContextTypeAndContextTypes; +var didWarnAboutInvalidateContextType; + +{ + didWarnAboutUninitializedState = new Set(); + didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set(); + didWarnAboutLegacyLifecyclesAndDerivedState = new Set(); + didWarnAboutDirectlyAssigningPropsToState = new Set(); + didWarnAboutUndefinedDerivedState = new Set(); + didWarnAboutContextTypeAndContextTypes = new Set(); + didWarnAboutInvalidateContextType = new Set(); + var didWarnOnInvalidCallback = new Set(); + + warnOnInvalidCallback = function (callback, callerName) { + if (callback === null || typeof callback === 'function') { + return; + } + + var key = callerName + '_' + callback; + + if (!didWarnOnInvalidCallback.has(key)) { + didWarnOnInvalidCallback.add(key); + + error('%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback); + } + }; + + warnOnUndefinedDerivedState = function (type, partialState) { + if (partialState === undefined) { + var componentName = getComponentNameFromType(type) || 'Component'; + + if (!didWarnAboutUndefinedDerivedState.has(componentName)) { + didWarnAboutUndefinedDerivedState.add(componentName); + + error('%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. ' + 'You have returned undefined.', componentName); + } + } + }; +} + +function warnNoop(publicInstance, callerName) { + { + var _constructor = publicInstance.constructor; + var componentName = _constructor && getComponentNameFromType(_constructor) || 'ReactClass'; + var warningKey = componentName + '.' + callerName; + + if (didWarnAboutNoopUpdateForComponent[warningKey]) { + return; + } + + error('%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op.\n\nPlease check the code for the %s component.', callerName, callerName, componentName); + + didWarnAboutNoopUpdateForComponent[warningKey] = true; + } +} + +var classComponentUpdater = { + isMounted: function (inst) { + return false; + }, + enqueueSetState: function (inst, payload, callback) { + var internals = get(inst); + + if (internals.queue === null) { + warnNoop(inst, 'setState'); + } else { + internals.queue.push(payload); + + { + if (callback !== undefined && callback !== null) { + warnOnInvalidCallback(callback, 'setState'); + } + } + } + }, + enqueueReplaceState: function (inst, payload, callback) { + var internals = get(inst); + internals.replace = true; + internals.queue = [payload]; + + { + if (callback !== undefined && callback !== null) { + warnOnInvalidCallback(callback, 'setState'); + } + } + }, + enqueueForceUpdate: function (inst, callback) { + var internals = get(inst); + + if (internals.queue === null) { + warnNoop(inst, 'forceUpdate'); + } else { + { + if (callback !== undefined && callback !== null) { + warnOnInvalidCallback(callback, 'setState'); + } + } + } + } +}; + +function applyDerivedStateFromProps(instance, ctor, getDerivedStateFromProps, prevState, nextProps) { + var partialState = getDerivedStateFromProps(nextProps, prevState); + + { + warnOnUndefinedDerivedState(ctor, partialState); + } // Merge the partial state and the previous state. + + + var newState = partialState === null || partialState === undefined ? prevState : assign({}, prevState, partialState); + return newState; +} + +function constructClassInstance(ctor, props, maskedLegacyContext) { + var context = emptyContextObject; + var contextType = ctor.contextType; + + { + if ('contextType' in ctor) { + var isValid = // Allow null for conditional declaration + contextType === null || contextType !== undefined && contextType.$$typeof === REACT_CONTEXT_TYPE && contextType._context === undefined; // Not a + + if (!isValid && !didWarnAboutInvalidateContextType.has(ctor)) { + didWarnAboutInvalidateContextType.add(ctor); + var addendum = ''; + + if (contextType === undefined) { + addendum = ' However, it is set to undefined. ' + 'This can be caused by a typo or by mixing up named and default imports. ' + 'This can also happen due to a circular dependency, so ' + 'try moving the createContext() call to a separate file.'; + } else if (typeof contextType !== 'object') { + addendum = ' However, it is set to a ' + typeof contextType + '.'; + } else if (contextType.$$typeof === REACT_PROVIDER_TYPE) { + addendum = ' Did you accidentally pass the Context.Provider instead?'; + } else if (contextType._context !== undefined) { + // + addendum = ' Did you accidentally pass the Context.Consumer instead?'; + } else { + addendum = ' However, it is set to an object with keys {' + Object.keys(contextType).join(', ') + '}.'; + } + + error('%s defines an invalid contextType. ' + 'contextType should point to the Context object returned by React.createContext().%s', getComponentNameFromType(ctor) || 'Component', addendum); + } + } + } + + if (typeof contextType === 'object' && contextType !== null) { + context = readContext(contextType); + } else { + context = maskedLegacyContext; + } + + var instance = new ctor(props, context); + + { + if (typeof ctor.getDerivedStateFromProps === 'function' && (instance.state === null || instance.state === undefined)) { + var componentName = getComponentNameFromType(ctor) || 'Component'; + + if (!didWarnAboutUninitializedState.has(componentName)) { + didWarnAboutUninitializedState.add(componentName); + + error('`%s` uses `getDerivedStateFromProps` but its initial state is ' + '%s. This is not recommended. Instead, define the initial state by ' + 'assigning an object to `this.state` in the constructor of `%s`. ' + 'This ensures that `getDerivedStateFromProps` arguments have a consistent shape.', componentName, instance.state === null ? 'null' : 'undefined', componentName); + } + } // If new component APIs are defined, "unsafe" lifecycles won't be called. + // Warn about these lifecycles if they are present. + // Don't warn about react-lifecycles-compat polyfilled methods though. + + + if (typeof ctor.getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function') { + var foundWillMountName = null; + var foundWillReceivePropsName = null; + var foundWillUpdateName = null; + + if (typeof instance.componentWillMount === 'function' && instance.componentWillMount.__suppressDeprecationWarning !== true) { + foundWillMountName = 'componentWillMount'; + } else if (typeof instance.UNSAFE_componentWillMount === 'function') { + foundWillMountName = 'UNSAFE_componentWillMount'; + } + + if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) { + foundWillReceivePropsName = 'componentWillReceiveProps'; + } else if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') { + foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps'; + } + + if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) { + foundWillUpdateName = 'componentWillUpdate'; + } else if (typeof instance.UNSAFE_componentWillUpdate === 'function') { + foundWillUpdateName = 'UNSAFE_componentWillUpdate'; + } + + if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) { + var _componentName = getComponentNameFromType(ctor) || 'Component'; + + var newApiName = typeof ctor.getDerivedStateFromProps === 'function' ? 'getDerivedStateFromProps()' : 'getSnapshotBeforeUpdate()'; + + if (!didWarnAboutLegacyLifecyclesAndDerivedState.has(_componentName)) { + didWarnAboutLegacyLifecyclesAndDerivedState.add(_componentName); + + error('Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n' + '%s uses %s but also contains the following legacy lifecycles:%s%s%s\n\n' + 'The above lifecycles should be removed. Learn more about this warning here:\n' + 'https://reactjs.org/link/unsafe-component-lifecycles', _componentName, newApiName, foundWillMountName !== null ? "\n " + foundWillMountName : '', foundWillReceivePropsName !== null ? "\n " + foundWillReceivePropsName : '', foundWillUpdateName !== null ? "\n " + foundWillUpdateName : ''); + } + } + } + } + + return instance; +} + +function checkClassInstance(instance, ctor, newProps) { + { + var name = getComponentNameFromType(ctor) || 'Component'; + var renderPresent = instance.render; + + if (!renderPresent) { + if (ctor.prototype && typeof ctor.prototype.render === 'function') { + error('%s(...): No `render` method found on the returned component ' + 'instance: did you accidentally return an object from the constructor?', name); + } else { + error('%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', name); + } + } + + if (instance.getInitialState && !instance.getInitialState.isReactClassApproved && !instance.state) { + error('getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', name); + } + + if (instance.getDefaultProps && !instance.getDefaultProps.isReactClassApproved) { + error('getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', name); + } + + if (instance.propTypes) { + error('propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', name); + } + + if (instance.contextType) { + error('contextType was defined as an instance property on %s. Use a static ' + 'property to define contextType instead.', name); + } + + { + if (instance.contextTypes) { + error('contextTypes was defined as an instance property on %s. Use a static ' + 'property to define contextTypes instead.', name); + } + + if (ctor.contextType && ctor.contextTypes && !didWarnAboutContextTypeAndContextTypes.has(ctor)) { + didWarnAboutContextTypeAndContextTypes.add(ctor); + + error('%s declares both contextTypes and contextType static properties. ' + 'The legacy contextTypes property will be ignored.', name); + } + } + + if (typeof instance.componentShouldUpdate === 'function') { + error('%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', name); + } + + if (ctor.prototype && ctor.prototype.isPureReactComponent && typeof instance.shouldComponentUpdate !== 'undefined') { + error('%s has a method called shouldComponentUpdate(). ' + 'shouldComponentUpdate should not be used when extending React.PureComponent. ' + 'Please extend React.Component if shouldComponentUpdate is used.', getComponentNameFromType(ctor) || 'A pure component'); + } + + if (typeof instance.componentDidUnmount === 'function') { + error('%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', name); + } + + if (typeof instance.componentDidReceiveProps === 'function') { + error('%s has a method called ' + 'componentDidReceiveProps(). But there is no such lifecycle method. ' + 'If you meant to update the state in response to changing props, ' + 'use componentWillReceiveProps(). If you meant to fetch data or ' + 'run side-effects or mutations after React has updated the UI, use componentDidUpdate().', name); + } + + if (typeof instance.componentWillRecieveProps === 'function') { + error('%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', name); + } + + if (typeof instance.UNSAFE_componentWillRecieveProps === 'function') { + error('%s has a method called ' + 'UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?', name); + } + + var hasMutatedProps = instance.props !== newProps; + + if (instance.props !== undefined && hasMutatedProps) { + error('%s(...): When calling super() in `%s`, make sure to pass ' + "up the same props that your component's constructor was passed.", name, name); + } + + if (instance.defaultProps) { + error('Setting defaultProps as an instance property on %s is not supported and will be ignored.' + ' Instead, define defaultProps as a static property on %s.', name, name); + } + + if (typeof instance.getSnapshotBeforeUpdate === 'function' && typeof instance.componentDidUpdate !== 'function' && !didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(ctor)) { + didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(ctor); + + error('%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). ' + 'This component defines getSnapshotBeforeUpdate() only.', getComponentNameFromType(ctor)); + } + + if (typeof instance.getDerivedStateFromProps === 'function') { + error('%s: getDerivedStateFromProps() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name); + } + + if (typeof instance.getDerivedStateFromError === 'function') { + error('%s: getDerivedStateFromError() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name); + } + + if (typeof ctor.getSnapshotBeforeUpdate === 'function') { + error('%s: getSnapshotBeforeUpdate() is defined as a static method ' + 'and will be ignored. Instead, declare it as an instance method.', name); + } + + var _state = instance.state; + + if (_state && (typeof _state !== 'object' || isArray(_state))) { + error('%s.state: must be set to an object or null', name); + } + + if (typeof instance.getChildContext === 'function' && typeof ctor.childContextTypes !== 'object') { + error('%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', name); + } + } +} + +function callComponentWillMount(type, instance) { + var oldState = instance.state; + + if (typeof instance.componentWillMount === 'function') { + { + if ( instance.componentWillMount.__suppressDeprecationWarning !== true) { + var componentName = getComponentNameFromType(type) || 'Unknown'; + + if (!didWarnAboutDeprecatedWillMount[componentName]) { + warn( // keep this warning in sync with ReactStrictModeWarning.js + 'componentWillMount has been renamed, and is not recommended for use. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\n\n' + '* Move code from componentWillMount to componentDidMount (preferred in most cases) ' + 'or the constructor.\n' + '\nPlease update the following components: %s', componentName); + + didWarnAboutDeprecatedWillMount[componentName] = true; + } + } + } + + instance.componentWillMount(); + } + + if (typeof instance.UNSAFE_componentWillMount === 'function') { + instance.UNSAFE_componentWillMount(); + } + + if (oldState !== instance.state) { + { + error('%s.componentWillMount(): Assigning directly to this.state is ' + "deprecated (except inside a component's " + 'constructor). Use setState instead.', getComponentNameFromType(type) || 'Component'); + } + + classComponentUpdater.enqueueReplaceState(instance, instance.state, null); + } +} + +function processUpdateQueue(internalInstance, inst, props, maskedLegacyContext) { + if (internalInstance.queue !== null && internalInstance.queue.length > 0) { + var oldQueue = internalInstance.queue; + var oldReplace = internalInstance.replace; + internalInstance.queue = null; + internalInstance.replace = false; + + if (oldReplace && oldQueue.length === 1) { + inst.state = oldQueue[0]; + } else { + var nextState = oldReplace ? oldQueue[0] : inst.state; + var dontMutate = true; + + for (var i = oldReplace ? 1 : 0; i < oldQueue.length; i++) { + var partial = oldQueue[i]; + var partialState = typeof partial === 'function' ? partial.call(inst, nextState, props, maskedLegacyContext) : partial; + + if (partialState != null) { + if (dontMutate) { + dontMutate = false; + nextState = assign({}, nextState, partialState); + } else { + assign(nextState, partialState); + } + } + } + + inst.state = nextState; + } + } else { + internalInstance.queue = null; + } +} // Invokes the mount life-cycles on a previously never rendered instance. + + +function mountClassInstance(instance, ctor, newProps, maskedLegacyContext) { + { + checkClassInstance(instance, ctor, newProps); + } + + var initialState = instance.state !== undefined ? instance.state : null; + instance.updater = classComponentUpdater; + instance.props = newProps; + instance.state = initialState; // We don't bother initializing the refs object on the server, since we're not going to resolve them anyway. + // The internal instance will be used to manage updates that happen during this mount. + + var internalInstance = { + queue: [], + replace: false + }; + set(instance, internalInstance); + var contextType = ctor.contextType; + + if (typeof contextType === 'object' && contextType !== null) { + instance.context = readContext(contextType); + } else { + instance.context = maskedLegacyContext; + } + + { + if (instance.state === newProps) { + var componentName = getComponentNameFromType(ctor) || 'Component'; + + if (!didWarnAboutDirectlyAssigningPropsToState.has(componentName)) { + didWarnAboutDirectlyAssigningPropsToState.add(componentName); + + error('%s: It is not recommended to assign props directly to state ' + "because updates to props won't be reflected in state. " + 'In most cases, it is better to use props directly.', componentName); + } + } + } + + var getDerivedStateFromProps = ctor.getDerivedStateFromProps; + + if (typeof getDerivedStateFromProps === 'function') { + instance.state = applyDerivedStateFromProps(instance, ctor, getDerivedStateFromProps, initialState, newProps); + } // In order to support react-lifecycles-compat polyfilled components, + // Unsafe lifecycles should not be invoked for components using the new APIs. + + + if (typeof ctor.getDerivedStateFromProps !== 'function' && typeof instance.getSnapshotBeforeUpdate !== 'function' && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) { + callComponentWillMount(ctor, instance); // If we had additional state updates during this life-cycle, let's + // process them now. + + processUpdateQueue(internalInstance, instance, newProps, maskedLegacyContext); + } +} + +// Ids are base 32 strings whose binary representation corresponds to the +// position of a node in a tree. +// Every time the tree forks into multiple children, we add additional bits to +// the left of the sequence that represent the position of the child within the +// current level of children. +// +// 00101 00010001011010101 +// ╰─┬─╯ ╰───────┬───────╯ +// Fork 5 of 20 Parent id +// +// The leading 0s are important. In the above example, you only need 3 bits to +// represent slot 5. However, you need 5 bits to represent all the forks at +// the current level, so we must account for the empty bits at the end. +// +// For this same reason, slots are 1-indexed instead of 0-indexed. Otherwise, +// the zeroth id at a level would be indistinguishable from its parent. +// +// If a node has only one child, and does not materialize an id (i.e. does not +// contain a useId hook), then we don't need to allocate any space in the +// sequence. It's treated as a transparent indirection. For example, these two +// trees produce the same ids: +// +// <> <> +// +// +// +// +// +// +// However, we cannot skip any node that materializes an id. Otherwise, a parent +// id that does not fork would be indistinguishable from its child id. For +// example, this tree does not fork, but the parent and child must have +// different ids. +// +// +// +// +// +// To handle this scenario, every time we materialize an id, we allocate a +// new level with a single slot. You can think of this as a fork with only one +// prong, or an array of children with length 1. +// +// It's possible for the size of the sequence to exceed 32 bits, the max +// size for bitwise operations. When this happens, we make more room by +// converting the right part of the id to a string and storing it in an overflow +// variable. We use a base 32 string representation, because 32 is the largest +// power of 2 that is supported by toString(). We want the base to be large so +// that the resulting ids are compact, and we want the base to be a power of 2 +// because every log2(base) bits corresponds to a single character, i.e. every +// log2(32) = 5 bits. That means we can lop bits off the end 5 at a time without +// affecting the final result. +var emptyTreeContext = { + id: 1, + overflow: '' +}; +function getTreeId(context) { + var overflow = context.overflow; + var idWithLeadingBit = context.id; + var id = idWithLeadingBit & ~getLeadingBit(idWithLeadingBit); + return id.toString(32) + overflow; +} +function pushTreeContext(baseContext, totalChildren, index) { + var baseIdWithLeadingBit = baseContext.id; + var baseOverflow = baseContext.overflow; // The leftmost 1 marks the end of the sequence, non-inclusive. It's not part + // of the id; we use it to account for leading 0s. + + var baseLength = getBitLength(baseIdWithLeadingBit) - 1; + var baseId = baseIdWithLeadingBit & ~(1 << baseLength); + var slot = index + 1; + var length = getBitLength(totalChildren) + baseLength; // 30 is the max length we can store without overflowing, taking into + // consideration the leading 1 we use to mark the end of the sequence. + + if (length > 30) { + // We overflowed the bitwise-safe range. Fall back to slower algorithm. + // This branch assumes the length of the base id is greater than 5; it won't + // work for smaller ids, because you need 5 bits per character. + // + // We encode the id in multiple steps: first the base id, then the + // remaining digits. + // + // Each 5 bit sequence corresponds to a single base 32 character. So for + // example, if the current id is 23 bits long, we can convert 20 of those + // bits into a string of 4 characters, with 3 bits left over. + // + // First calculate how many bits in the base id represent a complete + // sequence of characters. + var numberOfOverflowBits = baseLength - baseLength % 5; // Then create a bitmask that selects only those bits. + + var newOverflowBits = (1 << numberOfOverflowBits) - 1; // Select the bits, and convert them to a base 32 string. + + var newOverflow = (baseId & newOverflowBits).toString(32); // Now we can remove those bits from the base id. + + var restOfBaseId = baseId >> numberOfOverflowBits; + var restOfBaseLength = baseLength - numberOfOverflowBits; // Finally, encode the rest of the bits using the normal algorithm. Because + // we made more room, this time it won't overflow. + + var restOfLength = getBitLength(totalChildren) + restOfBaseLength; + var restOfNewBits = slot << restOfBaseLength; + var id = restOfNewBits | restOfBaseId; + var overflow = newOverflow + baseOverflow; + return { + id: 1 << restOfLength | id, + overflow: overflow + }; + } else { + // Normal path + var newBits = slot << baseLength; + + var _id = newBits | baseId; + + var _overflow = baseOverflow; + return { + id: 1 << length | _id, + overflow: _overflow + }; + } +} + +function getBitLength(number) { + return 32 - clz32(number); +} + +function getLeadingBit(id) { + return 1 << getBitLength(id) - 1; +} // TODO: Math.clz32 is supported in Node 12+. Maybe we can drop the fallback. + + +var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback; // Count leading zeros. +// Based on: +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32 + +var log = Math.log; +var LN2 = Math.LN2; + +function clz32Fallback(x) { + var asUint = x >>> 0; + + if (asUint === 0) { + return 32; + } + + return 31 - (log(asUint) / LN2 | 0) | 0; +} + +/** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ +function is(x, y) { + return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare + ; +} + +var objectIs = typeof Object.is === 'function' ? Object.is : is; + +var currentlyRenderingComponent = null; +var currentlyRenderingTask = null; +var firstWorkInProgressHook = null; +var workInProgressHook = null; // Whether the work-in-progress hook is a re-rendered hook + +var isReRender = false; // Whether an update was scheduled during the currently executing render pass. + +var didScheduleRenderPhaseUpdate = false; // Counts the number of useId hooks in this component + +var localIdCounter = 0; // Lazily created map of render-phase updates + +var renderPhaseUpdates = null; // Counter to prevent infinite loops. + +var numberOfReRenders = 0; +var RE_RENDER_LIMIT = 25; +var isInHookUserCodeInDev = false; // In DEV, this is the name of the currently executing primitive hook + +var currentHookNameInDev; + +function resolveCurrentlyRenderingComponent() { + if (currentlyRenderingComponent === null) { + throw new Error('Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for' + ' one of the following reasons:\n' + '1. You might have mismatching versions of React and the renderer (such as React DOM)\n' + '2. You might be breaking the Rules of Hooks\n' + '3. You might have more than one copy of React in the same app\n' + 'See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.'); + } + + { + if (isInHookUserCodeInDev) { + error('Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. ' + 'You can only call Hooks at the top level of your React function. ' + 'For more information, see ' + 'https://reactjs.org/link/rules-of-hooks'); + } + } + + return currentlyRenderingComponent; +} + +function areHookInputsEqual(nextDeps, prevDeps) { + if (prevDeps === null) { + { + error('%s received a final argument during this render, but not during ' + 'the previous render. Even though the final argument is optional, ' + 'its type cannot change between renders.', currentHookNameInDev); + } + + return false; + } + + { + // Don't bother comparing lengths in prod because these arrays should be + // passed inline. + if (nextDeps.length !== prevDeps.length) { + error('The final argument passed to %s changed size between renders. The ' + 'order and size of this array must remain constant.\n\n' + 'Previous: %s\n' + 'Incoming: %s', currentHookNameInDev, "[" + nextDeps.join(', ') + "]", "[" + prevDeps.join(', ') + "]"); + } + } + + for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++) { + if (objectIs(nextDeps[i], prevDeps[i])) { + continue; + } + + return false; + } + + return true; +} + +function createHook() { + if (numberOfReRenders > 0) { + throw new Error('Rendered more hooks than during the previous render'); + } + + return { + memoizedState: null, + queue: null, + next: null + }; +} + +function createWorkInProgressHook() { + if (workInProgressHook === null) { + // This is the first hook in the list + if (firstWorkInProgressHook === null) { + isReRender = false; + firstWorkInProgressHook = workInProgressHook = createHook(); + } else { + // There's already a work-in-progress. Reuse it. + isReRender = true; + workInProgressHook = firstWorkInProgressHook; + } + } else { + if (workInProgressHook.next === null) { + isReRender = false; // Append to the end of the list + + workInProgressHook = workInProgressHook.next = createHook(); + } else { + // There's already a work-in-progress. Reuse it. + isReRender = true; + workInProgressHook = workInProgressHook.next; + } + } + + return workInProgressHook; +} + +function prepareToUseHooks(task, componentIdentity) { + currentlyRenderingComponent = componentIdentity; + currentlyRenderingTask = task; + + { + isInHookUserCodeInDev = false; + } // The following should have already been reset + // didScheduleRenderPhaseUpdate = false; + // localIdCounter = 0; + // firstWorkInProgressHook = null; + // numberOfReRenders = 0; + // renderPhaseUpdates = null; + // workInProgressHook = null; + + + localIdCounter = 0; +} +function finishHooks(Component, props, children, refOrContext) { + // This must be called after every function component to prevent hooks from + // being used in classes. + while (didScheduleRenderPhaseUpdate) { + // Updates were scheduled during the render phase. They are stored in + // the `renderPhaseUpdates` map. Call the component again, reusing the + // work-in-progress hooks and applying the additional updates on top. Keep + // restarting until no more updates are scheduled. + didScheduleRenderPhaseUpdate = false; + localIdCounter = 0; + numberOfReRenders += 1; // Start over from the beginning of the list + + workInProgressHook = null; + children = Component(props, refOrContext); + } + + resetHooksState(); + return children; +} +function checkDidRenderIdHook() { + // This should be called immediately after every finishHooks call. + // Conceptually, it's part of the return value of finishHooks; it's only a + // separate function to avoid using an array tuple. + var didRenderIdHook = localIdCounter !== 0; + return didRenderIdHook; +} // Reset the internal hooks state if an error occurs while rendering a component + +function resetHooksState() { + { + isInHookUserCodeInDev = false; + } + + currentlyRenderingComponent = null; + currentlyRenderingTask = null; + didScheduleRenderPhaseUpdate = false; + firstWorkInProgressHook = null; + numberOfReRenders = 0; + renderPhaseUpdates = null; + workInProgressHook = null; +} + +function readContext$1(context) { + { + if (isInHookUserCodeInDev) { + error('Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().'); + } + } + + return readContext(context); +} + +function useContext(context) { + { + currentHookNameInDev = 'useContext'; + } + + resolveCurrentlyRenderingComponent(); + return readContext(context); +} + +function basicStateReducer(state, action) { + // $FlowFixMe: Flow doesn't like mixed types + return typeof action === 'function' ? action(state) : action; +} + +function useState(initialState) { + { + currentHookNameInDev = 'useState'; + } + + return useReducer(basicStateReducer, // useReducer has a special case to support lazy useState initializers + initialState); +} +function useReducer(reducer, initialArg, init) { + { + if (reducer !== basicStateReducer) { + currentHookNameInDev = 'useReducer'; + } + } + + currentlyRenderingComponent = resolveCurrentlyRenderingComponent(); + workInProgressHook = createWorkInProgressHook(); + + if (isReRender) { + // This is a re-render. Apply the new render phase updates to the previous + // current hook. + var queue = workInProgressHook.queue; + var dispatch = queue.dispatch; + + if (renderPhaseUpdates !== null) { + // Render phase updates are stored in a map of queue -> linked list + var firstRenderPhaseUpdate = renderPhaseUpdates.get(queue); + + if (firstRenderPhaseUpdate !== undefined) { + renderPhaseUpdates.delete(queue); + var newState = workInProgressHook.memoizedState; + var update = firstRenderPhaseUpdate; + + do { + // Process this render phase update. We don't have to check the + // priority because it will always be the same as the current + // render's. + var action = update.action; + + { + isInHookUserCodeInDev = true; + } + + newState = reducer(newState, action); + + { + isInHookUserCodeInDev = false; + } + + update = update.next; + } while (update !== null); + + workInProgressHook.memoizedState = newState; + return [newState, dispatch]; + } + } + + return [workInProgressHook.memoizedState, dispatch]; + } else { + { + isInHookUserCodeInDev = true; + } + + var initialState; + + if (reducer === basicStateReducer) { + // Special case for `useState`. + initialState = typeof initialArg === 'function' ? initialArg() : initialArg; + } else { + initialState = init !== undefined ? init(initialArg) : initialArg; + } + + { + isInHookUserCodeInDev = false; + } + + workInProgressHook.memoizedState = initialState; + + var _queue = workInProgressHook.queue = { + last: null, + dispatch: null + }; + + var _dispatch = _queue.dispatch = dispatchAction.bind(null, currentlyRenderingComponent, _queue); + + return [workInProgressHook.memoizedState, _dispatch]; + } +} + +function useMemo(nextCreate, deps) { + currentlyRenderingComponent = resolveCurrentlyRenderingComponent(); + workInProgressHook = createWorkInProgressHook(); + var nextDeps = deps === undefined ? null : deps; + + if (workInProgressHook !== null) { + var prevState = workInProgressHook.memoizedState; + + if (prevState !== null) { + if (nextDeps !== null) { + var prevDeps = prevState[1]; + + if (areHookInputsEqual(nextDeps, prevDeps)) { + return prevState[0]; + } + } + } + } + + { + isInHookUserCodeInDev = true; + } + + var nextValue = nextCreate(); + + { + isInHookUserCodeInDev = false; + } + + workInProgressHook.memoizedState = [nextValue, nextDeps]; + return nextValue; +} + +function useRef(initialValue) { + currentlyRenderingComponent = resolveCurrentlyRenderingComponent(); + workInProgressHook = createWorkInProgressHook(); + var previousRef = workInProgressHook.memoizedState; + + if (previousRef === null) { + var ref = { + current: initialValue + }; + + { + Object.seal(ref); + } + + workInProgressHook.memoizedState = ref; + return ref; + } else { + return previousRef; + } +} + +function useLayoutEffect(create, inputs) { + { + currentHookNameInDev = 'useLayoutEffect'; + + error('useLayoutEffect does nothing on the server, because its effect cannot ' + "be encoded into the server renderer's output format. This will lead " + 'to a mismatch between the initial, non-hydrated UI and the intended ' + 'UI. To avoid this, useLayoutEffect should only be used in ' + 'components that render exclusively on the client. ' + 'See https://reactjs.org/link/uselayouteffect-ssr for common fixes.'); + } +} + +function dispatchAction(componentIdentity, queue, action) { + if (numberOfReRenders >= RE_RENDER_LIMIT) { + throw new Error('Too many re-renders. React limits the number of renders to prevent ' + 'an infinite loop.'); + } + + if (componentIdentity === currentlyRenderingComponent) { + // This is a render phase update. Stash it in a lazily-created map of + // queue -> linked list of updates. After this render pass, we'll restart + // and apply the stashed updates on top of the work-in-progress hook. + didScheduleRenderPhaseUpdate = true; + var update = { + action: action, + next: null + }; + + if (renderPhaseUpdates === null) { + renderPhaseUpdates = new Map(); + } + + var firstRenderPhaseUpdate = renderPhaseUpdates.get(queue); + + if (firstRenderPhaseUpdate === undefined) { + renderPhaseUpdates.set(queue, update); + } else { + // Append the update to the end of the list. + var lastRenderPhaseUpdate = firstRenderPhaseUpdate; + + while (lastRenderPhaseUpdate.next !== null) { + lastRenderPhaseUpdate = lastRenderPhaseUpdate.next; + } + + lastRenderPhaseUpdate.next = update; + } + } +} + +function useCallback(callback, deps) { + return useMemo(function () { + return callback; + }, deps); +} // TODO Decide on how to implement this hook for server rendering. +// If a mutation occurs during render, consider triggering a Suspense boundary +// and falling back to client rendering. + +function useMutableSource(source, getSnapshot, subscribe) { + resolveCurrentlyRenderingComponent(); + return getSnapshot(source._source); +} + +function useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) { + if (getServerSnapshot === undefined) { + throw new Error('Missing getServerSnapshot, which is required for ' + 'server-rendered content. Will revert to client rendering.'); + } + + return getServerSnapshot(); +} + +function useDeferredValue(value) { + resolveCurrentlyRenderingComponent(); + return value; +} + +function unsupportedStartTransition() { + throw new Error('startTransition cannot be called during server rendering.'); +} + +function useTransition() { + resolveCurrentlyRenderingComponent(); + return [false, unsupportedStartTransition]; +} + +function useId() { + var task = currentlyRenderingTask; + var treeId = getTreeId(task.treeContext); + var responseState = currentResponseState; + + if (responseState === null) { + throw new Error('Invalid hook call. Hooks can only be called inside of the body of a function component.'); + } + + var localId = localIdCounter++; + return makeId(responseState, treeId, localId); +} + +function noop() {} + +var Dispatcher = { + readContext: readContext$1, + useContext: useContext, + useMemo: useMemo, + useReducer: useReducer, + useRef: useRef, + useState: useState, + useInsertionEffect: noop, + useLayoutEffect: useLayoutEffect, + useCallback: useCallback, + // useImperativeHandle is not run in the server environment + useImperativeHandle: noop, + // Effects are not run in the server environment. + useEffect: noop, + // Debugging effect + useDebugValue: noop, + useDeferredValue: useDeferredValue, + useTransition: useTransition, + useId: useId, + // Subscriptions are not setup in a server environment. + useMutableSource: useMutableSource, + useSyncExternalStore: useSyncExternalStore +}; + +var currentResponseState = null; +function setCurrentResponseState(responseState) { + currentResponseState = responseState; +} + +function getStackByComponentStackNode(componentStack) { + try { + var info = ''; + var node = componentStack; + + do { + switch (node.tag) { + case 0: + info += describeBuiltInComponentFrame(node.type, null, null); + break; + + case 1: + info += describeFunctionComponentFrame(node.type, null, null); + break; + + case 2: + info += describeClassComponentFrame(node.type, null, null); + break; + } + + node = node.parent; + } while (node); + + return info; + } catch (x) { + return '\nError generating stack: ' + x.message + '\n' + x.stack; + } +} + +var ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher; +var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame; +var PENDING = 0; +var COMPLETED = 1; +var FLUSHED = 2; +var ABORTED = 3; +var ERRORED = 4; +var OPEN = 0; +var CLOSING = 1; +var CLOSED = 2; +// This is a default heuristic for how to split up the HTML content into progressive +// loading. Our goal is to be able to display additional new content about every 500ms. +// Faster than that is unnecessary and should be throttled on the client. It also +// adds unnecessary overhead to do more splits. We don't know if it's a higher or lower +// end device but higher end suffer less from the overhead than lower end does from +// not getting small enough pieces. We error on the side of low end. +// We base this on low end 3G speeds which is about 500kbits per second. We assume +// that there can be a reasonable drop off from max bandwidth which leaves you with +// as little as 80%. We can receive half of that each 500ms - at best. In practice, +// a little bandwidth is lost to processing and contention - e.g. CSS and images that +// are downloaded along with the main content. So we estimate about half of that to be +// the lower end throughput. In other words, we expect that you can at least show +// about 12.5kb of content per 500ms. Not counting starting latency for the first +// paint. +// 500 * 1024 / 8 * .8 * 0.5 / 2 +var DEFAULT_PROGRESSIVE_CHUNK_SIZE = 12800; + +function defaultErrorHandler(error) { + console['error'](error); // Don't transform to our wrapper + + return null; +} + +function noop$1() {} + +function createRequest(children, responseState, rootFormatContext, progressiveChunkSize, onError, onAllReady, onShellReady, onShellError, onFatalError) { + var pingedTasks = []; + var abortSet = new Set(); + var request = { + destination: null, + responseState: responseState, + progressiveChunkSize: progressiveChunkSize === undefined ? DEFAULT_PROGRESSIVE_CHUNK_SIZE : progressiveChunkSize, + status: OPEN, + fatalError: null, + nextSegmentId: 0, + allPendingTasks: 0, + pendingRootTasks: 0, + completedRootSegment: null, + abortableTasks: abortSet, + pingedTasks: pingedTasks, + clientRenderedBoundaries: [], + completedBoundaries: [], + partialBoundaries: [], + onError: onError === undefined ? defaultErrorHandler : onError, + onAllReady: onAllReady === undefined ? noop$1 : onAllReady, + onShellReady: onShellReady === undefined ? noop$1 : onShellReady, + onShellError: onShellError === undefined ? noop$1 : onShellError, + onFatalError: onFatalError === undefined ? noop$1 : onFatalError + }; // This segment represents the root fallback. + + var rootSegment = createPendingSegment(request, 0, null, rootFormatContext, // Root segments are never embedded in Text on either edge + false, false); // There is no parent so conceptually, we're unblocked to flush this segment. + + rootSegment.parentFlushed = true; + var rootTask = createTask(request, children, null, rootSegment, abortSet, emptyContextObject, rootContextSnapshot, emptyTreeContext); + pingedTasks.push(rootTask); + return request; +} + +function pingTask(request, task) { + var pingedTasks = request.pingedTasks; + pingedTasks.push(task); + + if (pingedTasks.length === 1) { + scheduleWork(function () { + return performWork(request); + }); + } +} + +function createSuspenseBoundary(request, fallbackAbortableTasks) { + return { + id: UNINITIALIZED_SUSPENSE_BOUNDARY_ID, + rootSegmentID: -1, + parentFlushed: false, + pendingTasks: 0, + forceClientRender: false, + completedSegments: [], + byteSize: 0, + fallbackAbortableTasks: fallbackAbortableTasks, + errorDigest: null + }; +} + +function createTask(request, node, blockedBoundary, blockedSegment, abortSet, legacyContext, context, treeContext) { + request.allPendingTasks++; + + if (blockedBoundary === null) { + request.pendingRootTasks++; + } else { + blockedBoundary.pendingTasks++; + } + + var task = { + node: node, + ping: function () { + return pingTask(request, task); + }, + blockedBoundary: blockedBoundary, + blockedSegment: blockedSegment, + abortSet: abortSet, + legacyContext: legacyContext, + context: context, + treeContext: treeContext + }; + + { + task.componentStack = null; + } + + abortSet.add(task); + return task; +} + +function createPendingSegment(request, index, boundary, formatContext, lastPushedText, textEmbedded) { + return { + status: PENDING, + id: -1, + // lazily assigned later + index: index, + parentFlushed: false, + chunks: [], + children: [], + formatContext: formatContext, + boundary: boundary, + lastPushedText: lastPushedText, + textEmbedded: textEmbedded + }; +} // DEV-only global reference to the currently executing task + + +var currentTaskInDEV = null; + +function getCurrentStackInDEV() { + { + if (currentTaskInDEV === null || currentTaskInDEV.componentStack === null) { + return ''; + } + + return getStackByComponentStackNode(currentTaskInDEV.componentStack); + } +} + +function pushBuiltInComponentStackInDEV(task, type) { + { + task.componentStack = { + tag: 0, + parent: task.componentStack, + type: type + }; + } +} + +function pushFunctionComponentStackInDEV(task, type) { + { + task.componentStack = { + tag: 1, + parent: task.componentStack, + type: type + }; + } +} + +function pushClassComponentStackInDEV(task, type) { + { + task.componentStack = { + tag: 2, + parent: task.componentStack, + type: type + }; + } +} + +function popComponentStackInDEV(task) { + { + if (task.componentStack === null) { + error('Unexpectedly popped too many stack frames. This is a bug in React.'); + } else { + task.componentStack = task.componentStack.parent; + } + } +} // stash the component stack of an unwinding error until it is processed + + +var lastBoundaryErrorComponentStackDev = null; + +function captureBoundaryErrorDetailsDev(boundary, error) { + { + var errorMessage; + + if (typeof error === 'string') { + errorMessage = error; + } else if (error && typeof error.message === 'string') { + errorMessage = error.message; + } else { + // eslint-disable-next-line react-internal/safe-string-coercion + errorMessage = String(error); + } + + var errorComponentStack = lastBoundaryErrorComponentStackDev || getCurrentStackInDEV(); + lastBoundaryErrorComponentStackDev = null; + boundary.errorMessage = errorMessage; + boundary.errorComponentStack = errorComponentStack; + } +} + +function logRecoverableError(request, error) { + // If this callback errors, we intentionally let that error bubble up to become a fatal error + // so that someone fixes the error reporting instead of hiding it. + var errorDigest = request.onError(error); + + if (errorDigest != null && typeof errorDigest !== 'string') { + // eslint-disable-next-line react-internal/prod-error-codes + throw new Error("onError returned something with a type other than \"string\". onError should return a string and may return null or undefined but must not return anything else. It received something of type \"" + typeof errorDigest + "\" instead"); + } + + return errorDigest; +} + +function fatalError(request, error) { + // This is called outside error handling code such as if the root errors outside + // a suspense boundary or if the root suspense boundary's fallback errors. + // It's also called if React itself or its host configs errors. + var onShellError = request.onShellError; + onShellError(error); + var onFatalError = request.onFatalError; + onFatalError(error); + + if (request.destination !== null) { + request.status = CLOSED; + closeWithError(request.destination, error); + } else { + request.status = CLOSING; + request.fatalError = error; + } +} + +function renderSuspenseBoundary(request, task, props) { + pushBuiltInComponentStackInDEV(task, 'Suspense'); + var parentBoundary = task.blockedBoundary; + var parentSegment = task.blockedSegment; // Each time we enter a suspense boundary, we split out into a new segment for + // the fallback so that we can later replace that segment with the content. + // This also lets us split out the main content even if it doesn't suspend, + // in case it ends up generating a large subtree of content. + + var fallback = props.fallback; + var content = props.children; + var fallbackAbortSet = new Set(); + var newBoundary = createSuspenseBoundary(request, fallbackAbortSet); + var insertionIndex = parentSegment.chunks.length; // The children of the boundary segment is actually the fallback. + + var boundarySegment = createPendingSegment(request, insertionIndex, newBoundary, parentSegment.formatContext, // boundaries never require text embedding at their edges because comment nodes bound them + false, false); + parentSegment.children.push(boundarySegment); // The parentSegment has a child Segment at this index so we reset the lastPushedText marker on the parent + + parentSegment.lastPushedText = false; // This segment is the actual child content. We can start rendering that immediately. + + var contentRootSegment = createPendingSegment(request, 0, null, parentSegment.formatContext, // boundaries never require text embedding at their edges because comment nodes bound them + false, false); // We mark the root segment as having its parent flushed. It's not really flushed but there is + // no parent segment so there's nothing to wait on. + + contentRootSegment.parentFlushed = true; // Currently this is running synchronously. We could instead schedule this to pingedTasks. + // I suspect that there might be some efficiency benefits from not creating the suspended task + // and instead just using the stack if possible. + // TODO: Call this directly instead of messing with saving and restoring contexts. + // We can reuse the current context and task to render the content immediately without + // context switching. We just need to temporarily switch which boundary and which segment + // we're writing to. If something suspends, it'll spawn new suspended task with that context. + + task.blockedBoundary = newBoundary; + task.blockedSegment = contentRootSegment; + + try { + // We use the safe form because we don't handle suspending here. Only error handling. + renderNode(request, task, content); + pushSegmentFinale$1(contentRootSegment.chunks, request.responseState, contentRootSegment.lastPushedText, contentRootSegment.textEmbedded); + contentRootSegment.status = COMPLETED; + queueCompletedSegment(newBoundary, contentRootSegment); + + if (newBoundary.pendingTasks === 0) { + // This must have been the last segment we were waiting on. This boundary is now complete. + // Therefore we won't need the fallback. We early return so that we don't have to create + // the fallback. + popComponentStackInDEV(task); + return; + } + } catch (error) { + contentRootSegment.status = ERRORED; + newBoundary.forceClientRender = true; + newBoundary.errorDigest = logRecoverableError(request, error); + + { + captureBoundaryErrorDetailsDev(newBoundary, error); + } // We don't need to decrement any task numbers because we didn't spawn any new task. + // We don't need to schedule any task because we know the parent has written yet. + // We do need to fallthrough to create the fallback though. + + } finally { + task.blockedBoundary = parentBoundary; + task.blockedSegment = parentSegment; + } // We create suspended task for the fallback because we don't want to actually work + // on it yet in case we finish the main content, so we queue for later. + + + var suspendedFallbackTask = createTask(request, fallback, parentBoundary, boundarySegment, fallbackAbortSet, task.legacyContext, task.context, task.treeContext); + + { + suspendedFallbackTask.componentStack = task.componentStack; + } // TODO: This should be queued at a separate lower priority queue so that we only work + // on preparing fallbacks if we don't have any more main content to task on. + + + request.pingedTasks.push(suspendedFallbackTask); + popComponentStackInDEV(task); +} + +function renderHostElement(request, task, type, props) { + pushBuiltInComponentStackInDEV(task, type); + var segment = task.blockedSegment; + var children = pushStartInstance(segment.chunks, type, props, request.responseState, segment.formatContext); + segment.lastPushedText = false; + var prevContext = segment.formatContext; + segment.formatContext = getChildFormatContext(prevContext, type, props); // We use the non-destructive form because if something suspends, we still + // need to pop back up and finish this subtree of HTML. + + renderNode(request, task, children); // We expect that errors will fatal the whole task and that we don't need + // the correct context. Therefore this is not in a finally. + + segment.formatContext = prevContext; + pushEndInstance(segment.chunks, type); + segment.lastPushedText = false; + popComponentStackInDEV(task); +} + +function shouldConstruct$1(Component) { + return Component.prototype && Component.prototype.isReactComponent; +} + +function renderWithHooks(request, task, Component, props, secondArg) { + var componentIdentity = {}; + prepareToUseHooks(task, componentIdentity); + var result = Component(props, secondArg); + return finishHooks(Component, props, result, secondArg); +} + +function finishClassComponent(request, task, instance, Component, props) { + var nextChildren = instance.render(); + + { + if (instance.props !== props) { + if (!didWarnAboutReassigningProps) { + error('It looks like %s is reassigning its own `this.props` while rendering. ' + 'This is not supported and can lead to confusing bugs.', getComponentNameFromType(Component) || 'a component'); + } + + didWarnAboutReassigningProps = true; + } + } + + { + var childContextTypes = Component.childContextTypes; + + if (childContextTypes !== null && childContextTypes !== undefined) { + var previousContext = task.legacyContext; + var mergedContext = processChildContext(instance, Component, previousContext, childContextTypes); + task.legacyContext = mergedContext; + renderNodeDestructive(request, task, nextChildren); + task.legacyContext = previousContext; + return; + } + } + + renderNodeDestructive(request, task, nextChildren); +} + +function renderClassComponent(request, task, Component, props) { + pushClassComponentStackInDEV(task, Component); + var maskedContext = getMaskedContext(Component, task.legacyContext) ; + var instance = constructClassInstance(Component, props, maskedContext); + mountClassInstance(instance, Component, props, maskedContext); + finishClassComponent(request, task, instance, Component, props); + popComponentStackInDEV(task); +} + +var didWarnAboutBadClass = {}; +var didWarnAboutModulePatternComponent = {}; +var didWarnAboutContextTypeOnFunctionComponent = {}; +var didWarnAboutGetDerivedStateOnFunctionComponent = {}; +var didWarnAboutReassigningProps = false; +var didWarnAboutDefaultPropsOnFunctionComponent = {}; +var didWarnAboutGenerators = false; +var didWarnAboutMaps = false; +var hasWarnedAboutUsingContextAsConsumer = false; // This would typically be a function component but we still support module pattern +// components for some reason. + +function renderIndeterminateComponent(request, task, Component, props) { + var legacyContext; + + { + legacyContext = getMaskedContext(Component, task.legacyContext); + } + + pushFunctionComponentStackInDEV(task, Component); + + { + if (Component.prototype && typeof Component.prototype.render === 'function') { + var componentName = getComponentNameFromType(Component) || 'Unknown'; + + if (!didWarnAboutBadClass[componentName]) { + error("The <%s /> component appears to have a render method, but doesn't extend React.Component. " + 'This is likely to cause errors. Change %s to extend React.Component instead.', componentName, componentName); + + didWarnAboutBadClass[componentName] = true; + } + } + } + + var value = renderWithHooks(request, task, Component, props, legacyContext); + var hasId = checkDidRenderIdHook(); + + { + // Support for module components is deprecated and is removed behind a flag. + // Whether or not it would crash later, we want to show a good message in DEV first. + if (typeof value === 'object' && value !== null && typeof value.render === 'function' && value.$$typeof === undefined) { + var _componentName = getComponentNameFromType(Component) || 'Unknown'; + + if (!didWarnAboutModulePatternComponent[_componentName]) { + error('The <%s /> component appears to be a function component that returns a class instance. ' + 'Change %s to a class that extends React.Component instead. ' + "If you can't use a class try assigning the prototype on the function as a workaround. " + "`%s.prototype = React.Component.prototype`. Don't use an arrow function since it " + 'cannot be called with `new` by React.', _componentName, _componentName, _componentName); + + didWarnAboutModulePatternComponent[_componentName] = true; + } + } + } + + if ( // Run these checks in production only if the flag is off. + // Eventually we'll delete this branch altogether. + typeof value === 'object' && value !== null && typeof value.render === 'function' && value.$$typeof === undefined) { + { + var _componentName2 = getComponentNameFromType(Component) || 'Unknown'; + + if (!didWarnAboutModulePatternComponent[_componentName2]) { + error('The <%s /> component appears to be a function component that returns a class instance. ' + 'Change %s to a class that extends React.Component instead. ' + "If you can't use a class try assigning the prototype on the function as a workaround. " + "`%s.prototype = React.Component.prototype`. Don't use an arrow function since it " + 'cannot be called with `new` by React.', _componentName2, _componentName2, _componentName2); + + didWarnAboutModulePatternComponent[_componentName2] = true; + } + } + + mountClassInstance(value, Component, props, legacyContext); + finishClassComponent(request, task, value, Component, props); + } else { + + { + validateFunctionComponentInDev(Component); + } // We're now successfully past this task, and we don't have to pop back to + // the previous task every again, so we can use the destructive recursive form. + + + if (hasId) { + // This component materialized an id. We treat this as its own level, with + // a single "child" slot. + var prevTreeContext = task.treeContext; + var totalChildren = 1; + var index = 0; + task.treeContext = pushTreeContext(prevTreeContext, totalChildren, index); + + try { + renderNodeDestructive(request, task, value); + } finally { + task.treeContext = prevTreeContext; + } + } else { + renderNodeDestructive(request, task, value); + } + } + + popComponentStackInDEV(task); +} + +function validateFunctionComponentInDev(Component) { + { + if (Component) { + if (Component.childContextTypes) { + error('%s(...): childContextTypes cannot be defined on a function component.', Component.displayName || Component.name || 'Component'); + } + } + + if ( Component.defaultProps !== undefined) { + var componentName = getComponentNameFromType(Component) || 'Unknown'; + + if (!didWarnAboutDefaultPropsOnFunctionComponent[componentName]) { + error('%s: Support for defaultProps will be removed from function components ' + 'in a future major release. Use JavaScript default parameters instead.', componentName); + + didWarnAboutDefaultPropsOnFunctionComponent[componentName] = true; + } + } + + if (typeof Component.getDerivedStateFromProps === 'function') { + var _componentName3 = getComponentNameFromType(Component) || 'Unknown'; + + if (!didWarnAboutGetDerivedStateOnFunctionComponent[_componentName3]) { + error('%s: Function components do not support getDerivedStateFromProps.', _componentName3); + + didWarnAboutGetDerivedStateOnFunctionComponent[_componentName3] = true; + } + } + + if (typeof Component.contextType === 'object' && Component.contextType !== null) { + var _componentName4 = getComponentNameFromType(Component) || 'Unknown'; + + if (!didWarnAboutContextTypeOnFunctionComponent[_componentName4]) { + error('%s: Function components do not support contextType.', _componentName4); + + didWarnAboutContextTypeOnFunctionComponent[_componentName4] = true; + } + } + } +} + +function resolveDefaultProps(Component, baseProps) { + if (Component && Component.defaultProps) { + // Resolve default props. Taken from ReactElement + var props = assign({}, baseProps); + var defaultProps = Component.defaultProps; + + for (var propName in defaultProps) { + if (props[propName] === undefined) { + props[propName] = defaultProps[propName]; + } + } + + return props; + } + + return baseProps; +} + +function renderForwardRef(request, task, type, props, ref) { + pushFunctionComponentStackInDEV(task, type.render); + var children = renderWithHooks(request, task, type.render, props, ref); + var hasId = checkDidRenderIdHook(); + + if (hasId) { + // This component materialized an id. We treat this as its own level, with + // a single "child" slot. + var prevTreeContext = task.treeContext; + var totalChildren = 1; + var index = 0; + task.treeContext = pushTreeContext(prevTreeContext, totalChildren, index); + + try { + renderNodeDestructive(request, task, children); + } finally { + task.treeContext = prevTreeContext; + } + } else { + renderNodeDestructive(request, task, children); + } + + popComponentStackInDEV(task); +} + +function renderMemo(request, task, type, props, ref) { + var innerType = type.type; + var resolvedProps = resolveDefaultProps(innerType, props); + renderElement(request, task, innerType, resolvedProps, ref); +} + +function renderContextConsumer(request, task, context, props) { + // The logic below for Context differs depending on PROD or DEV mode. In + // DEV mode, we create a separate object for Context.Consumer that acts + // like a proxy to Context. This proxy object adds unnecessary code in PROD + // so we use the old behaviour (Context.Consumer references Context) to + // reduce size and overhead. The separate object references context via + // a property called "_context", which also gives us the ability to check + // in DEV mode if this property exists or not and warn if it does not. + { + if (context._context === undefined) { + // This may be because it's a Context (rather than a Consumer). + // Or it may be because it's older React where they're the same thing. + // We only want to warn if we're sure it's a new React. + if (context !== context.Consumer) { + if (!hasWarnedAboutUsingContextAsConsumer) { + hasWarnedAboutUsingContextAsConsumer = true; + + error('Rendering directly is not supported and will be removed in ' + 'a future major release. Did you mean to render instead?'); + } + } + } else { + context = context._context; + } + } + + var render = props.children; + + { + if (typeof render !== 'function') { + error('A context consumer was rendered with multiple children, or a child ' + "that isn't a function. A context consumer expects a single child " + 'that is a function. If you did pass a function, make sure there ' + 'is no trailing or leading whitespace around it.'); + } + } + + var newValue = readContext(context); + var newChildren = render(newValue); + renderNodeDestructive(request, task, newChildren); +} + +function renderContextProvider(request, task, type, props) { + var context = type._context; + var value = props.value; + var children = props.children; + var prevSnapshot; + + { + prevSnapshot = task.context; + } + + task.context = pushProvider(context, value); + renderNodeDestructive(request, task, children); + task.context = popProvider(context); + + { + if (prevSnapshot !== task.context) { + error('Popping the context provider did not return back to the original snapshot. This is a bug in React.'); + } + } +} + +function renderLazyComponent(request, task, lazyComponent, props, ref) { + pushBuiltInComponentStackInDEV(task, 'Lazy'); + var payload = lazyComponent._payload; + var init = lazyComponent._init; + var Component = init(payload); + var resolvedProps = resolveDefaultProps(Component, props); + renderElement(request, task, Component, resolvedProps, ref); + popComponentStackInDEV(task); +} + +function renderElement(request, task, type, props, ref) { + if (typeof type === 'function') { + if (shouldConstruct$1(type)) { + renderClassComponent(request, task, type, props); + return; + } else { + renderIndeterminateComponent(request, task, type, props); + return; + } + } + + if (typeof type === 'string') { + renderHostElement(request, task, type, props); + return; + } + + switch (type) { + // TODO: LegacyHidden acts the same as a fragment. This only works + // because we currently assume that every instance of LegacyHidden is + // accompanied by a host component wrapper. In the hidden mode, the host + // component is given a `hidden` attribute, which ensures that the + // initial HTML is not visible. To support the use of LegacyHidden as a + // true fragment, without an extra DOM node, we would have to hide the + // initial HTML in some other way. + // TODO: Add REACT_OFFSCREEN_TYPE here too with the same capability. + case REACT_LEGACY_HIDDEN_TYPE: + case REACT_DEBUG_TRACING_MODE_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_PROFILER_TYPE: + case REACT_FRAGMENT_TYPE: + { + renderNodeDestructive(request, task, props.children); + return; + } + + case REACT_SUSPENSE_LIST_TYPE: + { + pushBuiltInComponentStackInDEV(task, 'SuspenseList'); // TODO: SuspenseList should control the boundaries. + + renderNodeDestructive(request, task, props.children); + popComponentStackInDEV(task); + return; + } + + case REACT_SCOPE_TYPE: + { + + throw new Error('ReactDOMServer does not yet support scope components.'); + } + // eslint-disable-next-line-no-fallthrough + + case REACT_SUSPENSE_TYPE: + { + { + renderSuspenseBoundary(request, task, props); + } + + return; + } + } + + if (typeof type === 'object' && type !== null) { + switch (type.$$typeof) { + case REACT_FORWARD_REF_TYPE: + { + renderForwardRef(request, task, type, props, ref); + return; + } + + case REACT_MEMO_TYPE: + { + renderMemo(request, task, type, props, ref); + return; + } + + case REACT_PROVIDER_TYPE: + { + renderContextProvider(request, task, type, props); + return; + } + + case REACT_CONTEXT_TYPE: + { + renderContextConsumer(request, task, type, props); + return; + } + + case REACT_LAZY_TYPE: + { + renderLazyComponent(request, task, type, props); + return; + } + } + } + + var info = ''; + + { + if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) { + info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and " + 'named imports.'; + } + } + + throw new Error('Element type is invalid: expected a string (for built-in ' + 'components) or a class/function (for composite components) ' + ("but got: " + (type == null ? type : typeof type) + "." + info)); +} + +function validateIterable(iterable, iteratorFn) { + { + // We don't support rendering Generators because it's a mutation. + // See https://github.com/facebook/react/issues/12995 + if (typeof Symbol === 'function' && // $FlowFixMe Flow doesn't know about toStringTag + iterable[Symbol.toStringTag] === 'Generator') { + if (!didWarnAboutGenerators) { + error('Using Generators as children is unsupported and will likely yield ' + 'unexpected results because enumerating a generator mutates it. ' + 'You may convert it to an array with `Array.from()` or the ' + '`[...spread]` operator before rendering. Keep in mind ' + 'you might need to polyfill these features for older browsers.'); + } + + didWarnAboutGenerators = true; + } // Warn about using Maps as children + + + if (iterable.entries === iteratorFn) { + if (!didWarnAboutMaps) { + error('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.'); + } + + didWarnAboutMaps = true; + } + } +} + +function renderNodeDestructive(request, task, node) { + { + // In Dev we wrap renderNodeDestructiveImpl in a try / catch so we can capture + // a component stack at the right place in the tree. We don't do this in renderNode + // becuase it is not called at every layer of the tree and we may lose frames + try { + return renderNodeDestructiveImpl(request, task, node); + } catch (x) { + if (typeof x === 'object' && x !== null && typeof x.then === 'function') ; else { + // This is an error, stash the component stack if it is null. + lastBoundaryErrorComponentStackDev = lastBoundaryErrorComponentStackDev !== null ? lastBoundaryErrorComponentStackDev : getCurrentStackInDEV(); + } // rethrow so normal suspense logic can handle thrown value accordingly + + + throw x; + } + } +} // This function by it self renders a node and consumes the task by mutating it +// to update the current execution state. + + +function renderNodeDestructiveImpl(request, task, node) { + // Stash the node we're working on. We'll pick up from this task in case + // something suspends. + task.node = node; // Handle object types + + if (typeof node === 'object' && node !== null) { + switch (node.$$typeof) { + case REACT_ELEMENT_TYPE: + { + var element = node; + var type = element.type; + var props = element.props; + var ref = element.ref; + renderElement(request, task, type, props, ref); + return; + } + + case REACT_PORTAL_TYPE: + throw new Error('Portals are not currently supported by the server renderer. ' + 'Render them conditionally so that they only appear on the client render.'); + // eslint-disable-next-line-no-fallthrough + + case REACT_LAZY_TYPE: + { + var lazyNode = node; + var payload = lazyNode._payload; + var init = lazyNode._init; + var resolvedNode; + + { + try { + resolvedNode = init(payload); + } catch (x) { + if (typeof x === 'object' && x !== null && typeof x.then === 'function') { + // this Lazy initializer is suspending. push a temporary frame onto the stack so it can be + // popped off in spawnNewSuspendedTask. This aligns stack behavior between Lazy in element position + // vs Component position. We do not want the frame for Errors so we exclusively do this in + // the wakeable branch + pushBuiltInComponentStackInDEV(task, 'Lazy'); + } + + throw x; + } + } + + renderNodeDestructive(request, task, resolvedNode); + return; + } + } + + if (isArray(node)) { + renderChildrenArray(request, task, node); + return; + } + + var iteratorFn = getIteratorFn(node); + + if (iteratorFn) { + { + validateIterable(node, iteratorFn); + } + + var iterator = iteratorFn.call(node); + + if (iterator) { + // We need to know how many total children are in this set, so that we + // can allocate enough id slots to acommodate them. So we must exhaust + // the iterator before we start recursively rendering the children. + // TODO: This is not great but I think it's inherent to the id + // generation algorithm. + var step = iterator.next(); // If there are not entries, we need to push an empty so we start by checking that. + + if (!step.done) { + var children = []; + + do { + children.push(step.value); + step = iterator.next(); + } while (!step.done); + + renderChildrenArray(request, task, children); + return; + } + + return; + } + } + + var childString = Object.prototype.toString.call(node); + throw new Error("Objects are not valid as a React child (found: " + (childString === '[object Object]' ? 'object with keys {' + Object.keys(node).join(', ') + '}' : childString) + "). " + 'If you meant to render a collection of children, use an array ' + 'instead.'); + } + + if (typeof node === 'string') { + var segment = task.blockedSegment; + segment.lastPushedText = pushTextInstance$1(task.blockedSegment.chunks, node, request.responseState, segment.lastPushedText); + return; + } + + if (typeof node === 'number') { + var _segment = task.blockedSegment; + _segment.lastPushedText = pushTextInstance$1(task.blockedSegment.chunks, '' + node, request.responseState, _segment.lastPushedText); + return; + } + + { + if (typeof node === 'function') { + error('Functions are not valid as a React child. This may happen if ' + 'you return a Component instead of from render. ' + 'Or maybe you meant to call this function rather than return it.'); + } + } +} + +function renderChildrenArray(request, task, children) { + var totalChildren = children.length; + + for (var i = 0; i < totalChildren; i++) { + var prevTreeContext = task.treeContext; + task.treeContext = pushTreeContext(prevTreeContext, totalChildren, i); + + try { + // We need to use the non-destructive form so that we can safely pop back + // up and render the sibling if something suspends. + renderNode(request, task, children[i]); + } finally { + task.treeContext = prevTreeContext; + } + } +} + +function spawnNewSuspendedTask(request, task, x) { + // Something suspended, we'll need to create a new segment and resolve it later. + var segment = task.blockedSegment; + var insertionIndex = segment.chunks.length; + var newSegment = createPendingSegment(request, insertionIndex, null, segment.formatContext, // Adopt the parent segment's leading text embed + segment.lastPushedText, // Assume we are text embedded at the trailing edge + true); + segment.children.push(newSegment); // Reset lastPushedText for current Segment since the new Segment "consumed" it + + segment.lastPushedText = false; + var newTask = createTask(request, task.node, task.blockedBoundary, newSegment, task.abortSet, task.legacyContext, task.context, task.treeContext); + + { + if (task.componentStack !== null) { + // We pop one task off the stack because the node that suspended will be tried again, + // which will add it back onto the stack. + newTask.componentStack = task.componentStack.parent; + } + } + + var ping = newTask.ping; + x.then(ping, ping); +} // This is a non-destructive form of rendering a node. If it suspends it spawns +// a new task and restores the context of this task to what it was before. + + +function renderNode(request, task, node) { + // TODO: Store segment.children.length here and reset it in case something + // suspended partially through writing something. + // Snapshot the current context in case something throws to interrupt the + // process. + var previousFormatContext = task.blockedSegment.formatContext; + var previousLegacyContext = task.legacyContext; + var previousContext = task.context; + var previousComponentStack = null; + + { + previousComponentStack = task.componentStack; + } + + try { + return renderNodeDestructive(request, task, node); + } catch (x) { + resetHooksState(); + + if (typeof x === 'object' && x !== null && typeof x.then === 'function') { + spawnNewSuspendedTask(request, task, x); // Restore the context. We assume that this will be restored by the inner + // functions in case nothing throws so we don't use "finally" here. + + task.blockedSegment.formatContext = previousFormatContext; + task.legacyContext = previousLegacyContext; + task.context = previousContext; // Restore all active ReactContexts to what they were before. + + switchContext(previousContext); + + { + task.componentStack = previousComponentStack; + } + + return; + } else { + // Restore the context. We assume that this will be restored by the inner + // functions in case nothing throws so we don't use "finally" here. + task.blockedSegment.formatContext = previousFormatContext; + task.legacyContext = previousLegacyContext; + task.context = previousContext; // Restore all active ReactContexts to what they were before. + + switchContext(previousContext); + + { + task.componentStack = previousComponentStack; + } // We assume that we don't need the correct context. + // Let's terminate the rest of the tree and don't render any siblings. + + + throw x; + } + } +} + +function erroredTask(request, boundary, segment, error) { + // Report the error to a global handler. + var errorDigest = logRecoverableError(request, error); + + if (boundary === null) { + fatalError(request, error); + } else { + boundary.pendingTasks--; + + if (!boundary.forceClientRender) { + boundary.forceClientRender = true; + boundary.errorDigest = errorDigest; + + { + captureBoundaryErrorDetailsDev(boundary, error); + } // Regardless of what happens next, this boundary won't be displayed, + // so we can flush it, if the parent already flushed. + + + if (boundary.parentFlushed) { + // We don't have a preference where in the queue this goes since it's likely + // to error on the client anyway. However, intentionally client-rendered + // boundaries should be flushed earlier so that they can start on the client. + // We reuse the same queue for errors. + request.clientRenderedBoundaries.push(boundary); + } + } + } + + request.allPendingTasks--; + + if (request.allPendingTasks === 0) { + var onAllReady = request.onAllReady; + onAllReady(); + } +} + +function abortTaskSoft(task) { + // This aborts task without aborting the parent boundary that it blocks. + // It's used for when we didn't need this task to complete the tree. + // If task was needed, then it should use abortTask instead. + var request = this; + var boundary = task.blockedBoundary; + var segment = task.blockedSegment; + segment.status = ABORTED; + finishedTask(request, boundary, segment); +} + +function abortTask(task, request, reason) { + // This aborts the task and aborts the parent that it blocks, putting it into + // client rendered mode. + var boundary = task.blockedBoundary; + var segment = task.blockedSegment; + segment.status = ABORTED; + + if (boundary === null) { + request.allPendingTasks--; // We didn't complete the root so we have nothing to show. We can close + // the request; + + if (request.status !== CLOSED) { + request.status = CLOSED; + + if (request.destination !== null) { + close(request.destination); + } + } + } else { + boundary.pendingTasks--; + + if (!boundary.forceClientRender) { + boundary.forceClientRender = true; + + var _error = reason === undefined ? new Error('The render was aborted by the server without a reason.') : reason; + + boundary.errorDigest = request.onError(_error); + + { + var errorPrefix = 'The server did not finish this Suspense boundary: '; + + if (_error && typeof _error.message === 'string') { + _error = errorPrefix + _error.message; + } else { + // eslint-disable-next-line react-internal/safe-string-coercion + _error = errorPrefix + String(_error); + } + + var previousTaskInDev = currentTaskInDEV; + currentTaskInDEV = task; + + try { + captureBoundaryErrorDetailsDev(boundary, _error); + } finally { + currentTaskInDEV = previousTaskInDev; + } + } + + if (boundary.parentFlushed) { + request.clientRenderedBoundaries.push(boundary); + } + } // If this boundary was still pending then we haven't already cancelled its fallbacks. + // We'll need to abort the fallbacks, which will also error that parent boundary. + + + boundary.fallbackAbortableTasks.forEach(function (fallbackTask) { + return abortTask(fallbackTask, request, reason); + }); + boundary.fallbackAbortableTasks.clear(); + request.allPendingTasks--; + + if (request.allPendingTasks === 0) { + var onAllReady = request.onAllReady; + onAllReady(); + } + } +} + +function queueCompletedSegment(boundary, segment) { + if (segment.chunks.length === 0 && segment.children.length === 1 && segment.children[0].boundary === null) { + // This is an empty segment. There's nothing to write, so we can instead transfer the ID + // to the child. That way any existing references point to the child. + var childSegment = segment.children[0]; + childSegment.id = segment.id; + childSegment.parentFlushed = true; + + if (childSegment.status === COMPLETED) { + queueCompletedSegment(boundary, childSegment); + } + } else { + var completedSegments = boundary.completedSegments; + completedSegments.push(segment); + } +} + +function finishedTask(request, boundary, segment) { + if (boundary === null) { + if (segment.parentFlushed) { + if (request.completedRootSegment !== null) { + throw new Error('There can only be one root segment. This is a bug in React.'); + } + + request.completedRootSegment = segment; + } + + request.pendingRootTasks--; + + if (request.pendingRootTasks === 0) { + // We have completed the shell so the shell can't error anymore. + request.onShellError = noop$1; + var onShellReady = request.onShellReady; + onShellReady(); + } + } else { + boundary.pendingTasks--; + + if (boundary.forceClientRender) ; else if (boundary.pendingTasks === 0) { + // This must have been the last segment we were waiting on. This boundary is now complete. + if (segment.parentFlushed) { + // Our parent segment already flushed, so we need to schedule this segment to be emitted. + // If it is a segment that was aborted, we'll write other content instead so we don't need + // to emit it. + if (segment.status === COMPLETED) { + queueCompletedSegment(boundary, segment); + } + } + + if (boundary.parentFlushed) { + // The segment might be part of a segment that didn't flush yet, but if the boundary's + // parent flushed, we need to schedule the boundary to be emitted. + request.completedBoundaries.push(boundary); + } // We can now cancel any pending task on the fallback since we won't need to show it anymore. + // This needs to happen after we read the parentFlushed flags because aborting can finish + // work which can trigger user code, which can start flushing, which can change those flags. + + + boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request); + boundary.fallbackAbortableTasks.clear(); + } else { + if (segment.parentFlushed) { + // Our parent already flushed, so we need to schedule this segment to be emitted. + // If it is a segment that was aborted, we'll write other content instead so we don't need + // to emit it. + if (segment.status === COMPLETED) { + queueCompletedSegment(boundary, segment); + var completedSegments = boundary.completedSegments; + + if (completedSegments.length === 1) { + // This is the first time since we last flushed that we completed anything. + // We can schedule this boundary to emit its partially completed segments early + // in case the parent has already been flushed. + if (boundary.parentFlushed) { + request.partialBoundaries.push(boundary); + } + } + } + } + } + } + + request.allPendingTasks--; + + if (request.allPendingTasks === 0) { + // This needs to be called at the very end so that we can synchronously write the result + // in the callback if needed. + var onAllReady = request.onAllReady; + onAllReady(); + } +} + +function retryTask(request, task) { + var segment = task.blockedSegment; + + if (segment.status !== PENDING) { + // We completed this by other means before we had a chance to retry it. + return; + } // We restore the context to what it was when we suspended. + // We don't restore it after we leave because it's likely that we'll end up + // needing a very similar context soon again. + + + switchContext(task.context); + var prevTaskInDEV = null; + + { + prevTaskInDEV = currentTaskInDEV; + currentTaskInDEV = task; + } + + try { + // We call the destructive form that mutates this task. That way if something + // suspends again, we can reuse the same task instead of spawning a new one. + renderNodeDestructive(request, task, task.node); + pushSegmentFinale$1(segment.chunks, request.responseState, segment.lastPushedText, segment.textEmbedded); + task.abortSet.delete(task); + segment.status = COMPLETED; + finishedTask(request, task.blockedBoundary, segment); + } catch (x) { + resetHooksState(); + + if (typeof x === 'object' && x !== null && typeof x.then === 'function') { + // Something suspended again, let's pick it back up later. + var ping = task.ping; + x.then(ping, ping); + } else { + task.abortSet.delete(task); + segment.status = ERRORED; + erroredTask(request, task.blockedBoundary, segment, x); + } + } finally { + { + currentTaskInDEV = prevTaskInDEV; + } + } +} + +function performWork(request) { + if (request.status === CLOSED) { + return; + } + + var prevContext = getActiveContext(); + var prevDispatcher = ReactCurrentDispatcher$1.current; + ReactCurrentDispatcher$1.current = Dispatcher; + var prevGetCurrentStackImpl; + + { + prevGetCurrentStackImpl = ReactDebugCurrentFrame$1.getCurrentStack; + ReactDebugCurrentFrame$1.getCurrentStack = getCurrentStackInDEV; + } + + var prevResponseState = currentResponseState; + setCurrentResponseState(request.responseState); + + try { + var pingedTasks = request.pingedTasks; + var i; + + for (i = 0; i < pingedTasks.length; i++) { + var task = pingedTasks[i]; + retryTask(request, task); + } + + pingedTasks.splice(0, i); + + if (request.destination !== null) { + flushCompletedQueues(request, request.destination); + } + } catch (error) { + logRecoverableError(request, error); + fatalError(request, error); + } finally { + setCurrentResponseState(prevResponseState); + ReactCurrentDispatcher$1.current = prevDispatcher; + + { + ReactDebugCurrentFrame$1.getCurrentStack = prevGetCurrentStackImpl; + } + + if (prevDispatcher === Dispatcher) { + // This means that we were in a reentrant work loop. This could happen + // in a renderer that supports synchronous work like renderToString, + // when it's called from within another renderer. + // Normally we don't bother switching the contexts to their root/default + // values when leaving because we'll likely need the same or similar + // context again. However, when we're inside a synchronous loop like this + // we'll to restore the context to what it was before returning. + switchContext(prevContext); + } + } +} + +function flushSubtree(request, destination, segment) { + segment.parentFlushed = true; + + switch (segment.status) { + case PENDING: + { + // We're emitting a placeholder for this segment to be filled in later. + // Therefore we'll need to assign it an ID - to refer to it by. + var segmentID = segment.id = request.nextSegmentId++; // When this segment finally completes it won't be embedded in text since it will flush separately + + segment.lastPushedText = false; + segment.textEmbedded = false; + return writePlaceholder(destination, request.responseState, segmentID); + } + + case COMPLETED: + { + segment.status = FLUSHED; + var r = true; + var chunks = segment.chunks; + var chunkIdx = 0; + var children = segment.children; + + for (var childIdx = 0; childIdx < children.length; childIdx++) { + var nextChild = children[childIdx]; // Write all the chunks up until the next child. + + for (; chunkIdx < nextChild.index; chunkIdx++) { + writeChunk(destination, chunks[chunkIdx]); + } + + r = flushSegment(request, destination, nextChild); + } // Finally just write all the remaining chunks + + + for (; chunkIdx < chunks.length - 1; chunkIdx++) { + writeChunk(destination, chunks[chunkIdx]); + } + + if (chunkIdx < chunks.length) { + r = writeChunkAndReturn(destination, chunks[chunkIdx]); + } + + return r; + } + + default: + { + throw new Error('Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React.'); + } + } +} + +function flushSegment(request, destination, segment) { + var boundary = segment.boundary; + + if (boundary === null) { + // Not a suspense boundary. + return flushSubtree(request, destination, segment); + } + + boundary.parentFlushed = true; // This segment is a Suspense boundary. We need to decide whether to + // emit the content or the fallback now. + + if (boundary.forceClientRender) { + // Emit a client rendered suspense boundary wrapper. + // We never queue the inner boundary so we'll never emit its content or partial segments. + writeStartClientRenderedSuspenseBoundary$1(destination, request.responseState, boundary.errorDigest, boundary.errorMessage, boundary.errorComponentStack); // Flush the fallback. + + flushSubtree(request, destination, segment); + return writeEndClientRenderedSuspenseBoundary$1(destination, request.responseState); + } else if (boundary.pendingTasks > 0) { + // This boundary is still loading. Emit a pending suspense boundary wrapper. + // Assign an ID to refer to the future content by. + boundary.rootSegmentID = request.nextSegmentId++; + + if (boundary.completedSegments.length > 0) { + // If this is at least partially complete, we can queue it to be partially emitted early. + request.partialBoundaries.push(boundary); + } /// This is the first time we should have referenced this ID. + + + var id = boundary.id = assignSuspenseBoundaryID(request.responseState); + writeStartPendingSuspenseBoundary(destination, request.responseState, id); // Flush the fallback. + + flushSubtree(request, destination, segment); + return writeEndPendingSuspenseBoundary(destination, request.responseState); + } else if (boundary.byteSize > request.progressiveChunkSize) { + // This boundary is large and will be emitted separately so that we can progressively show + // other content. We add it to the queue during the flush because we have to ensure that + // the parent flushes first so that there's something to inject it into. + // We also have to make sure that it's emitted into the queue in a deterministic slot. + // I.e. we can't insert it here when it completes. + // Assign an ID to refer to the future content by. + boundary.rootSegmentID = request.nextSegmentId++; + request.completedBoundaries.push(boundary); // Emit a pending rendered suspense boundary wrapper. + + writeStartPendingSuspenseBoundary(destination, request.responseState, boundary.id); // Flush the fallback. + + flushSubtree(request, destination, segment); + return writeEndPendingSuspenseBoundary(destination, request.responseState); + } else { + // We can inline this boundary's content as a complete boundary. + writeStartCompletedSuspenseBoundary$1(destination, request.responseState); + var completedSegments = boundary.completedSegments; + + if (completedSegments.length !== 1) { + throw new Error('A previously unvisited boundary must have exactly one root segment. This is a bug in React.'); + } + + var contentSegment = completedSegments[0]; + flushSegment(request, destination, contentSegment); + return writeEndCompletedSuspenseBoundary$1(destination, request.responseState); + } +} + +function flushClientRenderedBoundary(request, destination, boundary) { + return writeClientRenderBoundaryInstruction(destination, request.responseState, boundary.id, boundary.errorDigest, boundary.errorMessage, boundary.errorComponentStack); +} + +function flushSegmentContainer(request, destination, segment) { + writeStartSegment(destination, request.responseState, segment.formatContext, segment.id); + flushSegment(request, destination, segment); + return writeEndSegment(destination, segment.formatContext); +} + +function flushCompletedBoundary(request, destination, boundary) { + var completedSegments = boundary.completedSegments; + var i = 0; + + for (; i < completedSegments.length; i++) { + var segment = completedSegments[i]; + flushPartiallyCompletedSegment(request, destination, boundary, segment); + } + + completedSegments.length = 0; + return writeCompletedBoundaryInstruction(destination, request.responseState, boundary.id, boundary.rootSegmentID); +} + +function flushPartialBoundary(request, destination, boundary) { + var completedSegments = boundary.completedSegments; + var i = 0; + + for (; i < completedSegments.length; i++) { + var segment = completedSegments[i]; + + if (!flushPartiallyCompletedSegment(request, destination, boundary, segment)) { + i++; + completedSegments.splice(0, i); // Only write as much as the buffer wants. Something higher priority + // might want to write later. + + return false; + } + } + + completedSegments.splice(0, i); + return true; +} + +function flushPartiallyCompletedSegment(request, destination, boundary, segment) { + if (segment.status === FLUSHED) { + // We've already flushed this inline. + return true; + } + + var segmentID = segment.id; + + if (segmentID === -1) { + // This segment wasn't previously referred to. This happens at the root of + // a boundary. We make kind of a leap here and assume this is the root. + var rootSegmentID = segment.id = boundary.rootSegmentID; + + if (rootSegmentID === -1) { + throw new Error('A root segment ID must have been assigned by now. This is a bug in React.'); + } + + return flushSegmentContainer(request, destination, segment); + } else { + flushSegmentContainer(request, destination, segment); + return writeCompletedSegmentInstruction(destination, request.responseState, segmentID); + } +} + +function flushCompletedQueues(request, destination) { + + try { + // The structure of this is to go through each queue one by one and write + // until the sink tells us to stop. When we should stop, we still finish writing + // that item fully and then yield. At that point we remove the already completed + // items up until the point we completed them. + // TODO: Emit preloading. + // TODO: It's kind of unfortunate to keep checking this array after we've already + // emitted the root. + var completedRootSegment = request.completedRootSegment; + + if (completedRootSegment !== null && request.pendingRootTasks === 0) { + flushSegment(request, destination, completedRootSegment); + request.completedRootSegment = null; + writeCompletedRoot(destination, request.responseState); + } // We emit client rendering instructions for already emitted boundaries first. + // This is so that we can signal to the client to start client rendering them as + // soon as possible. + + + var clientRenderedBoundaries = request.clientRenderedBoundaries; + var i; + + for (i = 0; i < clientRenderedBoundaries.length; i++) { + var boundary = clientRenderedBoundaries[i]; + + if (!flushClientRenderedBoundary(request, destination, boundary)) { + request.destination = null; + i++; + clientRenderedBoundaries.splice(0, i); + return; + } + } + + clientRenderedBoundaries.splice(0, i); // Next we emit any complete boundaries. It's better to favor boundaries + // that are completely done since we can actually show them, than it is to emit + // any individual segments from a partially complete boundary. + + var completedBoundaries = request.completedBoundaries; + + for (i = 0; i < completedBoundaries.length; i++) { + var _boundary = completedBoundaries[i]; + + if (!flushCompletedBoundary(request, destination, _boundary)) { + request.destination = null; + i++; + completedBoundaries.splice(0, i); + return; + } + } + + completedBoundaries.splice(0, i); // Allow anything written so far to flush to the underlying sink before + // we continue with lower priorities. + + completeWriting(destination); + beginWriting(destination); // TODO: Here we'll emit data used by hydration. + // Next we emit any segments of any boundaries that are partially complete + // but not deeply complete. + + var partialBoundaries = request.partialBoundaries; + + for (i = 0; i < partialBoundaries.length; i++) { + var _boundary2 = partialBoundaries[i]; + + if (!flushPartialBoundary(request, destination, _boundary2)) { + request.destination = null; + i++; + partialBoundaries.splice(0, i); + return; + } + } + + partialBoundaries.splice(0, i); // Next we check the completed boundaries again. This may have had + // boundaries added to it in case they were too larged to be inlined. + // New ones might be added in this loop. + + var largeBoundaries = request.completedBoundaries; + + for (i = 0; i < largeBoundaries.length; i++) { + var _boundary3 = largeBoundaries[i]; + + if (!flushCompletedBoundary(request, destination, _boundary3)) { + request.destination = null; + i++; + largeBoundaries.splice(0, i); + return; + } + } + + largeBoundaries.splice(0, i); + } finally { + + if (request.allPendingTasks === 0 && request.pingedTasks.length === 0 && request.clientRenderedBoundaries.length === 0 && request.completedBoundaries.length === 0 // We don't need to check any partially completed segments because + // either they have pending task or they're complete. + ) { + { + if (request.abortableTasks.size !== 0) { + error('There was still abortable task at the root when we closed. This is a bug in React.'); + } + } // We're done. + + + close(destination); + } + } +} + +function startWork(request) { + scheduleWork(function () { + return performWork(request); + }); +} +function startFlowing(request, destination) { + if (request.status === CLOSING) { + request.status = CLOSED; + closeWithError(destination, request.fatalError); + return; + } + + if (request.status === CLOSED) { + return; + } + + if (request.destination !== null) { + // We're already flowing. + return; + } + + request.destination = destination; + + try { + flushCompletedQueues(request, destination); + } catch (error) { + logRecoverableError(request, error); + fatalError(request, error); + } +} // This is called to early terminate a request. It puts all pending boundaries in client rendered state. + +function abort(request, reason) { + try { + var abortableTasks = request.abortableTasks; + abortableTasks.forEach(function (task) { + return abortTask(task, request, reason); + }); + abortableTasks.clear(); + + if (request.destination !== null) { + flushCompletedQueues(request, request.destination); + } + } catch (error) { + logRecoverableError(request, error); + fatalError(request, error); + } +} + +function onError() {// Non-fatal errors are ignored. +} + +function renderToStringImpl(children, options, generateStaticMarkup, abortReason) { + var didFatal = false; + var fatalError = null; + var result = ''; + var destination = { + push: function (chunk) { + if (chunk !== null) { + result += chunk; + } + + return true; + }, + destroy: function (error) { + didFatal = true; + fatalError = error; + } + }; + var readyToStream = false; + + function onShellReady() { + readyToStream = true; + } + + var request = createRequest(children, createResponseState$1(generateStaticMarkup, options ? options.identifierPrefix : undefined), createRootFormatContext(), Infinity, onError, undefined, onShellReady, undefined, undefined); + startWork(request); // If anything suspended and is still pending, we'll abort it before writing. + // That way we write only client-rendered boundaries from the start. + + abort(request, abortReason); + startFlowing(request, destination); + + if (didFatal) { + throw fatalError; + } + + if (!readyToStream) { + // Note: This error message is the one we use on the client. It doesn't + // really make sense here. But this is the legacy server renderer, anyway. + // We're going to delete it soon. + throw new Error('A component suspended while responding to synchronous input. This ' + 'will cause the UI to be replaced with a loading indicator. To fix, ' + 'updates that suspend should be wrapped with startTransition.'); + } + + return result; +} + +function renderToString(children, options) { + return renderToStringImpl(children, options, false, 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'); +} + +function renderToStaticMarkup(children, options) { + return renderToStringImpl(children, options, true, 'The server used "renderToStaticMarkup" which does not support Suspense. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'); +} + +function renderToNodeStream() { + throw new Error('ReactDOMServer.renderToNodeStream(): The streaming API is not available ' + 'in the browser. Use ReactDOMServer.renderToString() instead.'); +} + +function renderToStaticNodeStream() { + throw new Error('ReactDOMServer.renderToStaticNodeStream(): The streaming API is not available ' + 'in the browser. Use ReactDOMServer.renderToStaticMarkup() instead.'); +} + +exports.renderToNodeStream = renderToNodeStream; +exports.renderToStaticMarkup = renderToStaticMarkup; +exports.renderToStaticNodeStream = renderToStaticNodeStream; +exports.renderToString = renderToString; +exports.version = ReactVersion; + })(); +} diff --git a/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js b/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js new file mode 100644 index 0000000..1568365 --- /dev/null +++ b/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js @@ -0,0 +1,93 @@ +/** + * @license React + * react-dom-server-legacy.browser.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict';var aa=require("react");function l(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=1;c